SlideShare una empresa de Scribd logo
1 de 24
1.- Escriba en Matlab que implementen los siguientes algoritmos y
póngalos a prueba con matrices apropiadas 6x6
a) El de sustitución progresiva y sustitución regresiva para sistemas triangulares
- Sustitución regresiva
%resuelve un sistema de ecuaciones a traves de la sustitución regresiva
A=input('ingrese la matriz triangular superior de coeficientes A=');
b=input('ingrese el vector de terminos independientes b=');
n=input('ingrese el orden de la matriz n=');
x(n)=b(n)/A(n,n);
fori=n-1:-1:1
sum=0;
for j=i+1:n
sum=sum+A(i,j)*x(j);
end
x(i)=(b(i)-sum)/A(i,i);
end
disp('Las soluciones son:');
disp(x);
>>sustitucionregresiva
ingrese la matriz triangular superior de coeficientes
A=[34,12,3,87,4,6;0,2,6,3,8,9;0,0,36,42,7,13;0,0,0,8,4,12;0,0,0,0,5,29;0,0,0,0,0,10]
ingrese el vector de terminos independientes b=[471,128,389,124,199,60]
ingrese el orden de la matriz n=6
Las soluciones son:
1 2 3 4 5 6
COMPROBANDO ESTA SOLUCIÓN:
>> A(b')
ans =
1
2
3
4
5
6
- Sustitución progresiva
%resuelve un sistema de ecuaciones a traves de la sustitucion progresiva
A=input('ingrese la matriz triangular inferior de coeficientes A=');
b=input('ingrese el vector de terminos independientes b=');
n=input('ingrese el orden de la matriz n=');
x(1)=b(1)/A(1,1);
fori=2:n
sum=0;
for j=1:(i-1)
sum=sum+A(i,j)*x(j);
end
x(i)=(b(i)-sum)/A(i,i);
end
disp('Los resultados son:');
disp(x);
>>sustitucionprogresiva
ingrese la matriz triangular inferior de coeficientes
A=[4,0,0,0,0,0;51,23,0,0,0,0;34,12,15,0,0,0;2,6,4,23,0,0;56,23,41,16,19,0;65,34,27,98,12,11]
ingrese el vector de terminos independientes b=[8,194,206,236,768,1464]
ingrese el orden de la matriz n=6
Los resultados son:
2 4 6 8 10 12
COMPROBANDO:
>> A(b')
ans =
2
4
6
8
10
12
b) El de eliminación de Gauss simple y el de eliminación de Gauss con filas
permutadas.
-Gauss Simple
%metodo de gauss simple con respuestas
n=input('ingrese el orden de la matriz n=');
A=input('ingrese la matriz de coeficientes A=');
b=input('ingrese el vector de terminos independientes b=');
for k=1:n
fori=k+1:n
z=A(i,k)/A(k,k);
A(i,k)=0;
for j=k+1:n
A(i,j)=A(i,j)-z*A(k,j);
end
b(i)=b(i)-z*b(k);
end
end
disp('Por Gauss la matriz queda expresada asi:');
disp(A);
x(n)=b(n)/A(n,n);
for p=n-1:-1:1
sum=0;
for t=p+1:n
sum=sum+A(p,t)*x(t);
end
x(p)=(b(p)-sum)/A(p,p);
end
disp('Las soluciones al sistema ingresado son:');
disp(x);
>>gaussimple
ingrese el orden de la matriz n=6
ingrese la matriz de coeficientes
A=[12,23,34,4,5,7;89,76,56,34,97,34;123,46,89,32,5,9;3,9,5,7,14,15;3,8,5,90,54,18;23,67,4
8,1,76,2]
ingrese el vector de terminos independientes b=[1008,4708,3425,701,2374,2650]
Por Gauss la matriz queda expresada asi:
12.0000 23.0000 34.0000 4.0000 5.0000 7.0000
0 -94.5833 -196.1667 4.3333 59.9167 -17.9167
0 0 134.0432 -17.6934 -166.4529 -26.8062
0 0 0 4.7972 2.0923 10.5864
0 0 0 0 5.6424 -180.0640
0 0 0 0 0 218.5816
Las soluciones al sistema ingresado son:
10.0000 11.0000 12.0000 13.0000 14.0000 15.0000
COMPROBANDO:
>> Ab'
ans =
10.0000
11.0000
12.0000
13.0000
14.0000
15.0000
- El de eliminación de Gauss con filas permutadas
%resuelve el sistema de ecuaciones a partir del metodo de gauss con permutacion
n=input('ingrese el orden de la matriz n=');
A=input('ingrese la matriz de coeficientes A=');
b=input('ingrese el vector de terminos independientes b=');
P=input('ingrese el orden de permutacion P=');
for k=1:n
fori=k+1:n
z=A(P(i),k)/A(P(k),k);
A(P(i),k)=0;
for j=k+1:n
A(P(i),j)=A(P(i),j)-z*A(P(k),j);
end
b(P(i))=b(P(i))-z*b(P(k));
end
end
disp('Por Gauss la matriz queda expresada asi:A=');
disp(A);
disp('La matriz de coeficientes queda expresada asi: b=')
disp(b);
x(P(n))=b(P(n))/A(P(n),n);
for p=n-1:-1:1
sum=0;
for t=p+1:n
sum=sum+A(P(p),t)*x(P(t));
end
x(P(p))=(b(P(p))-sum)/A(P(p),p);
end
disp('Las soluciones al sistema ingresado son:');
disp(x);
>>permutacion
ingrese el orden de la matriz n=6
ingrese la matriz de coeficientes
A=[12,23,34,4,5,7;89,76,56,34,97,34;123,46,89,32,5,9;3,9,5,7,14,15;3,8,5,90,54,18;23,67,48,1,76,2
]
ingrese el vector de terminos independientes b=[1008,4708,3425,701,2374,2650]
ingrese el orden de permutacion P=[2,4,5,1,3,6]
Por Gauss la matriz queda expresada asi:A=
1.0e+003 *
0 0 0 -3.5330 -1.7777 -0.2412
0.0890 0.0760 0.0560 0.0340 0.0970 0.0340
0 0 0 0 -0.0042 0.1343
0 0.0064 0.0031 0.0059 0.0107 0.0139
0 0 0.0005 0.0839 0.0417 0.0052
0 0 0 0 0 0.2186
La matriz de coeficientes queda expresada asi: b=
1.0e+004 *
-7.4435 0.4708 0.1955 0.0542 0.1757 0.3279
Las soluciones al sistema ingresado son:
13.0000 10.0000 14.0000 11.0000 12.0000 15.0000
LA RESPUESTA YA FUE COMPROBADA Y ES CORRECTA
c) El de eliminación de Gauss con pivoteo de filas escaladas
%resuelve un sistema de ecuaciones con filas escaladas
A=input('ingrese la matriz de coeficientes A=');
b=input('ingrese el vector de terminos independientes b=');
n=length(A);
P=[1:n];
fori=1:n
S(i)=max(abs(A(i,:)));
end
disp('LOS MAXIMOS VALORES DE CADA FILA SON:');
disp(S);
for r=1:n-1
for u=r:n
T(u)=A(u,r)/S(u);
end
%reordena el vector permutación de manera adecuada
a=max(T);
for k=r:n
if T(k)==a
d=k;
end
end
%permuta el vector permutación
q=P(r);
P(r)=P(d);
P(d)=q;
%matriz de gauss
fori=r+1:n
z=A(P(i),r)/A(P(r),r);
A(P(i),r)=0;
for j=r+1:n
A(P(i),j)=A(P(i),j)-z*A(P(r),j);
end
b(P(i))=b(P(i))-z*b(P(r));
end
T(r)=0;
end
disp('LA MATRIZ QUEDA EXPRESADA ASI:');
disp(A);
disp('LA MATRIZ TRANSPUESTA DE COEFICIENTES QUEDA DE LA FORMA:')
disp(b);
disp('EL VECTOR PERMUTACION ES DE LA FORMA');
disp(P);
%hallando las soluciones
x(P(n))=b(P(n))/A(P(n),n);
for p=n-1:-1:1
sum=0;
for t=p+1:n
sum=sum+A(P(p),t)*x(P(t));
end
x(P(p))=(b(P(p))-sum)/A(P(p),p);
end
disp('Las soluciones(en el orden del vector permutación) al sistema ingresado son:');
disp(x);
>>filasescaladas
ingrese la matriz de coeficientes
A=[12,23,34,4,5,7;89,76,56,34,97,34;123,46,89,32,5,9;3,9,5,7,14,15;3,8,5,90,54,18;23,67,48,1,76,2
]
ingrese el vector de terminos independientes b=[1008,4708,3425,701,2374,2650]
LOS MAXIMOS VALORES DE CADA FILA SON:
34 97 123 15 90 76
LA MATRIZ QUEDA EXPRESADA ASI:
0 0 15.3767 2.4579 -19.2833 6.0214
0 0 0 0 -10.3490 35.6065
123.0000 46.0000 89.0000 32.0000 5.0000 9.0000
0 0 0 0 0 8.7551
0 0 0 89.9446 43.9535 18.0815
0 58.3984 31.3577 -4.9837 75.0650 0.3171
LA MATRIZ TRANSPUESTA DE COEFICIENTES QUEDA DE LA FORMA:
1.0e+003 *
0.0368 0.3892 3.4250 0.1313 2.0559 2.0096
EL VECTOR PERMUTACION ES DE LA FORMA
3 6 1 5 2 4
Las soluciones(en el orden del vector permutación) al sistema ingresado son:
12.0000 14.0000 10.0000 15.0000 13.0000 11.0000
COMPROBANDO: UNA VEZ MAS SE TRABAJO CON EL MISMO SISTEMA POR LO QUE LAS
RESPUESTAS UAN VEZ MAS SON CORRECTAS.
d) Los métodos iterativos de Richardson, Jacobi y Gauss-Seidel. Incluya más de un
criterio para detener el algoritmo.
- Método de Richardson
%resuelve un sitema de ecuaciones mediante el metodo iterativo de
Richardson
A=input('ingrese la matriz de coeficiente A:');
b=input('ingrese la matriz transpuesta de términos independientes b=');
x=input('ingrese un vector de aproximacion x=');
m=input('ingrese el numero de iteraciones m=');
E=input('ingrese la precision buscada E=');
n=length(A);
' k X'
X=x;
for k=1:m
H=A*x';
if abs(H-b')<E
break
end
fori=1:n
sum=0;
for j=1:n
sum=sum+A(i,j)*x(j);
end
r(i)=b(i)-sum;
end
fori=1:n
x(i)=x(i)+r(i);
end
if abs(X-x)<E
break
end
X=x;
fprintf('%dt%dn',k,x)
end
disp(x);
>>richardson
ingrese la matriz de coeficiente
A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03
2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1]
ingrese la matriz transpuesta de términos independientes b=[2.73,4.112,5.482,6.742,6.404,8.11]
ingrese un vector de aproximacion x=[0,0,0,0,0,0]
ingrese el numero de iteracciones m=100
ingrese la precision buscada E=0.0001
ans =
k X
1 2.730000e+000 4.112000e+000 5.482000e+000 6.742000e+000 6.404000e+000
8.110000e+000
2 -6.140000e-002 6.655300e-001 1.336520e+000 2.863788e+000 3.710562e+000
4.353914e+000
3 1.685483e+000 2.896618e+000 3.956555e+000 4.869835e+000 5.732693e+000
7.072650e+000
4 5.572289e-001 1.455015e+000 2.340654e+000 3.454155e+000 4.514564e+000
5.324407e+000
5 1.281142e+000 2.362730e+000 3.409751e+000 4.349856e+000 5.313260e+000
6.433366e+000
6 8.177887e-001 1.771424e+000 2.733190e+000 3.775539e+000 4.800909e+000
5.719919e+000
7 1.116262e+000 2.148067e+000 3.170142e+000 4.144444e+000 5.128673e+000
6.178863e+000
8 9.251106e-001 1.905370e+000 2.890389e+000 3.907458e+000 4.917689e+000
5.884844e+000
9 1.047991e+000 2.060892e+000 3.070230e+000 4.059478e+000 5.052935e+000
6.073820e+000
10 9.691628e-0011.960959e+0002.954867e+0003.961840e+0004.966049e+000
5.952576e+000
11 1.019787e+0002.025080e+0003.028957e+0004.024505e+0005.021806e+000
6.030433e+000
12 9.872943e-001 1.983905e+000 2.981405e+0003.984271e+0004.986005e+000
5.980459e+000
13 1.008155e+0002.010334e+0003.011936e+0004.010098e+0005.008986e+000
6.012543e+000
14 9.947641e-0011.993367e+0002.992337e+0003.993518e+0004.994232e+000
5.991947e+000
15 1.003361e+0002.004259e+0003.004919e+000 4.004162e+000 5.003703e+000
6.005169e+000
16 9.978422e-001 1.997266e+000 2.996842e+0003.997328e+0004.997623e+000
5.996681e+000
17 1.001385e+0002.001755e+0003.002027e+0004.001715e+0005.001526e+000
6.002130e+000
18 9.991107e-0011.998873e+0002.998699e+000 3.998899e+000 4.999020e+000
5.998632e+000
19 1.000571e+000 2.000723e+000 3.000835e+000 4.000707e+000 5.000629e+000
6.000878e+000
20 9.996335e-001 1.999536e+000 2.999464e+000 3.999546e+000 4.999596e+000
5.999436e+000
21 1.000235e+000 2.000298e+000 3.000344e+000 4.000291e+000 5.000259e+000
6.000362e+000
22 9.998490e-0011.999809e+0002.999779e+000 3.999813e+000 4.999834e+000
5.999768e+000
23 1.000097e+000 2.000123e+000 3.000142e+000 4.000120e+000 5.000107e+000
6.000149e+000
24 9.999378e-001 1.999921e+000 2.999909e+000 3.999923e+000 4.999931e+000
5.999904e+000
25 1.000040e+000 2.000051e+000 3.000058e+0004.000049e+0005.000044e+000
6.000061e+000
26 9.999743e-001 1.999967e+000 2.999962e+000 3.999968e+000 4.999972e+000
5.999961e+000
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
COMPROBANDO:
b =
2.7300 4.1120 5.4820 6.7420 6.4040 8.1100
>> Ab'
ans =
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
- Método de Jacobi
%resuelve un sistema de ecuaciones mediante el metodo de jacobi
A=input('ingrese la matriz de coeficiente A:');
b=input('ingrese la matriz transpuesta de términos independientes b=');
x=input('ingrese un vector de aproximacion x=');
m=input('ingrese el numero de iteracciones m=');
E=input('ingrese la precision buscada E');
n=length(A);
X=x;
' k X'
for k=1:m
H=A*x';
if abs(H-b')<E
break
end
fori=1:n
sum=0;
for j=1:n
ifi~=j
sum=sum+A(i,j)*x(j);
end
end
U(i)=(b(i)-sum)/A(i,i);
end
fori=1:n
x(i)=U(i);
end
if abs(X-x)<E
break
end
X=x;
fprintf('%dt%dn',k,x)
end
disp('La respuesta final es');
disp(x);
>>jacobi
ingrese la matriz de coeficiente
A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03
2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1]
ingrese la matriz transpuesta de términos independientes b=[1008,4708,3425,701,2374,2650]
ingrese un vector de aproximacion x=[0,0,0,0,0,0]
ingrese el numero de iteracciones m=50
ingrese la precision buscada E0.001
ans =
k X
1 1008 4708 3425 701 2374 2650
2 -5.993300e+002 3.138444e+003 1.375804e+003 -7.892960e+002
1.511876e+003 -1.915710e+002
3 2.055395e+002 4.307750e+003 2.638324e+003 4.207412e+002
2.557511e+003 1.040352e+003
4 -3.796607e+002 3.607310e+003 1.780475e+003-2.505329e+002
1.948080e+003 1.448455e+002
5 -2.010291e+001 4.078305e+003 2.303187e+0032.063335e+002
2.353384e+003 7.016640e+002
6 -2.558124e+002 3.785340e+003 1.957048e+003 -8.240161e+001
2.097267e+003 3.402090e+002
7 -1.062063e+002 3.976918e+003 2.175764e+003 1.039214e+002
2.263484e+003 5.705731e+002
8 -2.028779e+002 3.855131e+003 2.034240e+003 -1.534937e+001
2.157494e+003 4.219634e+002
9 -1.410426e+002 3.933713e+003 2.124725e+003 6.136314e+001
2.225793e+003 5.170902e+002
10 -1.808161e+002 3.883399e+003 2.066511e+003 1.217256e+001
2.182034e+003 4.559270e+002
11 -1.553092e+002 3.915744e+003 2.103839e+003 4.377098e+001
2.210155e+003 4.951599e+002
12 -1.716927e+002 3.894996e+003 2.079860e+003 2.349257e+001
2.192112e+003 4.699631e+002
13 -1.611782e+002 3.908321e+003 2.095248e+003 3.651283e+001
2.203699e+003 4.861349e+002
14 -1.679292e+002 3.899768e+003 2.085368e+003 2.815504e+001
2.196262e+003 4.757520e+002
15 -1.635956e+002 3.905259e+003 2.091710e+003 3.352071e+001
2.201036e+003 4.824170e+002
16 -1.663778e+002 3.901735e+003 2.087639e+003 3.007623e+001
2.197971e+003 4.781382e+002
17 -1.645918e+002 3.903998e+003 2.090252e+003 3.228749e+001
2.199939e+003 4.808850e+002
18 -1.657383e+002 3.902545e+003 2.088574e+003 3.086795e+001
2.198676e+003 4.791216e+002
19 -1.650023e+002 3.903477e+003 2.089652e+003 3.177925e+001
2.199487e+003 4.802536e+002
20 -1.654748e+002 3.902879e+003 2.088960e+003 3.119423e+001
2.198966e+003 4.795269e+002
21 -1.651715e+002 3.903263e+003 2.089404e+003 3.156979e+001
2.199300e+003 4.799934e+002
22 -1.653662e+002 3.903016e+003 2.089119e+003 3.132869e+001
2.199086e+003 4.796939e+002
23 -1.652412e+002 3.903175e+003 2.089302e+003 3.148347e+001
2.199224e+003 4.798862e+002
24 -1.653214e+002 3.903073e+003 2.089184e+003 3.138411e+001
2.199135e+003 4.797628e+002
25 -1.652699e+002 3.903138e+003 2.089260e+003 3.144789e+001
2.199192e+003 4.798420e+002
26 -1.653030e+002 3.903096e+003 2.089211e+003 3.140695e+001
2.199156e+003 4.797912e+002
27 -1.652818e+002 3.903123e+003 2.089243e+003 3.143323e+001
2.199179e+003 4.798238e+002
28 -1.652954e+002 3.903106e+003 2.089223e+003 3.141636e+001
2.199164e+003 4.798028e+002
29 -1.652866e+002 3.903117e+003 2.089235e+003 3.142719e+001
2.199174e+003 4.798163e+002
30 -1.652923e+002 3.903110e+003 2.089227e+003 3.142024e+001
2.199167e+003 4.798077e+002
31 -1.652887e+002 3.903115e+003 2.089232e+003 3.142470e+001
2.199171e+003 4.798132e+002
32 -1.652910e+002 3.903112e+003 2.089229e+003 3.142183e+001
2.199169e+003 4.798097e+002
33 -1.652895e+002 3.903114e+003 2.089231e+003 3.142367e+001
2.199170e+003 4.798119e+002
34 -1.652904e+002 3.903112e+003 2.089230e+003 3.142249e+001
2.199169e+003 4.798105e+002
La respuesta final es
1.0e+003 *
-0.1653 3.9031 2.0892 0.0314 2.1992 0.4798
COMPROBANDO:
>> Ab'
ans =
1.0e+003 *
-0.1653
3.9031
2.0892
0.0314
2.1992
0.4798
- Método iterativo de Gauss - Seidel
%resuelve un sitema de ecuaciones mediante el metodo iterativo de
%Gauss-Seidel
A=input('ingrese la matriz de coeficiente A:');
b=input('ingrese la matriz transpuesta de términos independientes b=');
x=input('ingrese un vector de aproximacion x=');
m=input('ingrese el numero de iteracciones m=');
E=input('ingrese la precision buscada E=');
n=length(A);
' k X'
X=x;
for k=1:m
H=A*x';
if abs(H-b')<E
break
end
fori=1:n
sum=0;
for j=1:n
ifi~=j
sum=sum+A(i,j)*x(j);
end
end
x(i)=(b(i)-sum)/A(i,i);
end
if abs(X-x)<E
break
end
X=x;
fprintf('%dt%dn',k,x)
end
disp('La respuesta final es:');
disp(x);
>>gaussiterativo
ingrese la matriz de coeficiente
A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03
2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1]
ingrese la matriz transpuesta de términos independientes b=[2.73,4.112,5.482,6.742,6.404,8.11]
ingrese un vector de aproximacion x=[0,0,0,0,0,0]
ingrese el numero de iteracciones m=50
ingrese la precision buscada E=0.01
ans =
k X
1 2.730000e+000 3.874490e+000 4.193548e+000 6.208534e+000
4.175442e+000 4.974002e+000
2 4.986266e-001 1.731324e+000 2.717142e+000 4.486530e+000
5.158387e+000 6.135386e+000
3 1.012005e+000 2.035653e+000 2.850798e+000 3.939136e+000
5.011185e+000 6.022336e+000
4 1.005947e+000 2.044326e+000 2.997660e+000 3.989941e+000
4.998307e+000 5.984247e+000
5 9.930604e-001 2.003494e+000 3.003494e+000 4.005131e+000
5.001830e+000 5.997535e+000
La respuesta final es:
0.9931 2.0035 3.0035 4.0051 5.0018 5.9975
COMPROBANDO:
>> Ab'
ans =
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
NUESTRAS RESPUESTAS SON APROXIMADAS.
e) El algoritmo del método de la potencia.
%halla el valor propio de una matriz por el metodo de la potencia
A=input('ingrese la matriz de coeficiente A:');
x=input('ingrese un vector propio al azar x=');
m=input('ingrese el numero de iteracciones m=');
E=input('ingrese el grado de exactitud buscado E=');
C=(y(1,1)/x(1,1))+5;
for k=1:m
y=A*x;
X=x(1,1);
Y=y(1,1);
R=Y/X;
x=y;
fprintf('%dt%dn',k,R)
if abs((C-R))<E
break
end
C=R;
end
disp('Uno de los valores propios es:');
disp(R);
>>valorpropio
ingrese la matriz de coeficiente
A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03
2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1]
ingrese un vector propio al azar x=[1;1;1;1;1;1]
ingrese el numero de iteracciones m=50
ingrese el grado de exactitud buscado E=0.001
1 1.500000e+000
2 1.546207e+000
3 1.579544e+000
4 1.602046e+000
5 1.616658e+000
6 1.625959e+000
7 1.631826e+000
8 1.635520e+000
9 1.637851e+000
10 1.639326e+000
11 1.640264e+000
Uno de los valores propios es:
1.6403
COMPROBANDO:
>> [V,LAMBDA]=eig(A)
V =…..
LAMBDA =
Columns 1 through 4
1.64200 0 0
0 1.1012 0 0
0 0 0.8730 + 0.1543i 0
0 0 0 0.8730 - 0.1543i
0 0 0 0
0 0 0 0
2.- Aplique la aceleración de Aitken a algunos métodos iterativos para
calcular raíces:
- Metodo De La Secante Acelerado
% resuelve ecuaciones por el metodo de la secante con aceleración de
Aitken
f = input('funcion f=');
a = input('punto inicial1 a=');
b = input('punto inicial2 b=');
m = input('numero de interaciones m=');
E = input('precision E=');
u = f(a) ; v = f(b) ;
r = zeros(1,m);
for k =1:m
if abs(u)<abs(v)
c=a;
a=b;
b=c;
w=u;
u=v;
v=w;
end
s = (b-a)/(v-u);
a = b;
u = v;
b = b - v*s;
r(k)= b;
v = f(b);
if k>2
R(k-2) =(r(k-2)*r(k)-(r(k-1)^2))/(r(k)-2*r(k-1)+r(k-2));
if f(R(k-2))<E
break;
end
end
fprintf('%dt%fn',k,b)
end
disp('La respuesta es');
R
>>secanteacelerado
funcion f=@(x)x^5-x-1-sin(x)
punto inicial1 a=3
punto inicial2 b=2
numero de interaciones m=80
precision E=0.001
1 1.866722
2 1.595114
La respuesta es:
T =
1.2553
Haciendo una compración con la convergencia del método de la secante sin aceleración
veamos:
>>secante
ingrese la funcion f=@(x)x^5-x-1-sin(x)
ingrese el valor del primer punto aproximado a=4
ingrese el valor del segundo punto aproximado b=3
ingrese el número de repeticiones M=25
ingrese la presicion buscada d=0.00001
ingrese la presicion buscada 2 E=0.00001
k x f(x)
1 2.694123 137.807349
2 2.276988 57.169516
3 1.981253 26.629911
4 1.723379 11.490332
5 1.527662 4.793520
6 1.387570 1.772854
7 1.305349 0.519619
8 1.271258 0.093501
9 1.263778 0.006673
10 1.263203 0.000096
11 1.263194 0.000000
1.2632
Como podemos ver, con el método de aceleración de Aitken, el valor buscado salta con
mayor rapidez.
- Metodo De Newton Acelerado
% resuelve ecuaciones por el metodo de Newton con aceleración de Aitken
f=input('ingrese la funcion=');
x=input('Ingrese un valor aproximado a la raiz x= ');
M=input('Ingrese el número de iteracciones M= ');
d=input('ingrese la derivada de la funcion = ');
E=input('ingrese la precision buscada E=');
r = zeros(1,m);
u = f(a) ; v = f(b) ;
r = zeros(1,m);
for k=1:M
a=x;
x=x-f(x)/d(x);
r(k)= x;
if abs(x-a)<E
break
end
if k>2
T(k-2) =(r(k-2)*r(k)-(r(k-1)^2))/(r(k)-2*r(k-1)+r(k-2));
G=T(k-2);
if f(T(k-2))<E
break;
end
fprintf('%dt%fn',k,G)
end
end
disp('La respuesta es');
disp(G);
>>newtonacelerado
ingrese la funcion=@(x)x^5-x-1-sin(x)
Ingrese un valor aproximado a la raiz x= 4
Ingrese el número de iteracciones M= 20
ingrese la derivada de la funcion = @(x)5*x^4-1-cos(x)
ingrese la precision buscada E=0.00001
1 3.203099
2 2.570346
La respuesta es
0.2632
Como vemos la convergencia es mucho mayor al método de Newton sin aceleración.
Veamos.
>>newton
ingrese la funcion=@(x)x^5-x-1-sin(x)
Ingrese un valor aproximado a la raiz x= 4
Ingrese el núemero de iteracciones M= 20
ingrese la derivada de la funcion = @(x)5*x^4-1-cos(x)
ingrese la precision buscada E=0.000001
k x f(x) x-xo
1 3.203099 333.030799 -0.796901
2 2.570346 108.080002 -0.632753
3 2.074754 34.493921 -0.495593
4 1.700352 10.521316 -0.374401
5 1.443260 2.827009 -0.257092
6 1.305808 0.525717 -0.137452
7 1.266208 0.034628 -0.039600
8 1.263211 0.000186 -0.002997
9 1.263194 0.000000 -0.000016
10 1.263194 -0.000000 -0.000000
el valor de la raiz es
1.2632
La aceleración de Aitken para los métodos iterativos es básicamente realizar algunas
modificaciones básicas a los algoritmos.
3.- Implemente el algoritmo el algoritmo de diferencias divididas. Aplique
para calcular el polinomio de interpolación para f(x)=(x^5*sen(x))/(e^x-
tanh(x)) en [-5,5]
a) usando 5 y después 25 nodos igualmente espaciados. Grafique F(x) y P(x). Comente.
%calcula un polinomio de interpolacion por el metodo de interpolación por
%diferencias divididas
f=input('ingrese la función a interpolar f=');
n=input('ingrese la cantidad de nodos n=');
a=input('ingrese el valor del limite inferior a=');
b=input('ingrese el valor del limite superior b=');
d=abs((a-b)/(n-1));
fori=1:n
x(i)=a+d*(i-1);
y(i)=f(x(i));
end
fori=1:n
C(i,1)=y(i);
end
for j=2:n
for k=1:(n-j+1)
C(k,j)=(C(k+1,j-1)-C(k,j-1))/(x(k+j-1)-x(k));
end
end
disp(C);
disp('Los coeficientes buscados son:');
disp(C(1,:));
>>interpolacion
ingrese la función a interpolar f=@(x)((x^5)*sin(x))/(exp(x)+tanh(x))
ingrese la cantidad de nodos n=5
ingrese el valor del limite inferior a=-5
ingrese el valor del limite superior b=5
1.0e+003 *
3.0172 -1.2327 0.2517 -0.0342 0.0035
-0.0646 0.0258 -0.0048 0.0003 0
0 0.0018 -0.0023 0 0
0.0044 -0.0098 0 0 0
-0.0201 0 0 0 0
Los coeficientes buscados son:
1.0e+003 *
3.0172 -1.2327 0.2517 -0.0342 0.0035
Graficando: F(x):
P(x):
>>interpolacion
ingrese la función a interpolar f=@(x)((x^5)*sin(x))/(exp(x)+tanh(x))
ingrese la cantidad de nodos n=25
ingrese el valor del limite inferior a=-5
ingrese el valor del limite superior b=5
Los coeficientes buscados son:
1.0e+003 *
Columns 1 through 8
3.0172 -2.3768 0.1564 0.5192 -0.2789 0.0638 -0.0034 -0.0020
Columns 9 through 16
0.0006 -0.0001 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000
Columns 17 through 24
-0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000
Column 25
-0.0000
(en ese caso se ha producido un gran error por redondeo; pues como vemos muchos de los
coeficientes dan como valor 0, cuando en realidad solo son próximos a dicho valor)
b) halle el error de aproximación en algunos puntos x E[-5,5]
%calcula el error en algunos puntos de una funcion de aproximacion
f=input('ingrese la funcion real F=');
p=input('ingrese la funcion de aproximación P=');
x=input('ingrese el punto donde desea evaluar el error de interpolación
x=');
e=abs(p(x)-f(x));
disp('El error de aproximacion en el punto x es:');
disp(e);
>>error
ingrese la funcion real F=@(x)((x^5)*sin(x))/(exp(x)+tanh(x))
ingrese la funcion de aproximación P=@(x) 3017.2-1232.7*(x+5)+251.7*(x+2.5)*(x+5)-
34.2*(x)*(x+2.5)*(x+5)+3.5*x*(x+2.5)*(x+5)*(x-2.5)
ingrese el punto donde desea evaluar el error de interpolación x=-5
El error de aproximacion en el punto x es:
0.0423
>>error
ingrese la funcion real F=@(x)((x^5)*sin(x))/(exp(x)+tanh(x))
ingrese la funcion de aproximación P=@(x) 3017.2-1232.7*(x+5)+251.7*(x+2.5)*(x+5)-
34.2*(x)*(x+2.5)*(x+5)+3.5*x*(x+2.5)*(x+5)*(x-2.5)
ingrese el punto donde desea evaluar el error de interpolación x=0.2
El error de aproximacion en el punto x es:
22.3900
>>error
ingrese la funcion real F=@(x)((x^5)*sin(x))/(exp(x)+tanh(x))
ingrese la funcion de aproximación P=@(x) 3017.2-1232.7*(x+5)+251.7*(x+2.5)*(x+5)-
34.2*(x)*(x+2.5)*(x+5)+3.5*x*(x+2.5)*(x+5)*(x-2.5)
ingrese el punto donde desea evaluar el error de interpolación x=4.9
El error de aproximacion en el punto x es:
11.9957

Más contenido relacionado

La actualidad más candente

Integracion numerica
Integracion numericaIntegracion numerica
Integracion numericaKevinGVG
 
Método de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNMétodo de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNTensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposiciónTensor
 
Mecánica para ingenieros estática 4ta edicion j. meriam, l. g. kraige
Mecánica para ingenieros estática  4ta edicion  j. meriam, l. g. kraigeMecánica para ingenieros estática  4ta edicion  j. meriam, l. g. kraige
Mecánica para ingenieros estática 4ta edicion j. meriam, l. g. kraigejosue carrasco diaz
 
Diferenciación numérica Metodos Numericos
Diferenciación numérica Metodos NumericosDiferenciación numérica Metodos Numericos
Diferenciación numérica Metodos NumericosTensor
 
Ventajas y Desventajas de Métodos de Bisección, Secante y Newton Raphson
Ventajas y Desventajas de Métodos de Bisección, Secante y Newton RaphsonVentajas y Desventajas de Métodos de Bisección, Secante y Newton Raphson
Ventajas y Desventajas de Métodos de Bisección, Secante y Newton RaphsonDiana Laura Ochoa Gallegos
 
Formulario para ecuaciones diferenciales de primer orden
Formulario para ecuaciones diferenciales de primer ordenFormulario para ecuaciones diferenciales de primer orden
Formulario para ecuaciones diferenciales de primer ordenMiguel Ángel Hernández Trejo
 
Ecuaciones Diferenciales Lineales Por Variacion De Parametros
Ecuaciones Diferenciales Lineales Por Variacion De ParametrosEcuaciones Diferenciales Lineales Por Variacion De Parametros
Ecuaciones Diferenciales Lineales Por Variacion De Parametrosgraciela88
 
Transformada inversa
Transformada inversaTransformada inversa
Transformada inversaGILALEJANDRO
 
Transformada Directa de Laplace
Transformada Directa de LaplaceTransformada Directa de Laplace
Transformada Directa de LaplaceEdwin_Jack
 
Ecuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de LaplaceEcuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de LaplaceKike Prieto
 
La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...
La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...
La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...jcgallardo11
 
Teoria de fracciones parciales y t ransformada de laplace
Teoria de fracciones parciales y t ransformada de laplaceTeoria de fracciones parciales y t ransformada de laplace
Teoria de fracciones parciales y t ransformada de laplaceOswaldoguanipa1
 
Matlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecioMatlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecioTensor
 

La actualidad más candente (20)

Integracion numerica
Integracion numericaIntegracion numerica
Integracion numerica
 
Método de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MNMétodo de la regla falsa (o metodo de la falsa posición) MN
Método de la regla falsa (o metodo de la falsa posición) MN
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Mecánica para ingenieros estática 4ta edicion j. meriam, l. g. kraige
Mecánica para ingenieros estática  4ta edicion  j. meriam, l. g. kraigeMecánica para ingenieros estática  4ta edicion  j. meriam, l. g. kraige
Mecánica para ingenieros estática 4ta edicion j. meriam, l. g. kraige
 
Interpolacion Lineal
Interpolacion LinealInterpolacion Lineal
Interpolacion Lineal
 
Diferenciación numérica Metodos Numericos
Diferenciación numérica Metodos NumericosDiferenciación numérica Metodos Numericos
Diferenciación numérica Metodos Numericos
 
Metodos numericos con matlab
Metodos numericos con matlabMetodos numericos con matlab
Metodos numericos con matlab
 
Interpola lagrange
Interpola lagrangeInterpola lagrange
Interpola lagrange
 
Ventajas y Desventajas de Métodos de Bisección, Secante y Newton Raphson
Ventajas y Desventajas de Métodos de Bisección, Secante y Newton RaphsonVentajas y Desventajas de Métodos de Bisección, Secante y Newton Raphson
Ventajas y Desventajas de Métodos de Bisección, Secante y Newton Raphson
 
Tablas de probabilidades discretas
Tablas de probabilidades discretasTablas de probabilidades discretas
Tablas de probabilidades discretas
 
Formulario para ecuaciones diferenciales de primer orden
Formulario para ecuaciones diferenciales de primer ordenFormulario para ecuaciones diferenciales de primer orden
Formulario para ecuaciones diferenciales de primer orden
 
Metodo de diferencias finitas
Metodo de diferencias finitasMetodo de diferencias finitas
Metodo de diferencias finitas
 
Ecuaciones Diferenciales Lineales Por Variacion De Parametros
Ecuaciones Diferenciales Lineales Por Variacion De ParametrosEcuaciones Diferenciales Lineales Por Variacion De Parametros
Ecuaciones Diferenciales Lineales Por Variacion De Parametros
 
Transformada inversa
Transformada inversaTransformada inversa
Transformada inversa
 
G5 oscilaciones
G5 oscilacionesG5 oscilaciones
G5 oscilaciones
 
Transformada Directa de Laplace
Transformada Directa de LaplaceTransformada Directa de Laplace
Transformada Directa de Laplace
 
Ecuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de LaplaceEcuaciones Diferenciales - La Transformada de Laplace
Ecuaciones Diferenciales - La Transformada de Laplace
 
La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...
La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...
La Distribucion Normal - Ing Juan Carlos Gallardo Mendoza- jcgallardo11@gmail...
 
Teoria de fracciones parciales y t ransformada de laplace
Teoria de fracciones parciales y t ransformada de laplaceTeoria de fracciones parciales y t ransformada de laplace
Teoria de fracciones parciales y t ransformada de laplace
 
Matlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecioMatlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecio
 

Similar a Algoritmos para matlab

Método de Gauss
Método de GaussMétodo de Gauss
Método de GaussKike Prieto
 
NÚMEROS REALES II
NÚMEROS REALES IINÚMEROS REALES II
NÚMEROS REALES IICESAR V
 
1 ecuaciones no_lineales
1 ecuaciones no_lineales1 ecuaciones no_lineales
1 ecuaciones no_linealestimdrake27
 
Sistemas lineales casos especiales
Sistemas lineales casos especialesSistemas lineales casos especiales
Sistemas lineales casos especialesKike Prieto
 
Analisis numerico
Analisis numericoAnalisis numerico
Analisis numericocesarjmm1
 
Solución de Sistemas de Ecuaciones Lineales Analisis numerico
    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico
Solución de Sistemas de Ecuaciones Lineales Analisis numericolmpd124
 
La recta de los mínimos cuadrados con excel y geogrebra
La recta de los mínimos cuadrados con excel y geogrebraLa recta de los mínimos cuadrados con excel y geogrebra
La recta de los mínimos cuadrados con excel y geogrebraMario Suárez
 
Scrib 3 analisis numerico
Scrib 3 analisis numericoScrib 3 analisis numerico
Scrib 3 analisis numericoMaria Moreno
 
catedra-metodos-numericos-2015-unsch-08.pdf
catedra-metodos-numericos-2015-unsch-08.pdfcatedra-metodos-numericos-2015-unsch-08.pdf
catedra-metodos-numericos-2015-unsch-08.pdfJose Luis Sosa Carmelo
 
Metodos numericos capitulo 2
Metodos numericos capitulo 2Metodos numericos capitulo 2
Metodos numericos capitulo 2Juan Timoteo Cori
 
Analisis Numerico... Jose Manzanilla
Analisis Numerico... Jose Manzanilla Analisis Numerico... Jose Manzanilla
Analisis Numerico... Jose Manzanilla jgmc251
 

Similar a Algoritmos para matlab (20)

Método de Gauss
Método de GaussMétodo de Gauss
Método de Gauss
 
NÚMEROS REALES II
NÚMEROS REALES IINÚMEROS REALES II
NÚMEROS REALES II
 
1 ecuaciones no_lineales
1 ecuaciones no_lineales1 ecuaciones no_lineales
1 ecuaciones no_lineales
 
Clase8 minisem
Clase8 minisemClase8 minisem
Clase8 minisem
 
Analismetodos
AnalismetodosAnalismetodos
Analismetodos
 
Analismetodos
AnalismetodosAnalismetodos
Analismetodos
 
Analismetodos
AnalismetodosAnalismetodos
Analismetodos
 
Sistemas lineales casos especiales
Sistemas lineales casos especialesSistemas lineales casos especiales
Sistemas lineales casos especiales
 
Vectores
VectoresVectores
Vectores
 
Analisis numerico
Analisis numericoAnalisis numerico
Analisis numerico
 
Trabajo practico - Grafos y Matrices (332) - UNA
Trabajo practico - Grafos y Matrices (332) - UNATrabajo practico - Grafos y Matrices (332) - UNA
Trabajo practico - Grafos y Matrices (332) - UNA
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Integracion
IntegracionIntegracion
Integracion
 
Integracion
IntegracionIntegracion
Integracion
 
Solución de Sistemas de Ecuaciones Lineales Analisis numerico
    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico    Solución de Sistemas de Ecuaciones Lineales   Analisis numerico
Solución de Sistemas de Ecuaciones Lineales Analisis numerico
 
La recta de los mínimos cuadrados con excel y geogrebra
La recta de los mínimos cuadrados con excel y geogrebraLa recta de los mínimos cuadrados con excel y geogrebra
La recta de los mínimos cuadrados con excel y geogrebra
 
Scrib 3 analisis numerico
Scrib 3 analisis numericoScrib 3 analisis numerico
Scrib 3 analisis numerico
 
catedra-metodos-numericos-2015-unsch-08.pdf
catedra-metodos-numericos-2015-unsch-08.pdfcatedra-metodos-numericos-2015-unsch-08.pdf
catedra-metodos-numericos-2015-unsch-08.pdf
 
Metodos numericos capitulo 2
Metodos numericos capitulo 2Metodos numericos capitulo 2
Metodos numericos capitulo 2
 
Analisis Numerico... Jose Manzanilla
Analisis Numerico... Jose Manzanilla Analisis Numerico... Jose Manzanilla
Analisis Numerico... Jose Manzanilla
 

Algoritmos para matlab

  • 1. 1.- Escriba en Matlab que implementen los siguientes algoritmos y póngalos a prueba con matrices apropiadas 6x6 a) El de sustitución progresiva y sustitución regresiva para sistemas triangulares - Sustitución regresiva %resuelve un sistema de ecuaciones a traves de la sustitución regresiva A=input('ingrese la matriz triangular superior de coeficientes A='); b=input('ingrese el vector de terminos independientes b='); n=input('ingrese el orden de la matriz n='); x(n)=b(n)/A(n,n); fori=n-1:-1:1 sum=0; for j=i+1:n sum=sum+A(i,j)*x(j); end x(i)=(b(i)-sum)/A(i,i); end disp('Las soluciones son:'); disp(x); >>sustitucionregresiva ingrese la matriz triangular superior de coeficientes A=[34,12,3,87,4,6;0,2,6,3,8,9;0,0,36,42,7,13;0,0,0,8,4,12;0,0,0,0,5,29;0,0,0,0,0,10] ingrese el vector de terminos independientes b=[471,128,389,124,199,60] ingrese el orden de la matriz n=6 Las soluciones son: 1 2 3 4 5 6 COMPROBANDO ESTA SOLUCIÓN: >> A(b') ans = 1 2 3 4 5 6
  • 2. - Sustitución progresiva %resuelve un sistema de ecuaciones a traves de la sustitucion progresiva A=input('ingrese la matriz triangular inferior de coeficientes A='); b=input('ingrese el vector de terminos independientes b='); n=input('ingrese el orden de la matriz n='); x(1)=b(1)/A(1,1); fori=2:n sum=0; for j=1:(i-1) sum=sum+A(i,j)*x(j); end x(i)=(b(i)-sum)/A(i,i); end disp('Los resultados son:'); disp(x); >>sustitucionprogresiva ingrese la matriz triangular inferior de coeficientes A=[4,0,0,0,0,0;51,23,0,0,0,0;34,12,15,0,0,0;2,6,4,23,0,0;56,23,41,16,19,0;65,34,27,98,12,11] ingrese el vector de terminos independientes b=[8,194,206,236,768,1464] ingrese el orden de la matriz n=6 Los resultados son: 2 4 6 8 10 12 COMPROBANDO: >> A(b') ans = 2 4 6 8 10 12
  • 3. b) El de eliminación de Gauss simple y el de eliminación de Gauss con filas permutadas. -Gauss Simple %metodo de gauss simple con respuestas n=input('ingrese el orden de la matriz n='); A=input('ingrese la matriz de coeficientes A='); b=input('ingrese el vector de terminos independientes b='); for k=1:n fori=k+1:n z=A(i,k)/A(k,k); A(i,k)=0; for j=k+1:n A(i,j)=A(i,j)-z*A(k,j); end b(i)=b(i)-z*b(k); end end disp('Por Gauss la matriz queda expresada asi:'); disp(A); x(n)=b(n)/A(n,n); for p=n-1:-1:1 sum=0; for t=p+1:n sum=sum+A(p,t)*x(t); end x(p)=(b(p)-sum)/A(p,p); end disp('Las soluciones al sistema ingresado son:'); disp(x); >>gaussimple ingrese el orden de la matriz n=6 ingrese la matriz de coeficientes A=[12,23,34,4,5,7;89,76,56,34,97,34;123,46,89,32,5,9;3,9,5,7,14,15;3,8,5,90,54,18;23,67,4 8,1,76,2] ingrese el vector de terminos independientes b=[1008,4708,3425,701,2374,2650] Por Gauss la matriz queda expresada asi: 12.0000 23.0000 34.0000 4.0000 5.0000 7.0000 0 -94.5833 -196.1667 4.3333 59.9167 -17.9167 0 0 134.0432 -17.6934 -166.4529 -26.8062 0 0 0 4.7972 2.0923 10.5864 0 0 0 0 5.6424 -180.0640 0 0 0 0 0 218.5816
  • 4. Las soluciones al sistema ingresado son: 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 COMPROBANDO: >> Ab' ans = 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 - El de eliminación de Gauss con filas permutadas %resuelve el sistema de ecuaciones a partir del metodo de gauss con permutacion n=input('ingrese el orden de la matriz n='); A=input('ingrese la matriz de coeficientes A='); b=input('ingrese el vector de terminos independientes b='); P=input('ingrese el orden de permutacion P='); for k=1:n fori=k+1:n z=A(P(i),k)/A(P(k),k); A(P(i),k)=0; for j=k+1:n A(P(i),j)=A(P(i),j)-z*A(P(k),j); end b(P(i))=b(P(i))-z*b(P(k)); end end disp('Por Gauss la matriz queda expresada asi:A='); disp(A); disp('La matriz de coeficientes queda expresada asi: b=') disp(b); x(P(n))=b(P(n))/A(P(n),n); for p=n-1:-1:1 sum=0; for t=p+1:n sum=sum+A(P(p),t)*x(P(t)); end x(P(p))=(b(P(p))-sum)/A(P(p),p); end disp('Las soluciones al sistema ingresado son:'); disp(x);
  • 5. >>permutacion ingrese el orden de la matriz n=6 ingrese la matriz de coeficientes A=[12,23,34,4,5,7;89,76,56,34,97,34;123,46,89,32,5,9;3,9,5,7,14,15;3,8,5,90,54,18;23,67,48,1,76,2 ] ingrese el vector de terminos independientes b=[1008,4708,3425,701,2374,2650] ingrese el orden de permutacion P=[2,4,5,1,3,6] Por Gauss la matriz queda expresada asi:A= 1.0e+003 * 0 0 0 -3.5330 -1.7777 -0.2412 0.0890 0.0760 0.0560 0.0340 0.0970 0.0340 0 0 0 0 -0.0042 0.1343 0 0.0064 0.0031 0.0059 0.0107 0.0139 0 0 0.0005 0.0839 0.0417 0.0052 0 0 0 0 0 0.2186 La matriz de coeficientes queda expresada asi: b= 1.0e+004 * -7.4435 0.4708 0.1955 0.0542 0.1757 0.3279 Las soluciones al sistema ingresado son: 13.0000 10.0000 14.0000 11.0000 12.0000 15.0000 LA RESPUESTA YA FUE COMPROBADA Y ES CORRECTA
  • 6. c) El de eliminación de Gauss con pivoteo de filas escaladas %resuelve un sistema de ecuaciones con filas escaladas A=input('ingrese la matriz de coeficientes A='); b=input('ingrese el vector de terminos independientes b='); n=length(A); P=[1:n]; fori=1:n S(i)=max(abs(A(i,:))); end disp('LOS MAXIMOS VALORES DE CADA FILA SON:'); disp(S); for r=1:n-1 for u=r:n T(u)=A(u,r)/S(u); end %reordena el vector permutación de manera adecuada a=max(T); for k=r:n if T(k)==a d=k; end end %permuta el vector permutación q=P(r); P(r)=P(d); P(d)=q; %matriz de gauss fori=r+1:n z=A(P(i),r)/A(P(r),r); A(P(i),r)=0; for j=r+1:n A(P(i),j)=A(P(i),j)-z*A(P(r),j); end b(P(i))=b(P(i))-z*b(P(r)); end T(r)=0; end disp('LA MATRIZ QUEDA EXPRESADA ASI:'); disp(A); disp('LA MATRIZ TRANSPUESTA DE COEFICIENTES QUEDA DE LA FORMA:') disp(b); disp('EL VECTOR PERMUTACION ES DE LA FORMA'); disp(P); %hallando las soluciones
  • 7. x(P(n))=b(P(n))/A(P(n),n); for p=n-1:-1:1 sum=0; for t=p+1:n sum=sum+A(P(p),t)*x(P(t)); end x(P(p))=(b(P(p))-sum)/A(P(p),p); end disp('Las soluciones(en el orden del vector permutación) al sistema ingresado son:'); disp(x); >>filasescaladas ingrese la matriz de coeficientes A=[12,23,34,4,5,7;89,76,56,34,97,34;123,46,89,32,5,9;3,9,5,7,14,15;3,8,5,90,54,18;23,67,48,1,76,2 ] ingrese el vector de terminos independientes b=[1008,4708,3425,701,2374,2650] LOS MAXIMOS VALORES DE CADA FILA SON: 34 97 123 15 90 76 LA MATRIZ QUEDA EXPRESADA ASI: 0 0 15.3767 2.4579 -19.2833 6.0214 0 0 0 0 -10.3490 35.6065 123.0000 46.0000 89.0000 32.0000 5.0000 9.0000 0 0 0 0 0 8.7551 0 0 0 89.9446 43.9535 18.0815 0 58.3984 31.3577 -4.9837 75.0650 0.3171 LA MATRIZ TRANSPUESTA DE COEFICIENTES QUEDA DE LA FORMA: 1.0e+003 *
  • 8. 0.0368 0.3892 3.4250 0.1313 2.0559 2.0096 EL VECTOR PERMUTACION ES DE LA FORMA 3 6 1 5 2 4 Las soluciones(en el orden del vector permutación) al sistema ingresado son: 12.0000 14.0000 10.0000 15.0000 13.0000 11.0000 COMPROBANDO: UNA VEZ MAS SE TRABAJO CON EL MISMO SISTEMA POR LO QUE LAS RESPUESTAS UAN VEZ MAS SON CORRECTAS. d) Los métodos iterativos de Richardson, Jacobi y Gauss-Seidel. Incluya más de un criterio para detener el algoritmo. - Método de Richardson %resuelve un sitema de ecuaciones mediante el metodo iterativo de Richardson A=input('ingrese la matriz de coeficiente A:'); b=input('ingrese la matriz transpuesta de términos independientes b='); x=input('ingrese un vector de aproximacion x='); m=input('ingrese el numero de iteraciones m='); E=input('ingrese la precision buscada E='); n=length(A); ' k X' X=x; for k=1:m H=A*x'; if abs(H-b')<E break end fori=1:n sum=0; for j=1:n sum=sum+A(i,j)*x(j); end r(i)=b(i)-sum; end fori=1:n x(i)=x(i)+r(i); end if abs(X-x)<E break end X=x; fprintf('%dt%dn',k,x) end disp(x);
  • 9. >>richardson ingrese la matriz de coeficiente A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03 2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1] ingrese la matriz transpuesta de términos independientes b=[2.73,4.112,5.482,6.742,6.404,8.11] ingrese un vector de aproximacion x=[0,0,0,0,0,0] ingrese el numero de iteracciones m=100 ingrese la precision buscada E=0.0001 ans = k X 1 2.730000e+000 4.112000e+000 5.482000e+000 6.742000e+000 6.404000e+000 8.110000e+000 2 -6.140000e-002 6.655300e-001 1.336520e+000 2.863788e+000 3.710562e+000 4.353914e+000 3 1.685483e+000 2.896618e+000 3.956555e+000 4.869835e+000 5.732693e+000 7.072650e+000 4 5.572289e-001 1.455015e+000 2.340654e+000 3.454155e+000 4.514564e+000 5.324407e+000 5 1.281142e+000 2.362730e+000 3.409751e+000 4.349856e+000 5.313260e+000 6.433366e+000 6 8.177887e-001 1.771424e+000 2.733190e+000 3.775539e+000 4.800909e+000 5.719919e+000 7 1.116262e+000 2.148067e+000 3.170142e+000 4.144444e+000 5.128673e+000 6.178863e+000 8 9.251106e-001 1.905370e+000 2.890389e+000 3.907458e+000 4.917689e+000 5.884844e+000 9 1.047991e+000 2.060892e+000 3.070230e+000 4.059478e+000 5.052935e+000
  • 10. 6.073820e+000 10 9.691628e-0011.960959e+0002.954867e+0003.961840e+0004.966049e+000 5.952576e+000 11 1.019787e+0002.025080e+0003.028957e+0004.024505e+0005.021806e+000 6.030433e+000 12 9.872943e-001 1.983905e+000 2.981405e+0003.984271e+0004.986005e+000 5.980459e+000 13 1.008155e+0002.010334e+0003.011936e+0004.010098e+0005.008986e+000 6.012543e+000 14 9.947641e-0011.993367e+0002.992337e+0003.993518e+0004.994232e+000 5.991947e+000 15 1.003361e+0002.004259e+0003.004919e+000 4.004162e+000 5.003703e+000 6.005169e+000 16 9.978422e-001 1.997266e+000 2.996842e+0003.997328e+0004.997623e+000 5.996681e+000 17 1.001385e+0002.001755e+0003.002027e+0004.001715e+0005.001526e+000 6.002130e+000 18 9.991107e-0011.998873e+0002.998699e+000 3.998899e+000 4.999020e+000 5.998632e+000 19 1.000571e+000 2.000723e+000 3.000835e+000 4.000707e+000 5.000629e+000 6.000878e+000 20 9.996335e-001 1.999536e+000 2.999464e+000 3.999546e+000 4.999596e+000 5.999436e+000 21 1.000235e+000 2.000298e+000 3.000344e+000 4.000291e+000 5.000259e+000 6.000362e+000 22 9.998490e-0011.999809e+0002.999779e+000 3.999813e+000 4.999834e+000
  • 11. 5.999768e+000 23 1.000097e+000 2.000123e+000 3.000142e+000 4.000120e+000 5.000107e+000 6.000149e+000 24 9.999378e-001 1.999921e+000 2.999909e+000 3.999923e+000 4.999931e+000 5.999904e+000 25 1.000040e+000 2.000051e+000 3.000058e+0004.000049e+0005.000044e+000 6.000061e+000 26 9.999743e-001 1.999967e+000 2.999962e+000 3.999968e+000 4.999972e+000 5.999961e+000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 COMPROBANDO: b = 2.7300 4.1120 5.4820 6.7420 6.4040 8.1100 >> Ab' ans = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000
  • 12. - Método de Jacobi %resuelve un sistema de ecuaciones mediante el metodo de jacobi A=input('ingrese la matriz de coeficiente A:'); b=input('ingrese la matriz transpuesta de términos independientes b='); x=input('ingrese un vector de aproximacion x='); m=input('ingrese el numero de iteracciones m='); E=input('ingrese la precision buscada E'); n=length(A); X=x; ' k X' for k=1:m H=A*x'; if abs(H-b')<E break end fori=1:n sum=0; for j=1:n ifi~=j sum=sum+A(i,j)*x(j); end end U(i)=(b(i)-sum)/A(i,i); end fori=1:n x(i)=U(i); end if abs(X-x)<E break end X=x; fprintf('%dt%dn',k,x) end disp('La respuesta final es'); disp(x); >>jacobi ingrese la matriz de coeficiente A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03 2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1] ingrese la matriz transpuesta de términos independientes b=[1008,4708,3425,701,2374,2650] ingrese un vector de aproximacion x=[0,0,0,0,0,0] ingrese el numero de iteracciones m=50 ingrese la precision buscada E0.001 ans =
  • 13. k X 1 1008 4708 3425 701 2374 2650 2 -5.993300e+002 3.138444e+003 1.375804e+003 -7.892960e+002 1.511876e+003 -1.915710e+002 3 2.055395e+002 4.307750e+003 2.638324e+003 4.207412e+002 2.557511e+003 1.040352e+003 4 -3.796607e+002 3.607310e+003 1.780475e+003-2.505329e+002 1.948080e+003 1.448455e+002 5 -2.010291e+001 4.078305e+003 2.303187e+0032.063335e+002 2.353384e+003 7.016640e+002 6 -2.558124e+002 3.785340e+003 1.957048e+003 -8.240161e+001 2.097267e+003 3.402090e+002 7 -1.062063e+002 3.976918e+003 2.175764e+003 1.039214e+002 2.263484e+003 5.705731e+002 8 -2.028779e+002 3.855131e+003 2.034240e+003 -1.534937e+001 2.157494e+003 4.219634e+002 9 -1.410426e+002 3.933713e+003 2.124725e+003 6.136314e+001 2.225793e+003 5.170902e+002 10 -1.808161e+002 3.883399e+003 2.066511e+003 1.217256e+001 2.182034e+003 4.559270e+002 11 -1.553092e+002 3.915744e+003 2.103839e+003 4.377098e+001 2.210155e+003 4.951599e+002 12 -1.716927e+002 3.894996e+003 2.079860e+003 2.349257e+001 2.192112e+003 4.699631e+002 13 -1.611782e+002 3.908321e+003 2.095248e+003 3.651283e+001 2.203699e+003 4.861349e+002 14 -1.679292e+002 3.899768e+003 2.085368e+003 2.815504e+001 2.196262e+003 4.757520e+002 15 -1.635956e+002 3.905259e+003 2.091710e+003 3.352071e+001 2.201036e+003 4.824170e+002 16 -1.663778e+002 3.901735e+003 2.087639e+003 3.007623e+001 2.197971e+003 4.781382e+002 17 -1.645918e+002 3.903998e+003 2.090252e+003 3.228749e+001 2.199939e+003 4.808850e+002 18 -1.657383e+002 3.902545e+003 2.088574e+003 3.086795e+001 2.198676e+003 4.791216e+002 19 -1.650023e+002 3.903477e+003 2.089652e+003 3.177925e+001 2.199487e+003 4.802536e+002 20 -1.654748e+002 3.902879e+003 2.088960e+003 3.119423e+001 2.198966e+003 4.795269e+002
  • 14. 21 -1.651715e+002 3.903263e+003 2.089404e+003 3.156979e+001 2.199300e+003 4.799934e+002 22 -1.653662e+002 3.903016e+003 2.089119e+003 3.132869e+001 2.199086e+003 4.796939e+002 23 -1.652412e+002 3.903175e+003 2.089302e+003 3.148347e+001 2.199224e+003 4.798862e+002 24 -1.653214e+002 3.903073e+003 2.089184e+003 3.138411e+001 2.199135e+003 4.797628e+002 25 -1.652699e+002 3.903138e+003 2.089260e+003 3.144789e+001 2.199192e+003 4.798420e+002 26 -1.653030e+002 3.903096e+003 2.089211e+003 3.140695e+001 2.199156e+003 4.797912e+002 27 -1.652818e+002 3.903123e+003 2.089243e+003 3.143323e+001 2.199179e+003 4.798238e+002 28 -1.652954e+002 3.903106e+003 2.089223e+003 3.141636e+001 2.199164e+003 4.798028e+002 29 -1.652866e+002 3.903117e+003 2.089235e+003 3.142719e+001 2.199174e+003 4.798163e+002 30 -1.652923e+002 3.903110e+003 2.089227e+003 3.142024e+001 2.199167e+003 4.798077e+002 31 -1.652887e+002 3.903115e+003 2.089232e+003 3.142470e+001 2.199171e+003 4.798132e+002 32 -1.652910e+002 3.903112e+003 2.089229e+003 3.142183e+001 2.199169e+003 4.798097e+002 33 -1.652895e+002 3.903114e+003 2.089231e+003 3.142367e+001 2.199170e+003 4.798119e+002 34 -1.652904e+002 3.903112e+003 2.089230e+003 3.142249e+001 2.199169e+003 4.798105e+002 La respuesta final es 1.0e+003 * -0.1653 3.9031 2.0892 0.0314 2.1992 0.4798 COMPROBANDO: >> Ab' ans = 1.0e+003 * -0.1653 3.9031 2.0892 0.0314 2.1992 0.4798
  • 15. - Método iterativo de Gauss - Seidel %resuelve un sitema de ecuaciones mediante el metodo iterativo de %Gauss-Seidel A=input('ingrese la matriz de coeficiente A:'); b=input('ingrese la matriz transpuesta de términos independientes b='); x=input('ingrese un vector de aproximacion x='); m=input('ingrese el numero de iteracciones m='); E=input('ingrese la precision buscada E='); n=length(A); ' k X' X=x; for k=1:m H=A*x'; if abs(H-b')<E break end fori=1:n sum=0; for j=1:n ifi~=j sum=sum+A(i,j)*x(j); end end x(i)=(b(i)-sum)/A(i,i); end if abs(X-x)<E break end X=x; fprintf('%dt%dn',k,x) end disp('La respuesta final es:'); disp(x); >>gaussiterativo ingrese la matriz de coeficiente A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03 2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1] ingrese la matriz transpuesta de términos independientes b=[2.73,4.112,5.482,6.742,6.404,8.11] ingrese un vector de aproximacion x=[0,0,0,0,0,0] ingrese el numero de iteracciones m=50 ingrese la precision buscada E=0.01 ans = k X 1 2.730000e+000 3.874490e+000 4.193548e+000 6.208534e+000 4.175442e+000 4.974002e+000
  • 16. 2 4.986266e-001 1.731324e+000 2.717142e+000 4.486530e+000 5.158387e+000 6.135386e+000 3 1.012005e+000 2.035653e+000 2.850798e+000 3.939136e+000 5.011185e+000 6.022336e+000 4 1.005947e+000 2.044326e+000 2.997660e+000 3.989941e+000 4.998307e+000 5.984247e+000 5 9.930604e-001 2.003494e+000 3.003494e+000 4.005131e+000 5.001830e+000 5.997535e+000 La respuesta final es: 0.9931 2.0035 3.0035 4.0051 5.0018 5.9975 COMPROBANDO: >> Ab' ans = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 NUESTRAS RESPUESTAS SON APROXIMADAS. e) El algoritmo del método de la potencia. %halla el valor propio de una matriz por el metodo de la potencia A=input('ingrese la matriz de coeficiente A:'); x=input('ingrese un vector propio al azar x='); m=input('ingrese el numero de iteracciones m='); E=input('ingrese el grado de exactitud buscado E='); C=(y(1,1)/x(1,1))+5; for k=1:m y=A*x; X=x(1,1); Y=y(1,1); R=Y/X; x=y; fprintf('%dt%dn',k,R) if abs((C-R))<E break end C=R; end disp('Uno de los valores propios es:'); disp(R);
  • 17. >>valorpropio ingrese la matriz de coeficiente A:[1,0.2,0.07,0.08,0.1,0.05;0.087,1,0.3,0.05,0.065,0.1;0.032,0.31,1,0.24,0.03,0.12;0.098,0.034,0.03 2,1,0.16,0.28;0.34,0.013,0.076,0.15,1,0.035;0.01,0.38,0.23,0.045,0.094,1] ingrese un vector propio al azar x=[1;1;1;1;1;1] ingrese el numero de iteracciones m=50 ingrese el grado de exactitud buscado E=0.001 1 1.500000e+000 2 1.546207e+000 3 1.579544e+000 4 1.602046e+000 5 1.616658e+000 6 1.625959e+000 7 1.631826e+000 8 1.635520e+000 9 1.637851e+000 10 1.639326e+000 11 1.640264e+000 Uno de los valores propios es: 1.6403 COMPROBANDO: >> [V,LAMBDA]=eig(A) V =….. LAMBDA = Columns 1 through 4 1.64200 0 0 0 1.1012 0 0 0 0 0.8730 + 0.1543i 0 0 0 0 0.8730 - 0.1543i 0 0 0 0 0 0 0 0
  • 18. 2.- Aplique la aceleración de Aitken a algunos métodos iterativos para calcular raíces: - Metodo De La Secante Acelerado % resuelve ecuaciones por el metodo de la secante con aceleración de Aitken f = input('funcion f='); a = input('punto inicial1 a='); b = input('punto inicial2 b='); m = input('numero de interaciones m='); E = input('precision E='); u = f(a) ; v = f(b) ; r = zeros(1,m); for k =1:m if abs(u)<abs(v) c=a; a=b; b=c; w=u; u=v; v=w; end s = (b-a)/(v-u); a = b; u = v; b = b - v*s; r(k)= b; v = f(b); if k>2 R(k-2) =(r(k-2)*r(k)-(r(k-1)^2))/(r(k)-2*r(k-1)+r(k-2)); if f(R(k-2))<E break; end end fprintf('%dt%fn',k,b) end disp('La respuesta es'); R >>secanteacelerado funcion f=@(x)x^5-x-1-sin(x) punto inicial1 a=3 punto inicial2 b=2 numero de interaciones m=80 precision E=0.001 1 1.866722 2 1.595114 La respuesta es: T = 1.2553
  • 19. Haciendo una compración con la convergencia del método de la secante sin aceleración veamos: >>secante ingrese la funcion f=@(x)x^5-x-1-sin(x) ingrese el valor del primer punto aproximado a=4 ingrese el valor del segundo punto aproximado b=3 ingrese el número de repeticiones M=25 ingrese la presicion buscada d=0.00001 ingrese la presicion buscada 2 E=0.00001 k x f(x) 1 2.694123 137.807349 2 2.276988 57.169516 3 1.981253 26.629911 4 1.723379 11.490332 5 1.527662 4.793520 6 1.387570 1.772854 7 1.305349 0.519619 8 1.271258 0.093501 9 1.263778 0.006673 10 1.263203 0.000096 11 1.263194 0.000000 1.2632 Como podemos ver, con el método de aceleración de Aitken, el valor buscado salta con mayor rapidez. - Metodo De Newton Acelerado % resuelve ecuaciones por el metodo de Newton con aceleración de Aitken f=input('ingrese la funcion='); x=input('Ingrese un valor aproximado a la raiz x= '); M=input('Ingrese el número de iteracciones M= '); d=input('ingrese la derivada de la funcion = '); E=input('ingrese la precision buscada E='); r = zeros(1,m); u = f(a) ; v = f(b) ; r = zeros(1,m); for k=1:M a=x; x=x-f(x)/d(x); r(k)= x; if abs(x-a)<E break end if k>2 T(k-2) =(r(k-2)*r(k)-(r(k-1)^2))/(r(k)-2*r(k-1)+r(k-2)); G=T(k-2); if f(T(k-2))<E break; end fprintf('%dt%fn',k,G) end end disp('La respuesta es'); disp(G);
  • 20. >>newtonacelerado ingrese la funcion=@(x)x^5-x-1-sin(x) Ingrese un valor aproximado a la raiz x= 4 Ingrese el número de iteracciones M= 20 ingrese la derivada de la funcion = @(x)5*x^4-1-cos(x) ingrese la precision buscada E=0.00001 1 3.203099 2 2.570346 La respuesta es 0.2632 Como vemos la convergencia es mucho mayor al método de Newton sin aceleración. Veamos. >>newton ingrese la funcion=@(x)x^5-x-1-sin(x) Ingrese un valor aproximado a la raiz x= 4 Ingrese el núemero de iteracciones M= 20 ingrese la derivada de la funcion = @(x)5*x^4-1-cos(x) ingrese la precision buscada E=0.000001 k x f(x) x-xo 1 3.203099 333.030799 -0.796901 2 2.570346 108.080002 -0.632753 3 2.074754 34.493921 -0.495593 4 1.700352 10.521316 -0.374401 5 1.443260 2.827009 -0.257092 6 1.305808 0.525717 -0.137452 7 1.266208 0.034628 -0.039600 8 1.263211 0.000186 -0.002997 9 1.263194 0.000000 -0.000016 10 1.263194 -0.000000 -0.000000 el valor de la raiz es 1.2632 La aceleración de Aitken para los métodos iterativos es básicamente realizar algunas modificaciones básicas a los algoritmos.
  • 21. 3.- Implemente el algoritmo el algoritmo de diferencias divididas. Aplique para calcular el polinomio de interpolación para f(x)=(x^5*sen(x))/(e^x- tanh(x)) en [-5,5] a) usando 5 y después 25 nodos igualmente espaciados. Grafique F(x) y P(x). Comente. %calcula un polinomio de interpolacion por el metodo de interpolación por %diferencias divididas f=input('ingrese la función a interpolar f='); n=input('ingrese la cantidad de nodos n='); a=input('ingrese el valor del limite inferior a='); b=input('ingrese el valor del limite superior b='); d=abs((a-b)/(n-1)); fori=1:n x(i)=a+d*(i-1); y(i)=f(x(i)); end fori=1:n C(i,1)=y(i); end for j=2:n for k=1:(n-j+1) C(k,j)=(C(k+1,j-1)-C(k,j-1))/(x(k+j-1)-x(k)); end end disp(C); disp('Los coeficientes buscados son:'); disp(C(1,:)); >>interpolacion ingrese la función a interpolar f=@(x)((x^5)*sin(x))/(exp(x)+tanh(x)) ingrese la cantidad de nodos n=5 ingrese el valor del limite inferior a=-5 ingrese el valor del limite superior b=5 1.0e+003 * 3.0172 -1.2327 0.2517 -0.0342 0.0035 -0.0646 0.0258 -0.0048 0.0003 0 0 0.0018 -0.0023 0 0 0.0044 -0.0098 0 0 0 -0.0201 0 0 0 0
  • 22. Los coeficientes buscados son: 1.0e+003 * 3.0172 -1.2327 0.2517 -0.0342 0.0035 Graficando: F(x): P(x):
  • 23. >>interpolacion ingrese la función a interpolar f=@(x)((x^5)*sin(x))/(exp(x)+tanh(x)) ingrese la cantidad de nodos n=25 ingrese el valor del limite inferior a=-5 ingrese el valor del limite superior b=5 Los coeficientes buscados son: 1.0e+003 * Columns 1 through 8 3.0172 -2.3768 0.1564 0.5192 -0.2789 0.0638 -0.0034 -0.0020 Columns 9 through 16 0.0006 -0.0001 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 Columns 17 through 24 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 Column 25 -0.0000 (en ese caso se ha producido un gran error por redondeo; pues como vemos muchos de los coeficientes dan como valor 0, cuando en realidad solo son próximos a dicho valor) b) halle el error de aproximación en algunos puntos x E[-5,5] %calcula el error en algunos puntos de una funcion de aproximacion f=input('ingrese la funcion real F='); p=input('ingrese la funcion de aproximación P='); x=input('ingrese el punto donde desea evaluar el error de interpolación x='); e=abs(p(x)-f(x)); disp('El error de aproximacion en el punto x es:'); disp(e);
  • 24. >>error ingrese la funcion real F=@(x)((x^5)*sin(x))/(exp(x)+tanh(x)) ingrese la funcion de aproximación P=@(x) 3017.2-1232.7*(x+5)+251.7*(x+2.5)*(x+5)- 34.2*(x)*(x+2.5)*(x+5)+3.5*x*(x+2.5)*(x+5)*(x-2.5) ingrese el punto donde desea evaluar el error de interpolación x=-5 El error de aproximacion en el punto x es: 0.0423 >>error ingrese la funcion real F=@(x)((x^5)*sin(x))/(exp(x)+tanh(x)) ingrese la funcion de aproximación P=@(x) 3017.2-1232.7*(x+5)+251.7*(x+2.5)*(x+5)- 34.2*(x)*(x+2.5)*(x+5)+3.5*x*(x+2.5)*(x+5)*(x-2.5) ingrese el punto donde desea evaluar el error de interpolación x=0.2 El error de aproximacion en el punto x es: 22.3900 >>error ingrese la funcion real F=@(x)((x^5)*sin(x))/(exp(x)+tanh(x)) ingrese la funcion de aproximación P=@(x) 3017.2-1232.7*(x+5)+251.7*(x+2.5)*(x+5)- 34.2*(x)*(x+2.5)*(x+5)+3.5*x*(x+2.5)*(x+5)*(x-2.5) ingrese el punto donde desea evaluar el error de interpolación x=4.9 El error de aproximacion en el punto x es: 11.9957