You are on page 1of 2

clc

clear all
y0=1;a=-10;max_err=0;
x0=0.01;xi0=0.01;h=0.01;Tol=10^-5;
i=1:2
y(i)=0
y_old=zeros(1,2)'

i=1:2;
xi(i)=xi0+i*h;
Diff_in_iter=1;
J =[(8*a*h)/15-(23*(a*h)^2)-1,(5*a*h)/24-(a*h)^2/15;...
(16*a*h)/15-(4*(a*h)^2)/15,(2*a*h)/5-(2*(a*h)^2)/25-1];
while Diff_in_iter>Tol
y1=y(1);y2=y(2);
f0=a*y0;
f1=a*y1;
f2=a*y2;
df1=a^2*y1;
df2=a^2*y2;
f=[-y1 + y0 + 13*h*f0/120 + 8*h*f1/15 + 5*h*f2/24 - 23*h^2*df1/60 - h^2*df2/15;.
..
- y2 + y0 + 4*h*f0/15 + 16*h*f1/15 + 2*h*f2/5 - 4*h^2*df1/15 - 2*h^2*df2/25]
;
c_y = J\-f;
real_y = c_y+(y_old);
Diff_in_iter=max(abs(y_old-real_y));
y_old = real_y;
i=1:2;
y=y_old(i);
end
i=1:2;
y=y_old(i);
y0=y(1);
y1=y(2);
xi0=xi(2);

while xi0<2
i=1:2;
xi(i)=xi0+i*h;
Diff_in_iter=1;
J =[(8*a*h)/15-(23*(a*h)^2)-1,(5*a*h)/24-(a*h)^2/15;...
(16*a*h)/15-(4*(a*h)^2)/15,(2*a*h)/5-(2*(a*h)^2)/25-1];
%f_eval=0;

while Diff_in_iter>Tol
y2=y(1);
f0=a*y0;
f1=a*y1;
f2=a*y2;
df1=a^2*y1;
df2=a^2*y2;
f=[-y1 + y0 + 13*h*f0/120 + 8*h*f1/15 + 5*h*f2/24 - 23*h^2*df1/60 - h^2*df2/15;.
..
- y2 + y0 + 4*h*f0/15 + 16*h*f1/15 + 2*h*f2/5 - 4*h^2*df1/15 - 2*h^2*df2/25]
;
c_y = J\-f;
real_y = c_y+(y_old);
Diff_in_iter=max(abs(y_old-real_y));
y_old = real_y;
i=1:2;
y=y_old(i);
end
y0=y(1);y1=y(2);xi0=xi(2);
if err>max_err
max_err=err;
end
i=1:2;
x(i)=x0+i*h;
exact_y=exp(a*x(i));
Diff_in_iter=1;

err=norm(exact_y-y');
plot(x,y,'r');
hold on
plot(t,exact_y,'o');
hold on
xlabel('x-axis');
ylabel('joseph-axis');
y0=y(1);y1=y(2);x0=x(2);
grid
end

You might also like