Graphing .m file returning blank figure

조회 수: 3 (최근 30일)
Andre Metzger
Andre Metzger 2019년 9월 18일
댓글: Ankit 2019년 9월 19일
I have a .m file that gives a euler approximation ,
function yout=euler1(t0,y0,tfinal,h,f)
y=y0;
yout=y;
for n=t0:0.01:tfinal-h;
y=y+(h.*f(n,y));
end
yout=y;
end
I am trying to graph the approximated y values over t (attempt is below) , but running it, I always get a blank figure.
t=-3:0.01:4;
t0=-3;
y0=2.5;
tfinal=4;
h=0.01;
f=@(t,y)t.*(y-2).*(log(abs(y))-1);
figure;hold on
plot(t,euler1(t0,y0,tfinal,h,f))
Is there a way to make such a graph where the y values that are approximated by the .m file are plotted to their corresponding t values?
  댓글 수: 4
Andre Metzger
Andre Metzger 2019년 9월 19일
Adam, how would you save the value on wach iteration to get the vector?
Adam Danz
Adam Danz 2019년 9월 19일
I'm not sure what your eurler1 function is supposed to be doing. 'y' changes on each iteration and I'm not sure how that's supposed to produce your output vector.
This is generally how you save variables within a loop but it's very likely you need additional changes in that function.
function yout=euler1(. . .)
n = t0:0.01:tfinal-h;
yout = zeros(size(n));
for i = 1:numel(n)
yout(i)= . . .;
end
end

댓글을 달려면 로그인하십시오.

답변 (1개)

Ankit
Ankit 2019년 9월 19일
편집: Ankit 2019년 9월 19일
Hello Andre,
There is problem in your code. You are not storing y values.
function yout=euler1(t0,y0,tfinal,h,f)
y=y0;
yout(1)=y;
i = 1;
for n=t0:0.01:tfinal-h
y=y+(h.*f(n,y));
yout(i+1)=y;
i=i+1;
end
end
t=-3:0.01:4;
t0=-3;
y0=2.5;
tfinal=4;
h=0.01;
f=@(t,y)t.*(y-2).*(log(abs(y))-1);
figure;hold on
plot(t,euler1(t0,y0,tfinal,h,f))
Are you expecting similar curve?
Regards
Ankit
  댓글 수: 2
Adam Danz
Adam Danz 2019년 9월 19일
Don't forget to pre-allocate the loop variables. The i=i+1 iteration is unnecessary in a for-loop.
function yout=euler1(t0,y0,tfinal,h,f)
y=y0;
n=t0:0.01:tfinal-h;
yout = [y,zeros(size(n))];
for i = 1:numel(n)
y=y+(h.*f(n(i),y));
yout(i+1)=y;
end
end
Ankit
Ankit 2019년 9월 19일
thanks Adam (y)

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by