- 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,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
>> 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.0042 0.1343
0 0.2186
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,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
0 -10.3490 35.6065
0 8.7551
>> 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 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
X
2.730000e+000 4.112000e+000 5.482000e+000 6.742000e+000 6.404000e+000
8.110000e+000
2
4.353914e+000
3
7.072650e+000
4
5.324407e+000
5
6.433366e+000
6
5.719919e+000
7
6.178863e+000
8
5.884844e+000
9
6.073820e+000
10
5.952576e+000
11
6.030433e+000
12
5.980459e+000
13
6.012543e+000
14
5.991947e+000
15
6.005169e+000
16
5.996681e+000
17
6.002130e+000
18
5.998632e+000
19
6.000878e+000
20
5.999436e+000
21
6.000362e+000
22
5.999768e+000
23
6.000149e+000
24
5.999904e+000
25
6.000061e+000
26
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
>> 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.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 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
X
1008
4708
-5.993300e+002
1.511876e+003
2.055395e+002
2.557511e+003
-3.796607e+002
1.948080e+003
-2.010291e+001
2.353384e+003
-2.558124e+002
2.097267e+003
-1.062063e+002
2.263484e+003
-2.028779e+002
2.157494e+003
-1.410426e+002
2.225793e+003
-1.808161e+002
2.182034e+003
-1.553092e+002
2.210155e+003
-1.716927e+002
2.192112e+003
-1.611782e+002
2.203699e+003
-1.679292e+002
2.196262e+003
-1.635956e+002
2.201036e+003
-1.663778e+002
2.197971e+003
-1.645918e+002
2.199939e+003
-1.657383e+002
2.198676e+003
-1.650023e+002
2.199487e+003
-1.654748e+002
2.198966e+003
3425
3.138444e+003
-1.915710e+002
4.307750e+003
1.040352e+003
3.607310e+003
1.448455e+002
4.078305e+003
7.016640e+002
3.785340e+003
3.402090e+002
3.976918e+003
5.705731e+002
3.855131e+003
4.219634e+002
3.933713e+003
5.170902e+002
3.883399e+003
4.559270e+002
3.915744e+003
4.951599e+002
3.894996e+003
4.699631e+002
3.908321e+003
4.861349e+002
3.899768e+003
4.757520e+002
3.905259e+003
4.824170e+002
3.901735e+003
4.781382e+002
3.903998e+003
4.808850e+002
3.902545e+003
4.791216e+002
3.903477e+003
4.802536e+002
3.902879e+003
4.795269e+002
701
2374
1.375804e+003
2650
-7.892960e+002
2.638324e+003
4.207412e+002
1.780475e+003
-2.505329e+002
2.303187e+003
2.063335e+002
1.957048e+003
-8.240161e+001
2.175764e+003
1.039214e+002
2.034240e+003
-1.534937e+001
2.124725e+003
6.136314e+001
2.066511e+003
1.217256e+001
2.103839e+003
4.377098e+001
2.079860e+003
2.349257e+001
2.095248e+003
3.651283e+001
2.085368e+003
2.815504e+001
2.091710e+003
3.352071e+001
2.087639e+003
3.007623e+001
2.090252e+003
3.228749e+001
2.088574e+003
3.086795e+001
2.089652e+003
3.177925e+001
2.088960e+003
3.119423e+001
21
-1.651715e+002
2.199300e+003
22
-1.653662e+002
2.199086e+003
23
-1.652412e+002
2.199224e+003
24
-1.653214e+002
2.199135e+003
25
-1.652699e+002
2.199192e+003
26
-1.653030e+002
2.199156e+003
27
-1.652818e+002
2.199179e+003
28
-1.652954e+002
2.199164e+003
29
-1.652866e+002
2.199174e+003
30
-1.652923e+002
2.199167e+003
31
-1.652887e+002
2.199171e+003
32
-1.652910e+002
2.199169e+003
33
-1.652895e+002
2.199170e+003
34
-1.652904e+002
2.199169e+003
La respuesta final es
1.0e+003 *
3.903263e+003
4.799934e+002
3.903016e+003
4.796939e+002
3.903175e+003
4.798862e+002
3.903073e+003
4.797628e+002
3.903138e+003
4.798420e+002
3.903096e+003
4.797912e+002
3.903123e+003
4.798238e+002
3.903106e+003
4.798028e+002
3.903117e+003
4.798163e+002
3.903110e+003
4.798077e+002
3.903115e+003
4.798132e+002
3.903112e+003
4.798097e+002
3.903114e+003
4.798119e+002
3.903112e+003
4.798105e+002
2.089404e+003
3.156979e+001
2.089119e+003
3.132869e+001
2.089302e+003
3.148347e+001
2.089184e+003
3.138411e+001
2.089260e+003
3.144789e+001
2.089211e+003
3.140695e+001
2.089243e+003
3.143323e+001
2.089223e+003
3.141636e+001
2.089235e+003
3.142719e+001
2.089227e+003
3.142024e+001
2.089232e+003
3.142470e+001
2.089229e+003
3.142183e+001
2.089231e+003
3.142367e+001
2.089230e+003
3.142249e+001
>> 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 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
4.175442e+000
3.874490e+000
4.974002e+000
4.193548e+000
6.208534e+000
4.986266e-001
1.731324e+000
5.158387e+000
6.135386e+000
3
1.012005e+000
2.035653e+000
5.011185e+000
6.022336e+000
4
1.005947e+000
2.044326e+000
4.998307e+000
5.984247e+000
5
9.930604e-001
2.003494e+000
5.001830e+000
5.997535e+000
La respuesta final es:
0.9931 2.0035 3.0035 4.0051 5.0018 5.9975
COMPROBANDO:
2.717142e+000
4.486530e+000
2.850798e+000
3.939136e+000
2.997660e+000
3.989941e+000
3.003494e+000
4.005131e+000
>> 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.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
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
>> 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.
- Metodo De Newton Acelerado
% resuelve ecuaciones por el metodo de Newton con aceleracin de Aitken
f=input('ingrese la funcion=');
x=input('Ingrese un valor aproximado a la raiz x= ');
M=input('Ingrese el nmero 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('%d\t%f\n',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 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
-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
>> 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
P(x):
0.2517 -0.0342
0.0035
>> 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
Los coeficientes buscados son:
1.0e+003 *
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