Borrar filtros
Borrar filtros

I'm getting a wrong table result from my function.

6 visualizaciones (últimos 30 días)
Seungryul Lee
Seungryul Lee el 1 de Mayo de 2022
Comentada: Torsten el 2 de Mayo de 2022
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 comentarios
Seungryul Lee
Seungryul Lee el 2 de Mayo de 2022
That's good. What about my code for displaying the table? Is that also correct?
Because I'm keep getting a silly table which I posted. It's giving me back 0s for h, which should not be 0s.
Torsten
Torsten el 2 de Mayo de 2022
Didn't you see that the values are to be multiplied by 1e225 ?
Give the 0's more digits by using
format long

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by