Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nota: Las soluciones son las que se desarrollaron en clases complementadas con las soluciones que poponen los profesores para las guías.
Lab. 6
Interpolación.
Lab. 7
Métodos de integración numérica.
Funciones para integrar en matlab: quad y quadl (existen otras pero vimos solo esas)
Sintaxis:
>> f=inline('exp(-x.^2)')
f=
Inline function:
f(x) = exp(-x.^2)
>> quad(f,-1,1)
ans =
1.4936
Lab. 8
Método de la Bisección.
x=a:0.01:b;
fx=feval(f,x);
plot(x,fx) ;%hasta aquí es solo saber donde mas o menos están las soluciones (graficamente)
fa=feval(f,a);
fb=feval(f,b);
while abs(fxr)>tol
xr=(a+b)/2; %calcula xr
fxr=feval(f,xr); %evalua f(xr)
fxaxr=fa*fxr;
fa=feval(f,a);
fb=feval(f,b);
%se re evalúa la función en el nuevo intervalo y se vuelve al comienzo
% del ciclo while
end
Revisar diapositivas del curso, se dio una explicación detallada del algoritmo en clases.
Método de Newton.
function raiz=newton2b(f,Df,x0,tol,maxit)
k=0;
raiz=x0;
corr=tol+1;
while (k<=maxit) & (norm(corr,inf)>tol)
k=k+1;
xk=raiz;
fxk=feval(f,xk);
Dfxk=feval(Df,xk);
if (rank(Dfxk)<length(Dfxk))
error('La diferencial de la funcion es singular.')
end
corr=Dfxk\fxk;
raiz=xk-corr;
end
if (norm(corr,inf)>tol)
error('Se excedio el numero maximo de iteraciones.')
end
Como el código fue arreglado para resolver un sistema de ecuaciones, se pueden ingresar
matrices de ecuaciones de la forma F(x)=0, en donde F es una matríz de funciones.
Ej lab8, 2b)
x 2 + xy + y 2 = 1
Sistema de ecuaciones:
y = x2
x 2 + xy + y 2 − 1
Matríz de funciones F(x,y)=0
y − x 2
Sintaxis de lo anterior
clc
close all
clear all
%para despejar una función como la del 1° sistema del lab 8, 2c)-> a)
%se escribe lo siguiente en matlab
%>>syms x y
%>>solve('x^2+x*y+y^2=1',y)
% esto arrojará 2 soluciones las cuales se escribieron como en y1 e y2
%Esto no es obligación hacerlo, pero sirve para visualizar mas o menos
%donde se encuentran las soluciones
%Nota: Recordar que solve estrega las solucones suponiendo que x es un
solo
%elemento, entonces para poder trabajar con un x de forma de vector, es
%necesario que donde aparesca el signo "^" modificarlo y dejarlo como".^"
x=-2:0.01:2;
tol=1.e-12;
maxit=10;
x0=[1;1];
raiz1_1=newton2b(f1,Df1,x0,tol,maxit)
x0=[-1;1];
raiz1_2=newton2b(f1,Df1,x0,tol,maxit)
y = e x − x
2
2
⇒ ecuacion ⇒ e x − x = arctan( x 2 )
Sistema: y = arctan( x )
2
2
⇒ e x − x − arctan( x 2 ) = 0
Y luego se trabaja como se ha hecho anteriormente
%solucion ejercicio 4 letra a
%Para este sistema, se pueden igualar las ecuaciones
%quedando como se mostró anteriormente, y luego se sigue con la misma
sintaxis
x=-2:.01:3;
plot(x,exp(x-x.^2),x,atan(x.^2))
f=inline('exp(x-x.^2)-atan(x.^2)');
a=fzero(f,-.5)
b=fzero(f,1)
integ=quad(f,a,b)
Ahora bien, deben saber cuando conviene despejar de una u otra forma…
Pista: Cuando alguna de las funciones no sea inyectiva se resuelve como en el 1° ejemplo,
de lo contrario, se utiliza el 2° método.
Lab. 9
Resolución de ecuaciones diferenciales.
Pasos:
1) Se escribe la ecuación diferencial en un programa tipo function (haciendo el
respectivo cambio de variable)
2) Se resuelve utilizando uno de los tantos ode
Nota: ¿Qué diferencia hay entre usar una u otra función (ode)? Pregunta de certamen creo,
como dicen los pokemones “xD”.
Modelo:
mu "+ u '+
b ku = f
u (0) = u 0; u ' (0) =v0
(recordar la cantidad de condiciones iniciales que debe haber según el orden de la ecuación diferencial).
Reordenamiento del modelo, se despega la variable de mayor orden:
−
bu '−
ku +f
u" =
m …….(*)
Cambio de variable:
u1 =
u
u 2 =
u' =
u1'
R
e e
s
c
r
it
u
r
a d
e
−
b
u 2 −k
u 1 +
u" =
m
u1 ' 0
=
u
2 '−
k
/ m −
u1' u2
u 2' = − bu 2 − ku1 + f
m
Programa function:
function Z=F1a(t,Y)
m=1.2;
b=0.3;
k=15;
Z=[Y(2);(-k*Y(1)-b*Y(2))/m];
Programa rutero:
clc,close…..
…..
[t,Y]=ode45('F1a',[0 60],[1;0]);
plot(t,Y(:,1))