Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Considere una función 𝑦 = 𝑓(𝑥), 𝑐𝑜𝑛 𝑥 ∈ [𝑎, 𝑏]. Continúa en este intervalo.
Problema: Hallar una raíz de la ecuación 𝑓(𝑥) = 0
METODOS CERRADOS
METODO DE BISECCION
-1
-2
-3
1 1.5 2 2.5 3 3.5 4 4.5 5
2
Archivo: biseccion02.m Ejecución en MatLab
clear;clc; >> biseccion02
disp('CALCULO DE LA RAIZ DE UNA ECUACION CALCULO DE LA RAIZ DE
NO LINEAL') UNA ECUACION NO LINEAL
disp('POR EL METODO CERRADO DE BISECCION') POR EL METODO CERRADO
n=input('Ingrese precisión de cifras DE BISECCION
significativas n = '); Ingrese precisión de cifras
xl=input('Ingrese límite inferior xl = '); significativas n = 4
xu=input('Ingrese límite superior xu = '); Ingrese límite inferior xl = 2
Es=(0.5*10^(2-n)); Ingrese límite superior xu = 3
Ea=100; Raiz Solucion :
xr=0; 2.123474121093750
i=0; Error aproximado : 0.0028743066
while Ea>Es Numero iteraciones: 14
xa=xr; >>
xr=(xl+xu)/2; %FORMULA DE BISECCION
if funcion(xl)*funcion(xr)<0
xu=xr;
Ea=abs((xr-xa)/xr)*100;
elseif funcion(xl)*funcion(xr)>0
xl=xr;
Ea=abs((xr-xa)/xr)*100;
end
i=i+1;
end
fprintf('Raiz Solucion : %12.15f\n',xr)
fprintf('Error aproximado : %12.10f\n',Ea)
fprintf('Numero iteraciones: %12.0f\n',i)
150 1.6
1.4
100
eje de las ordenadas
1.2
1
50
0.8
0 0.6
0.4
-50
0.2
-100 0
-100 -80 -60 -40 -20 0 20 -2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0
eje de las abscisas
3
Archivo: biseccion02.m Ejecución en MatLab
clear;clc; >> biseccion02
disp('CALCULO DE LA RAIZ DE UNA ECUACION CALCULO DE LA RAIZ DE
NO LINEAL') UNA ECUACION NO LINEAL
disp('POR EL METODO CERRADO DE BISECCION') POR EL METODO CERRADO
n=input('Ingrese precisión de cifras DE BISECCION
significativas n = '); Ingrese precisión de cifras
xl=input('Ingrese límite inferior xl = '); significativas n = 6
xu=input('Ingrese límite superior xu = '); Ingrese límite inferior xl = -2
Es=(0.5*10^(2-n)); Ingrese límite superior xu = 0
Ea=100; Raíz Solución : -
xr=0; 0.567143201828003
i=0; Error aproximado : 0.0000420385
while Ea>Es Numero iteraciones: 23
xa=xr; >>
xr=(xl+xu)/2; %FORMULA DE BISECCION
if funcion(xl)*funcion(xr)<0
xu=xr;
Ea=abs((xr-xa)/xr)*100;
elseif funcion(xl)*funcion(xr)>0
xl=xr;
Ea=abs((xr-xa)/xr)*100;
end
i=i+1;
end
fprintf('Raiz Solucion : %12.15f\n',xr)
fprintf('Error aproximado : %12.10f\n',Ea)
fprintf('Numero iteraciones: %12.0f\n',i)
Considerando una función 𝑦 = 𝑓(𝑥), 𝑐𝑜𝑛 𝑥 ∈ [𝑎, 𝑏]. Continúa en este intervalo. Se debe hallar una
raíz de la ecuación 𝑓(𝑥) = 0
Se supone elegido el intervalo [𝑥𝑙, 𝑥𝑢] ⊂ [𝑎, 𝑏] tal que 𝑓(𝑥𝑙) ∗ 𝑓(𝑥𝑢) < 0. Esto significa que ∃𝑐 ∈
[𝑥𝑙, 𝑥𝑢], 𝑡𝑎𝑙 𝑞𝑢𝑒 𝑓(𝑐) = 0.
El método consiste en trazar una recta secante que pase por estos dos untos ya conocidos, en los que
cambia d signo la función. La intersección de esta recta con el eje x nos da una mejor aproximación de
la raíz
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
5
Hallar la raíz de y=x^3+x+16; que se encuentra en el intervalo [-3; -2]
Solución
>> regulafalsi
calcula la raiz de una ecuacion no lineal
por el metodo de falsa posicion
Ingrese precision de cifras significativas n=6
Ingrese limite inferior xl=-3
xl = -3
Ingrese limite superior xu=-2
xu = -2
Raiz Solucion : -2.387686487318143
Error aproximado : 0.0000105224
Numero iteraciones: 10
>>
6
METODOS ABIERTOS
Estos métodos requieren uno o dos valores para el inicio del proceso del cálculo de la raíz, pero que no
necesariamente encierran la raíz, pueden ser convergentes a la raíz o divergentes. Pero cuando
convergen lo hacen de una manera más acelerada.
7
METODO DE NEWTON - RAPHSON
8
Archivo: newton.m Ejecución en MatLab
clear;clc; calcula la raíz de una ecuación
disp('calcula la raíz de una ecuación no no lineal
lineal') por el método abierto
disp('por el metodo abierto') Newton - Raphson
disp('Newton - Raphson') Ingrese precisión de cifras
n=input('Ingrese precisión de cifras significativas n=6
significativas n='); Ingrese valor inicial xi=0
xi=input('Ingrese valor inicial xi=') xi = 0
Es=0.5*10^(2-n);Ea=100; Raíz Solución :
i=0; 0.567143290409781
while Ea>Es Error aproximado :
xa=xi; 0.0000221064
fxi=funcion(xi); Numero iteraciones: 4
dxi=dfuncion(xi); >>
xi=xi-fxi/dxi;
Ea=abs((xi-xa)/xi)*100;
i=i+1;
end
fprintf('Raiz Solucion : %12.15f\n',xi)
fprintf('Error aproximado : %12.10f\n',Ea)
fprintf('Numero iteraciones: %12.0f\n',i)
METODO DE LA SECANTE
Este método surge en reemplazo del método de Newton-Raphson, por el inconveniente de la derivada.
Ya que en algunas funciones su derivada resulta muy engorrosa. Por ello se reemplaza la derivada por
una estimación de la pendiente, con diferencias.
La aproximación de la derivada 𝑓′(𝑥) esta dado por la pendiente de la recta secante que corta a la
función en (𝑥𝑖−1 , 𝑓(𝑥𝑖−1 )) y (𝑥𝑖 , 𝑓(𝑥𝑖 )), siendo 𝑥𝑖−1 𝑦 𝑥𝑖 puntos muy cercanos, de lo cual se
obtiene
𝑓(𝑥𝑖−1 ) − 𝑓(𝑥𝑖 )
𝑓′(𝑥𝑖 ) ≅
𝑥𝑖−1 − 𝑥𝑖
Esta aproximación de la derivada por la diferencia finita dividida hacia atrás, se reemplaza en el
algoritmo de Newton-Raphson, de donde se obtiene:
𝑓(𝑥𝑖 )(𝑥𝑖−1 − 𝑥𝑖 )
𝑥𝑖+1 = 𝑥𝑖 −
𝑓(𝑥𝑖−1 ) − 𝑓(𝑥𝑖 )
Algoritmo del método de la secante
9
Hallar la raíz de 𝑓(𝑥) = 𝑒 −𝑥 − 𝑥 = 0, usando el método de la secante, use como valores iníciales o
semilla 𝑥0 = 0 𝑦 𝑥1 = 1 .
Archivo: newton.m Ejecución en MatLab
clear;clc; calcula la raiz de una ecuacion no
disp('calcula la raiz de una ecuacion no lineal
lineal') por el metodo abierto
disp('por el metodo abierto') de la secante
disp('de la secante') Ingrese precision de cifras
n=input('Ingrese precision de cifras significativas n=6
significativas n='); Ingrese valor inicial xi-1=0
xo=input('Ingrese valor inicial xi-1=') xo =
xi=input('Ingrese valor inicial xi=') 0
Es=0.5*10^(2-n);Ea=100; Ingrese valor inicial xi=1
i=0; xi =
while Ea>Es 1
xa=xi; Raiz Solucion :
fxo=funcion(xo); 0.567143299931633
fxi=funcion(xi); Error aproximado : 0.0000134185
xi=xi-fxi*(xo-xi)/(fxo-fxi); Numero iteraciones: 8
Ea=abs((xi-xa)/xi)*100; >>
i=i+1;
end
fprintf('Raiz Solucion : %12.15f\n',xi)
fprintf('Error aproximado : %12.10f\n',Ea)
fprintf('Numero iteraciones: %12.0f\n',i)
10
SISTEMAS DE ECUACIONES LINEALES
Esto es resolver un conjunto de ecuaciones simultaneas no lineales:
𝑓1 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 0
𝑓2 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 0
⋮ ⋮ ⋮
𝑓𝑛 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 0
La solución de este sistema de ecuaciones simultáneas, consiste de un conjunto de valores de 𝑥𝑖 que
simultáneamente verifican todas las ecuaciones.
Codigo en MatLab
Archivo: puntofijosist.m Ejecución en MatLab
clear;clc; calcula la raiz de un sistema de
disp('calcula la raiz de un sistema de dos dos ecuaciones no lineales
ecuaciones no lineales') por el metodo abierto
disp('por el metodo abierto') iteracion simple punto fijo
disp('iteracion simple punto fijo') Ingrese precision de cifras
n=input('Ingrese precision de cifras significativas n=4
significativas n='); Ingrese valor inicial xo=1.5
xo=input('Ingrese valor inicial xo=') xo = 1.5000
yo=input('Ingrese valor inicial yo=') Ingrese valor inicial yo=3.5
Es=0.5*10^(2-n);Eax=100;Eay=100; yo = 3.5000
i=0; la raiz "x" es:
while Eax>Es & Eay>Es 2.000032559383514
xi=g(xo,yo); la raiz "y" es:
yi=h(xi,yo); 2.999973420852066
Eax=abs((xi-xo)/xi)*100; Numero iteraciones: 9
Eay=abs((yi-yo)/yi)*100; >>
xo=xi;yo=yi;
i=i+1;
end
fprintf('la raiz "x" es: %12.15f\n',xi)
fprintf('la raiz "y" es: %12.15f\n',yi)
fprintf('Numero iteraciones: %12.0f\n',i)
11
Método de Newton-Raphson para sistemas
Este método en el caso de una variable, uso el teorema de Taylor. Que desarrolla la serie de primer
orden, como sigue:
𝑓(𝑥𝑖+1 ) ≅ 𝑓(𝑥𝑖 ) + 𝑓′(𝑥𝑖 )(𝑥𝑖+1 − 𝑥𝑖 )
Donde si 𝑓(𝑥𝑖+1 ) se hace cero, tenemos que
𝑓(𝑥𝑖 )
𝑥𝑖+1 = 𝑥𝑖 −
𝑓′(𝑥𝑖 )
En el caso de un sistema de n ecuaciones con n variables, se debe usar una serie de Taylor de multiples
variables, consideremos el caso n igual a 2.
𝑢(𝑥, 𝑦) = 0
𝑣(𝑥, 𝑦) = 0
De donde usando la serie de Taylor
𝜕𝑢𝑖 𝜕𝑢𝑖
𝑢𝑖+1 = 𝑢𝑖 + (𝑥𝑖+1 − 𝑥𝑖 ) + (𝑦 − 𝑦𝑖 )
𝜕𝑥 𝜕𝑦 𝑖+1
𝜕𝑣𝑖 𝜕𝑣𝑖
𝑣𝑖+1 = 𝑣𝑖 + (𝑥𝑖+1 − 𝑥𝑖 ) + (𝑦 − 𝑦𝑖 )
𝜕𝑥 𝜕𝑦 𝑖+1
Donde igualando las expresiones 𝑢𝑖+1 = 0 𝑦 𝑣𝑖+1 = 0
Y luego despejando 𝑥𝑖+1 𝑦 𝑦𝑖+1
∆𝑥 ∆𝑦
𝑥𝑖+1 = 𝑥𝑖 − 𝑦𝑖+1 = 𝑦𝑖 −
∆ ∆
Donde tenemos que:
𝜕𝑢𝑖 𝜕𝑢𝑖 𝜕𝑢𝑖 𝜕𝑢𝑖
𝜕𝑢𝑖 𝜕𝑣𝑖 𝜕𝑣𝑖 𝜕𝑢𝑖
𝑢𝑖 𝜕𝑣𝑖 𝜕𝑣𝑖
𝑢𝑖 𝜕𝑢𝑖 𝜕𝑣𝑖
𝜕𝑥 𝜕𝑦 𝜕𝑦 𝜕𝑥
∆= | 𝜕𝑣 𝜕𝑣𝑖
| = ∙ − ∙ ∆𝑥 = | 𝜕𝑣𝑖
| = 𝑢𝑖 ∙ − 𝑣𝑖 ∙ ∆𝑦 = | 𝜕𝑣 | = 𝑣𝑖 ∙ − 𝑢𝑖 ∙
𝑖 𝜕𝑥 𝜕𝑦 𝜕𝑥 𝜕𝑦 𝜕𝑦 𝜕𝑦 𝑖 𝜕𝑥 𝜕𝑥
𝑣𝑖 𝑣𝑖
𝜕𝑥 𝜕𝑦 𝜕𝑦 𝜕𝑥
Programa en Matlab de Ne-R para un sistema de dos ecuaciones con dos incognitas
Archivo: newtonsist.m Ejecución en MatLab
clear;clc; calcula la raiz de un sistema
disp('calcula la raiz de un sistema de dos de dos ecuaciones no
ecuaciones no lineales') lineales
disp('por el metodo abierto') por el metodo abierto
disp('de Newton - Raphson') de Newton - Raphson
n=input('Ingrese precision de cifras Ingrese precision de cifras
significativas n='); significativas n=6
xi=input('Ingrese valor inicial xi=') Ingrese valor inicial xi=1.5
yi=input('Ingrese valor inicial yi=') xi =
Es=0.5*10^(2-n);Eax=100;Eay=100; 1.5000
i=0; Ingrese valor inicial yi=3.5
%El sistema es yi =
%u(x,y)=x^2+x*y-10=0 3.5000
%v(x,y)=y+3*x*y^257=0 la raiz "x" es:
while Eax>Es & Eay>Es 1.999999908285831
xa=xi;ya=yi; la raiz "y" es:
ui=xi^2+xi*yi-10;vi=yi+3*xi*yi^2-57; 3.000000320999110
duidx=2*xi+yi;duidy=xi; Numero iteraciones: 8
dvidx=3*xi^2;dvidy=1+6*xi*yi; >>
Jacobiano=duidx*dvidy-duidy*dvidx;
% algoritmo de N-R
xi=xi-(ui*dvidy-vi*duidy)/Jacobiano;
yi=yi-(vi*duidx-ui*dvidx)/Jacobiano;
Eax=abs((xi-xa)/xi)*100;
Eay=abs((yi-ya)/yi)*100;
i=i+1;
end
fprintf('la raiz "x" es: %12.15f\n',xi)
fprintf('la raiz "y" es: %12.15f\n',yi)
fprintf('Numero iteraciones: %12.0f\n',i)
12
SOLUCION DE ECUACIONES LINEALES
Considerando que una matriz en R o en C, tiene la forma de m filas por n columnas, donde m y n son
naturales. Cabe indicar que si uno de ellos es cero, la matriz será vacia.
PRODUCTO DE MATRICES
Para el producto de matrices se considera que: [𝐶]𝑚×𝑛 = [𝐴]𝑚×𝑝 ∙ [𝐵]𝑝×𝑛
Donde tenemos que: 𝑐𝑖 𝑗 = ∑𝑝𝑘=1 𝑎𝑖 𝑘 ∙ 𝑏𝑘 𝑗
Algoritmo del producto de matrices
Programa en Matlab
Archivo: prodmatrices.m Ejecutando en MatLab
clc;clear; Ingrese la matriz [A][1 2 4;3 1 2;4 1 3]
A=input('Ingrese la matriz [A]') A=
B=input('Ingrese la matriz [B]') 1 2 4
a=size(A);b=size(B); 3 1 2
n=a(1);m1=a(2); 4 1 3
m2=b(1);l=b(2); Ingrese la matriz [B][7 3 1;2 3 5;8 1 6]
for i=1:n B=
for j=1:l 7 3 1
if m1==m2 2 3 5
sum=0; 8 1 6
for k=1:m1 C=
sum=sum+A(i,k)*B(k,j); 43 13 35
end 39 14 20
C(i,j)=sum; 54 18 27
else >>
disp('Error en las dimensiones
de la matriz')
end
end
end
C
13
SISTEMAS LINEALES TRIANGULARES
Sea el sistema 𝐴𝑋 = 𝑏, donde la matriz A es triangular superior. Es decir que 𝑎𝑖 𝑗 = 0, 𝑖 > 𝑗, además
los elementos de la diagonal son no nulos. Entonces la solución es fácil de hallar, y es como sigue:
Programa en Matlab
Archivo: SEL_TSUP.m Ejecución en MatLab
clear;clc; Resolución de un sistema
disp('Resolución de un sistema triangular triangular superior AX=B
superior AX=B') por el método de sustitución
disp('por el método de sustitución regresiva
regresiva') Ingrese la matriz [A], triangular
A=input('Ingrese la matriz [A], triangular superior
superior\n'); [5 6 7;0 8 4;0 0 6]
B=input('Ingrese la matriz de Ingrese la matriz de coeficientes
coeficientes\n'); [6 7 8]'
n=length(A); X=
X=B*0; -0.9167
X(n)=B(n)/A(n,n); 0.2083
for i=n-1:-1:1 1.3333
sum=0; >>
for j=1+1:n
sum=sum+A(i,j)*X(j);
end
X(i)=(B(i)-sum)/A(i,i);
end
X
14
Programa en Matlab
Archivo: SEL_TSUP.m Ejecución en MatLab
clear;clc; Resolución de un sistema
disp('Resolución de un sistema triangular triangular superior AX=B
superior AX=B') por el método de sustitución
disp('por el método de sustitución regresiva
regresiva') Ingrese la matriz [A], triangular
A=input('Ingrese la matriz [A], triangular superior
superior\n'); [5 6 7;0 8 4;0 0 6]
B=input('Ingrese la matriz de Ingrese la matriz de coeficientes
coeficientes\n'); [6 7 8]'
n=length(A); X=
X=B*0; -0.9167
X(n)=B(n)/A(n,n); 0.2083
for i=n-1:-1:1 1.3333
sum=0; >>
for j=1+1:n
sum=sum+A(i,j)*X(j);
end
X(i)=(B(i)-sum)/A(i,i);
end
X
15
METODOS ITERATIVOS PARA SISTEMAS LINEALES
La idea de el método de iteración de punto fijo, en ecuaciones no lineales se extiende en la solución de
un SEL. Los métodos son de Jacobi y Gauss Seidel
Definición: Se dice que una matriz A de orden n, es de diagonal estrictamente dominante cuando
𝑛
16
Programa de MatLab jacobi.m Ejecucion en MatLab
function X=gseid(A,B,P,delta,max1) >> A=[8 1 2;-1 6 3;3 -1 10];
% Datos >> B=[16;20;31];
%A es una matriz invertible de orden N x N >> P=[0;0;0];
%B es una matriz de orden N x 1
% P es una matriz de orden N x 1: el punto
>> X=gseid(A,B,P,0.0001,10)
inicial X=
%delta es la tolerancia para P 0.999993408203125
%maxl es el número máximo de iteraciones 1.999989013671875
% Resultados 3.000000878906250
% X es una matriz de orden N x 1: >> X=gseid(A,B,P,0.0001,6)
%la aproximación a la solución de AX=B X=
%generada por el %método iterativo de Gauss- 0.999938476562500
Seidel
N=length(B);
2.000013183593750
for k=1:max1 3.000019775390625
for j=1:N >> X=gseid(A,B,P,0.000001,16)
if j==1 X=
X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1); 1.000000123596192
elseif j==N 2.000000205993652
X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N); 2.999999983520508
else >>
% X contiene la aproximación k-ésima '/.
%y P la (k-l)-ésima
X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)-
A(j,j+1:N)*P(j+1:N))/A(j,j);
end
end
err=abs(norm(X'-P));
relerr=err/(norm(X)+eps);
P=X';
if (err<delta)|(relerr<delta)
break
end
end
X=X';
17
ECUACIONES DIFERENCIALES ORDINARIAS
quiver(t,y,dt,dy); 4
hold on 3.5
t1=0:0.01:5; 3
2.5
z1=3*exp(-t1/2)-2+t1; 2
z2=6*exp(-t1/2)-2+t1; 1.5
plot(t1,z1,t1,z2) 1
grid 0.5
hold off 0
-0.5
0 1 2 3 4 5 6
Método de Euler
Construcción de las aproximaciones a la solución del problema de valor inicial 𝑦 ′ =
𝑓(𝑡, 𝑦), 𝑐𝑜𝑛 𝑦(𝑎) = 𝑦0 en [a,b] dadas por 𝑦𝑘+1 = 𝑦𝑘 + ℎ𝑓(𝑡𝑘 , 𝑦𝑘 ), 𝑝𝑎𝑟𝑎 𝑘 = 0,1, … , 𝑀 − 1.
18
Archivo: euler.m Ejecución en MatLab
function E=euler(f,a,b,ya,M) >> E=euler('f',0,3,1,10)
% Datos E=
% - f es la función, almacenada 0 1.0000
% como una cadena de caracteres ’f’ 0.3000 0.8500
% - a y b son los extremos derecho e 0.6000 0.7675
izquierdo del intervalo 0.9000 0.7424
% - ya es la condición inicial y(a) 1.2000 0.7660
% - M es el número de pasos 1.5000 0.8311
% Resultado 1.8000 0.9314
% - E=[T’ Y’] siendo T el vector 2.1000 1.0617
de las abscisas e Y el vector de las 2.4000 1.2175
ordenadas 2.7000 1.3949
h=(b-a)/M; 3.0000 1.5906
T=zeros(1,M+1); >>
Y=zeros(1,M+1) ;
T=a:h:b;
Y(1)=ya;
for j=1:M
Y(j + 1)=Y(j)+h*feval(f,T(j),Y(j)) ;
end
E=[T' Y'];
Metodo de Heun
19
Comparando los resultados
Prog01.m Prog02.m
E=euler('f',0,3,1,10) E=heun('f',0,3,1,10)
plot(E(:,1),E(:,2)) plot(E(:,1),E(:,2))
hold on hold on
% solucion del PVI: y'=(t- % solucion del PVI: y'=(t-
y)/2, y(0)=1 y)/2, y(0)=1
t1=0:0.001:3;z1=3*exp(-t1/2)- t1=0:0.001:3;z1=3*exp(-t1/2)-
2+t1; 2+t1;
plot(t1,z1,'r'),grid plot(t1,z1,'r'),grid
legend('sol euler','sol legend('sol heun','sol
exacta') exacta')
hold off hold off
1.7 1.8
sol euler sol heun
1.6 sol exacta 1.7 sol exacta
1.5 1.6
1.4 1.5
1.3 1.4
1.2 1.3
1.1 1.2
1 1.1
0.9 1
0.8 0.9
0.7 0.8
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
20
Archivo: heun.m Ejecución en
MatLab
function T4=taylor(df,a,b,ya,M) >>
% Datos: df=[y’ y’’ y’’’ y’’’’], almacenada como una cadena de T4=taylor('df',0,3,1,20
caracteres ’ df ’ )
% a y b son los extremos derecho e izquierdo del intervalo T4 =
0 1.0000
% ya es la condición inicial y(a)
0.1500 0.9332
% M es el número de pasos 0.3000 0.8821
% Resultado: T4=[T’ Y’] siendo T el vector de las abscisas e Y 0.4500 0.8455
el vector de las ordenadas 0.6000 0.8225
h=(b-a)/M; 0.7500 0.8119
0.9000 0.8129
T=zeros(1,M+1); 1.0500 0.8247
Y=zeros(1,M+1); 1.2000 0.8464
1.3500 0.8775
T=a:h:b; 1.5000 0.9171
Y(1)=ya; 1.6500 0.9647
1.8000 1.0197
for j=1:M 1.9500 1.0816
D=feval(df,T(j),Y(j)); 2.1000 1.1498
2.2500 1.2240
2.4000 1.3036
Y(j+1)=Y(j)+h*(D(1)+h*(D(2)/2+h*(D(3)/6+h*D(4)/24)) 2.5500 1.3883
2.7000 1.4777
); 2.8500 1.5715
end 3.0000 1.6694
T4=[T' Y']; >>
1.6
1.5
1.4
1.3
1.2
1.1
0.9
0.8
0 0.5 1 1.5 2 2.5 3
21