Você está na página 1de 2

Problema 3:

prob3.m
function [z]=prob3(f,df,a,b,y,h)
x=a:h:b;
n=length(x);
z=[x(1) y];
for i=1:n-1
y=y+h*feval(f,x(i),y)+(h^2)/2*feval(df,x(i),y);
z=[z ;x(i+1) y];
end

Evaluando:
>> f=inline('(x.*x-1).*y');
df=inline('((2*x+(x*x-1).^2).*y)');
z=prob3(f,df,0,1,1,0.25)
z=
0
1.0000
0.2500 0.7813
0.5000 0.6318
0.7500 0.5442
1.0000 0.5134

b) Con RK-2:
rk2.m

Problema 4:

function [z]=rk2(f,a,b,y,h)
x=a:h:b;
n=length(x);
z=[x(1) y];
for i=1:n-1
k1=h*feval(f,x(i),y(i));
k2=f*feval(f,x(i+1),y(i)+k1);
y(i+1)=y(i)+0.5*(k1+k2);
z=[z ;x(i+1) y(i)];
end

Probando
f=inline('4*exp(0.8*x)-0.5*y');
z=eulerp(f,0,3,2,0.1)

a) Con Euler:
Prob4.m
function [z]=prob4(f,a,b,y,h)
x=a:h:b;
n=length(x);
z=[x(1) y];
for i=1:n-1
y=y+h*feval(f,x(i),y);
z=[z ;x(i+1) y];
end
Probando:
f=inline('4*exp(0.8*x)-0.5*y');
z=prob4(f,0,3,2,0.1)

Z=
0
0.1000
0.2000
0.3000
0.4000
0.5000
0.6000
0.7000
0.8000
0.9000
1.0000
1.1000
1.2000
1.3000
1.4000
1.5000
1.6000
1.7000
1.8000
1.9000
2.0000
2.1000
2.2000
2.3000
2.4000
2.5000
2.6000
2.7000
2.8000
2.9000
3.0000

2.0000
2.3000
2.6183
2.9568
3.3175
3.7024
4.1140
4.5548
5.0273
5.5345
6.0796
6.6658
7.2969
7.9767
8.7096
9.5000
10.3531
11.2741
12.2689
13.3437
14.5054
15.7613
17.1195
18.5885
20.1777
21.8972
23.7579
25.7718
27.9517
30.3114
32.8661

Você também pode gostar