Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmosparamatlab 130509180435 Phpapp02
Algoritmosparamatlab 130509180435 Phpapp02
- Sustitucin 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);
for i=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,3
4,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
>> 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,5
4,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.0890
0.0760
0.0560
0.0064
0.0005
0.0340
0 -0.0042
0.0031
0.0059
0.0839
0
0.0970
0.1343
0.0107
0.0417
0
0.0340
0.0139
0.0052
0.2186
0.4708
0.1955
0.0542
0.1757
0.3279
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 permutacin) 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,5
4,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
0 15.3767
2.4579 -19.2833
0 -10.3490 35.6065
6.0214
5.0000
9.0000
8.7551
0.3171
0.0368
0.3892
3.4250
0.1313
2.0559
2.0096
>> 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.1
2;0.098,0.034,0.032,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 trminos 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
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-001 1.960959e+000 2.954867e+000 3.961840e+000
4.966049e+000
5.952576e+000
11
1.019787e+000 2.025080e+000 3.028957e+000 4.024505e+000
5.021806e+000
6.030433e+000
12
9.872943e-001 1.983905e+000 2.981405e+000 3.984271e+000
4.986005e+000
5.980459e+000
13
1.008155e+000 2.010334e+000 3.011936e+000 4.010098e+000
5.008986e+000
6.012543e+000
14
9.947641e-001 1.993367e+000 2.992337e+000 3.993518e+000
4.994232e+000
5.991947e+000
15
1.003361e+000 2.004259e+000 3.004919e+000 4.004162e+000
5.003703e+000
6.005169e+000
16
9.978422e-001 1.997266e+000 2.996842e+000 3.997328e+000
4.997623e+000
5.996681e+000
17
1.001385e+000 2.001755e+000 3.002027e+000 4.001715e+000
5.001526e+000
6.002130e+000
18
9.991107e-001 1.998873e+000 2.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-001 1.999809e+000 2.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+000 4.000049e+000
5.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
COMPROBANDO:
3.0000
4.0000
5.0000
6.0000
b=
2.7300
4.1120
5.4820
6.7420
6.4040
8.1100
>> A\b'
ans =
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
- Mtodo 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 trminos 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
for i=1:n
sum=0;
for j=1:n
if i~=j
sum=sum+A(i,j)*x(j);
end
end
U(i)=(b(i)-sum)/A(i,i);
end
for i=1:n
x(i)=U(i);
end
if abs(X-x)<E
break
end
X=x;
fprintf('%d\t%d\n',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.1
2;0.098,0.034,0.032,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 trminos 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
1
1008
4708
3425
701
2374
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+003
2.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
2650
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-1.410426e+002
6.136314e+001
-1.808161e+002
1.217256e+001
-1.553092e+002
4.377098e+001
-1.716927e+002
2.349257e+001
-1.611782e+002
3.651283e+001
-1.679292e+002
2.815504e+001
-1.635956e+002
3.352071e+001
-1.663778e+002
3.007623e+001
-1.645918e+002
3.228749e+001
-1.657383e+002
3.086795e+001
-1.650023e+002
3.177925e+001
-1.654748e+002
3.119423e+001
-1.651715e+002
3.156979e+001
-1.653662e+002
3.132869e+001
-1.652412e+002
3.148347e+001
-1.653214e+002
3.138411e+001
-1.652699e+002
3.144789e+001
-1.653030e+002
3.140695e+001
-1.652818e+002
3.143323e+001
-1.652954e+002
3.141636e+001
-1.652866e+002
3.142719e+001
-1.652923e+002
3.142024e+001
3.933713e+003
2.225793e+003
3.883399e+003
2.182034e+003
3.915744e+003
2.210155e+003
3.894996e+003
2.192112e+003
3.908321e+003
2.203699e+003
3.899768e+003
2.196262e+003
3.905259e+003
2.201036e+003
3.901735e+003
2.197971e+003
3.903998e+003
2.199939e+003
3.902545e+003
2.198676e+003
3.903477e+003
2.199487e+003
3.902879e+003
2.198966e+003
3.903263e+003
2.199300e+003
3.903016e+003
2.199086e+003
3.903175e+003
2.199224e+003
3.903073e+003
2.199135e+003
3.903138e+003
2.199192e+003
3.903096e+003
2.199156e+003
3.903123e+003
2.199179e+003
3.903106e+003
2.199164e+003
3.903117e+003
2.199174e+003
3.903110e+003
2.199167e+003
2.124725e+003
5.170902e+002
2.066511e+003
4.559270e+002
2.103839e+003
4.951599e+002
2.079860e+003
4.699631e+002
2.095248e+003
4.861349e+002
2.085368e+003
4.757520e+002
2.091710e+003
4.824170e+002
2.087639e+003
4.781382e+002
2.090252e+003
4.808850e+002
2.088574e+003
4.791216e+002
2.089652e+003
4.802536e+002
2.088960e+003
4.795269e+002
2.089404e+003
4.799934e+002
2.089119e+003
4.796939e+002
2.089302e+003
4.798862e+002
2.089184e+003
4.797628e+002
2.089260e+003
4.798420e+002
2.089211e+003
4.797912e+002
2.089243e+003
4.798238e+002
2.089223e+003
4.798028e+002
2.089235e+003
4.798163e+002
2.089227e+003
4.798077e+002
31
-1.652887e+002
3.142470e+001
32
-1.652910e+002
3.142183e+001
33
-1.652895e+002
3.142367e+001
34
-1.652904e+002
3.142249e+001
La respuesta final es
1.0e+003 *
-0.1653 3.9031
COMPROBANDO:
>> A\b'
ans =
1.0e+003 *
-0.1653
3.9031
2.0892
0.0314
2.1992
0.4798
3.903115e+003
2.199171e+003
3.903112e+003
2.199169e+003
3.903114e+003
2.199170e+003
3.903112e+003
2.199169e+003
2.0892
0.0314
2.089232e+003
4.798132e+002
2.089229e+003
4.798097e+002
2.089231e+003
4.798119e+002
2.089230e+003
4.798105e+002
2.1992
0.4798
break
end
X=x;
fprintf('%d\t%d\n',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.1
2;0.098,0.034,0.032,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 trminos 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
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:
>> A\b'
ans =
1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
NUESTRAS RESPUESTAS SON APROXIMADAS.
>> 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.1
2;0.098,0.034,0.032,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
1.546207e+000
1.579544e+000
1.602046e+000
1.616658e+000
1.625959e+000
1.631826e+000
1.635520e+000
1.637851e+000
10
1.639326e+000
11
1.640264e+000
0
0
0.8730 + 0.1543i
0
0
0.8730 - 0.1543i
0
0
0
0
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('%d\t%f\n',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 compracin con la convergencia del mtodo de la secante sin aceleracin
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 nmero 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 mtodo de aceleracin de Aitken, el valor buscado salta con
mayor rapidez.
>> newtonacelerado
ingrese la funcion=@(x)x^5-x-1-sin(x)
Ingrese un valor aproximado a la raiz x= 4
Ingrese el nmero 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 mtodo de Newton sin aceleracin.
Veamos.
>> newton
ingrese la funcion=@(x)x^5-x-1-sin(x)
Ingrese un valor aproximado a la raiz x= 4
Ingrese el nemero 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
2
2.570346
108.080002
3
2.074754
34.493921
4
1.700352
10.521316
5
1.443260
2.827009
6
1.305808
0.525717
7
1.266208
0.034628
8
1.263211
0.000186
9
1.263194
0.000000
10
1.263194
-0.000000
el valor de la raiz es
1.2632
-0.796901
-0.632753
-0.495593
-0.374401
-0.257092
-0.137452
-0.039600
-0.002997
-0.000016
-0.000000
disp(C(1,:));
>> interpolacion
ingrese la funcin 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.0646
0
0.2517 -0.0342
0.0258 -0.0048
0.0003
0.0018 -0.0023
0.0044 -0.0098
-0.0201
0
0
0.0035
0
0
0.2517 -0.0342
0.0035
P(x):
>> interpolacion
ingrese la funcin 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
Columns 1 through 8
3.0172 -2.3768
0.1564
0.5192 -0.2789
0.0000 -0.0000
0.0000 -0.0000
0.0000
0.0000 -0.0000
0.0000 -0.0000
0.0000
Columns 9 through 16
0.0006 -0.0001 -0.0000
Columns 17 through 24
-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 prximos a dicho valor)
b) halle el error de aproximacin 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 aproximacin P=');
x=input('ingrese el punto donde desea evaluar el error de interpolacin
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 aproximacin 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 interpolacin 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 aproximacin 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 interpolacin 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 aproximacin 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 interpolacin x=4.9
El error de aproximacion en el punto x es:
11.9957