Академический Документы
Профессиональный Документы
Культура Документы
INSTRUCCIONES:
Lea cuidadosamente cada una de las preguntas y responda de acuerdo a cada instrucción.
Mantenga el orden y numeración de cada ejercicio.
PREGUNTA 1: (7 puntos)
a) ¿Es posible realizar el método de Jacobi? ¿Es posible realizar el método de Gauss
Seidel? ¿Por qué?
b) Establezca una matriz equivalente y resuelva el sistema usando algún método numérico
iterativo. Hallar el error cometido.
Al poner nuestros datos como A, b, x0, tol y max si corre el programa tanto para Jacobi
como para Gauss Seeibal sin embargo NO SE PUEDE REALIZAR NINGUNO DE
LOS DOS METODOS ya que su diagonal no es estrictamente dominante nos referimos
a: |-1| no es mayor que |3|+|1| , |2| no es mayor que |1|+|3| y por ultimo |2| no es mayor
que |10| +|3|
b)
5𝑥1 + 3𝑥2 + 𝑥3 = 1
2𝑥1 + 6𝑥2 + 𝑥3 = 3
1𝑥1 + 3𝑥2 + 5𝑥3 = 1
EJERCICIO 2
a) Encontrar las raíces gráficamente de dos formas diferentes.
Primera forma
En scrip :
x=-2:0.001:7;%mis limites y mi relacion de cada cuanto en este
caso 0.001, elegi estos valores para apreciar mejor mis raices
y=x.^4-10.*x.^3+25.*x.^2-18;%creo mi funcion
plot(x,y)%para que grafique
grid on %para que aparezca la malla
Segunda forma
Mis raíces se encuentran de [-1 0] [1 2] [3 4] [5 6]
En comando
bisect('f',-1,0,10^(-5),30)
_______________________________________________
iter a b c f(c) |b-a|/2
_______________________________________________
function newton(f,df,x0,tol,n)
% Newton's method for solving the nonlinear equation f(x)=0.
iter=0;
u=feval(f,x0);
v=feval(df,x0);
err=abs(u./v);
disp('______________________________________________')
disp(' iter x f(x) df(x) |xn+1-xn| ')
disp('______________________________________________')
fprintf('%2.0f %12.6f %12.6f %12.6f\n', iter, x0, u, v)
while (err>tol)&(iter<=n)&(v~=0)
x1=x0-u/v;
err=abs(x1-x0);
x0=x1;
u=feval(f,x0);
v=feval(df,x0);
iter=iter+1;
fprintf('%2.0f %12.6f %12.6f %12.6f %12.6f\n',iter,x0,u,v,err)
end
if (v==0)
disp(' division by zero')
end
if (iter>n)
disp(' Method failed to converge')
end
En comandos
newton('f','df',1,10^(-5),30)
______________________________________________
iter x f(x) df(x) |xn+1-xn|
______________________________________________
0 1.000000 -2.000000 1.000000
1 1.083333 0.003520 1.043981 0.083333
2 1.083187 -0.000000 1.044115 0.000146
3 1.083187 0.000000 1.044115 0.000000
d) Encontrar una tercera raíz usando el método de Regula falsa a 6 dígitos de
precisión.
En scrip
function falsep(f,a,b,tol,n )
% False position method for solving the nonlinear equation
f(x)=0.
a0=a; b0=b;
iter=0;
u=feval(f,a);
v=feval(f,b);
c=(v*a-u*b)/(v-u);
w=feval(f,c);
disp('__________________________________________________________
____')
disp(' iter a b c f(c)
|b-a| ')
disp('__________________________________________________________
____')
fprintf('\n')
if (u*v<=0)
while (abs(w)>tol)&(abs(b-a)>tol)&(iter<=n)&((v-u)~=0)
w=feval(f,c);
fprintf('%2.0f %12.4f %12.4f %12.6f %10.6f %10.6f\n', iter, a,b,
c, w, abs(b-a))
if (w*u<0)
b=c;v=w;
end;
if (w*u>0)
a=c;u=w;
end;
iter=iter+1;
c=(v*a-u*b)/(v-u);
end;
if (iter>n)
disp(' Method failed to converge')
end;
if (v-u==0)
disp(' Division by zero')
end;
else
disp(' The method cannot be applied f(a)f(b)>0')
end;
fplot(f,[a0 b0])
xlabel('x');ylabel('f(x)'); grid
En comandos
falsep('f',3,4,10^(-6),30)
______________________________________________________
________
iter a b c f(c)
|b-a|
______________________________________________________
________
Mini leyenda 2:
Rojo punto central
Morado error
Al obtener cada raíz usando los distintos métodos, el punto central coincide con
la gráfica ya que se encuentra dentro de los limites como se puede apreciar
visualmente
Apartado B:
Apartado C:
Apartado D:
CONCLUCION
Todas las raíces estas dentro de las halladas en el ítem a
Mis raíces se encuentran de [-1 0] [1 2] [3 4] [5 6]
>> falsep('f',3,4,10^(-6),30)
______________________________________________________________
iter a b c f(c) |b-a|
______________________________________________________________