I'm getting a wrong table result from my function.
15 次查看(过去 30 天)
显示 更早的评论
I made a table of results that includes h and the error: Eh = max|y(t) − y ̃(t)|, where y ̃ is my approximated solution. I'm using twostepmethod function with startingtimet =0, endingtimet =20, and stepsizes: h= 1/2^n for n=1, . . . , 10.
And I'm getting a totally wrong table which is
Table with h & Eh
h Eh
1.0e+225 *
0.0000 0.0000
0.0000 0.0000
0.0000 0.0000
0.0000 4.2965
0.0000 Inf
0.0000 Inf
0.0000 Inf
0.0000 Inf
0.0000 Inf
0.0000 Inf
Can you please fix my code to get a proper table?
this is my code
f=@(t,y) -y-3*t;
F=@(t) 3-3*t-2*exp(-t);
t0=0; y0=1;
te=20;
nn=1:10;
h = 1./2.^nn;
for ii=1:length(nn)
[ys, ts] = MyTwoStepMethod(f, t0, te, y0, h(ii));
Eh(ii) = max(abs(F(ts)-ys));
end
disp('Table with h & Eh'), disp(' h Eh')
disp([h',Eh'])
and this is my function
function [ys, ts] = MyTwoStepMethod(f, t0, te, y0, h)
ts = t0:h:te;
ys(1,1) = y0;
ys(1) = y0;
ys(2) = y0 + h*f(ts(1),ys(1));
for i = 2:length(ts)-1
ys(i+1) = -4*ys(i) + 5*ys(i-1) + h*(4*f(ts(i),ys(i))+2*f(ts(i-1),ys(i-1)));
end
end
7 个评论
Torsten
2022-5-2
Didn't you see that the values are to be multiplied by 1e225 ?
Give the 0's more digits by using
format long
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!