I'm getting a wrong table result from my function.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Torsten
am 2 Mai 2022
Didn't you see that the values are to be multiplied by 1e225 ?
Give the 0's more digits by using
format long
Antworten (0)
Siehe auch
Kategorien
Mehr zu Polynomials finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!