Documentos de Académico
Documentos de Profesional
Documentos de Cultura
´
SOLUCIONES COMPUTACIONALES A PROBLEMAS EN INGENIER IA
Topics:
IST4360:06 PROYECTO COMPUTACIONAL. 2021-30.
1. Series de Taylor
2. Bu´squeda de raıces
3. Algebra de matrices
4. Interpolacion Funcional
5. Ajuste de Curvas
6. Solución Numérica de Ecuaciones Diferenciales Ordinarias
7. Matrices, Funciones y Gráficas en Matlab .
Observaciones HONESTIDAD
• El proyecto se desarrollará en equipos de tres estudiantes.
La
• entrega está programada para el Sábado 09 de Octubre de 2021, hasta las 11:59
p.m.
• Cada entrega parcial tiene que incluir:
Componente
RUBRICA Porcentaje
Problemas 1 y 2 20 % cada uno
75 %
Problemas 3 y 4 30 % cada uno
Informe Debe estar hecho con normas 15 %
IEEE, APA o EasyChair u otros.
Auto y coevaluación Autoevaluación y evaluación de (5+5)%=10%
los otros miembros del equipo.
Entrega 01
Problema 01.
Hay dos maneras de definir el epsilon de la máquina: un epsilon absoluto y un epsilon relativo.
Este último es el más usado. Como el conjunto de números usados en el computador es
finito, la siguiente definición tiene sentido:
Respuestas:
Epsilon Relativo:
Epsilon Absoluto:
Para el desarrollo de ambos epsilon, se escogieron números al azar para luego aplicar la fórmula de los
respectivos epsilon. Luego de obtener los valores, se realizó la conversión a norma IEEE 754, lo cual dio los
valores que se observan en las figuras anteriores.
Problema 02.
Cuando resolvemos un sistema de ecuaciones lineales, tal como:
a1,1 · x1 + a1,2 · x2 + . . . + a1,n · xn =
· b a
1 · 2,1 x 1 · + a2,2 x2 +
... + a2,n xn = b2
. . .
. . . . = .
am,1 · x1 + am,2 · x2 + . . . + am,n · xn = bn
for j=1:n
if A==A'
disp("es simetrica")
else
disp("no es simetrica")
end
sw=0;
for i=1:n
T=A([1:i],[1:i]);
deter=det(T);
if deter<0
sw=1;
end
end
if sw==0
disp("es definida positiva")
else
disp("no es definida positiva")
end
L=zeros(n);
for i=1:n
for j=1:i
suma=0;
if i==j
for p=j-1:-1:1
suma=L(i,p)^2+suma;
end
L(i,j)=sqrt(A(i,j)-suma);
else
for p=i-1:-1:1
suma=L(p,j)^2+suma;
end
L(i,j)=(A(i,j)-suma)/(L(j,j));
end
end
end
U=L' ;
R=L*U;
U=chol(A);
L=U';
b=zeros(1,n);
for i=1:n
b(i)= input("Digite el vector de resultado");
end
b=b';
y=L\b;
x=U\y;
if n==3
E=zeros(n,n+1);
for i=1:n
for j=1:n+1
if i==j
E(i,j)=1;
else
if j==n+1
E(i,j)=x(i);
else
E(i,j)=0;
end
end
end
end
end
clc
rank(A)
rank(Ab)
Problema 03.
Tome los algoritmos desarrollados en clase y re-escribeıbalos cómo una función. Útilıcelos para
encontrar tres raíces de la función dada, en cada caso, e imprima las iteraciones, en la misma
forma que la función fzero() de Matlab. Después compare su resultado con el de la
citada función.
Bisección
clc;
close()
syms x;
figure
xlabel('Valores de X');
ylabel('Valores de f(x)');
grid on;
Sw=1;
while(A>=B)
end
while(Sw==1)
Error=abs((B-A)/2);
if(f((A+B)/2)==0)
break;
else
if(f((A+B)/2)*f(A)<0)
B=(A+B)/2;
else
A=(A+B)/2;
end
end
Sw=(Error>=Tol);
end
hold on;
plot((A+B)/2,0,'O');
%fzero(matlabFunction(f),x0,optimset('display','iter'));
options = optimset('Display','iter');
Regula Falsi
clc
xai=input('Ingrese limite inferior: ');
xbi=input('Ingrese limite superior: ');
tol=input('Ingrese el porcentaje de Error: ');
syms x;
f=input('Ingrese la Funcion: ');
f1=subs(f,x,xai);
f2=subs(f,x,xbi);
i=1;
ea(1)=100;
if f1*f2 < 0
xa(1)=xai;f1=subs(f,x,xa(1));
xb(1)=xbi;f2=subs(f,x,xb(1));
xr(1)=xa(1)-f1*(xb(1)-xa(1))/(f2-f1); f3=subs(f,x,xr(1));
fprintf('It. Xa Xr Xb Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
while abs(ea(i))>=tol,
if f1*f3 < 0
xa(i+1)=xa(i);f1=subs(f,x,xa(i+1));
xb(i+1)=xr(i);f2=subs(f,x,xb(i+1));
end
if f1*f3> 0
xa(1)=xr(i);
xb(1)=xb(i);
end
xr(i+1)=xa(i+1)-f1*(xb(i+1)-xa(i+1))/(f2-f1);
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1)))*100;
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',...
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
else
fprintf('No existe una raíz en ese intervalo');
end
Punto Fijo
clc
clear
format long;
Xo=input('ingrese el valor inicial\n');
Iter=input('\ningrese el número de iteraciones\n');
Tol=input('\ningrese la tolerancia que desea\n');
Fun=input('\ningrese la funcion en comillas simples\n');
G=input('\ningrese la funcion despejada en comillas simples\n');
f=inline(Fun);
g=inline(G);
Yn=f(Xo);
Error=Tol+1;
Cont=0;
Z1=[Cont,Xo,Yn,Error];
Z=[Cont,Xo,Yn,Error];
Xo=Xn;
end
if Yn==0
fprintf('\n\nSOLUCION:\n')
fprintf('%g es raiz\n\n',Xo);
else
if Error<Tol
fprintf('\n\nSOLUCION:\n')
fprintf('%g es una aproximacion con un tolerancia de %g\n\n',Xo,Tol);
else
fprintf('\n\nSOLUCION:\n')
fprintf('Fracaso en %g iteraciones\n\n',Iter);
end
end
fprintf('TABLA\n\n Cont Xn Yn Error Relativo\n\n')
disp(Z1);
disp(Z);
Newton
clc;
close();
syms x
f=input('Digita una función simbólica f(x) = ')
df=diff(f)
fplot(f);
xlabel('Valores de X');
ylabel('Valores de f(x)');
grid on;
%
x0=input('Ingresa la semilla, X0=')
tol=input('Tolerancia? : ');
if isempty(tol)
tol=10^-8;
end
tol
xk=x0;
nr=zeros(100,3);
for k=1:100
nr(k,1)=k;
nr(k,2)=xk;
nr(k,3)=xk-(subs(f,x,xk)./subs(df,x,xk));
xk=nr(k,3);
if( abs(nr(k,3)-nr(k,2))<=tol)
disp('La Raíz está en x = ');disp(nr(k,3));
hold on;
plot(nr(k,3),0,'Om');break;
end
end
if(k==100)
disp('Método no converge, revisa si la función tiene raíces o cambia la Semilla ');
else
disp(nr(1:k,:));
end
%fzero(matlabFunction(f),x0,optimset('display','iter'));
options = optimset('Display','iter');
[x, fval, exitflag, output] = fzero(matlabFunction(f),x0,options)
Secante
Sea f (x) = 2(x2) − 3 ∗ 7(x + 1) con el m etodo de la secante encuentre los ceros de f con una
exactitud de 10( − 16). Muestra las gráficas de f (x) y.
Newton-Raphson multivariable
Encuentre la solución de los siguientes sistema de ecuaciones con la función Newton- Raphson
multivariable.
Haga una gráfica en la cual se represente cuál de las soluciones es obtenida a partir de una
semilla cualquiera en las vecindades de las soluciones. Miren la gráfica ejemplo, Fg.3. Tienen
que indicar en caso de que diverge.
Problema 04.
Determine la longitud máxima P de las dos cargas que pueden aplicarse a la estructura.
Tome a = 8[ft].
Requisitos:
El• algoritmo iterando tiene que hallar P. ¡OJO!, no deben sacar mágicamente el valor de
P . La idea es que vayan aumentando el valor de la carga hasta que supere una de esas. El
algoritmo debe arrojar P con una precisión de al menos 5 cifras significativas.
Solución
• de sistemas de ecuaciones lineales de manera indirecta o mediante iteraciones.
Al menos un método. Por ejemplo, Gauss-Seidel.
• Comparar con la soluci´on anal´ıtica.