euler function that you can reuse with different values?

2 次查看(过去 30 天)
function [t, y, yprime]=euler(f,t0,tN,y0,N)
h=(tN-t0)/N;
t=t0:N:tN;
y=zeros(1,N+1);
yprime=f(t,y);
y(1)=y0;
t(1)=t0;
for i=1:N
t=(i-1)*h;
y(i)=y(i)+h*(f(y(i),t(i)));
end
end
this is my code for a euler method function. I cant seem to get it to run properly. Any ideas on what i am doing wrong. please help!
[SL: formatted function as code]
  3 个评论
Jacob Wood
Jacob Wood 2020-2-18
It looks like you define f(t,y), but then when it is called inside the euler function it is called as f(y,t). Could that be a problem?
Benjamin Trivers
Benjamin Trivers 2020-2-18
whenever, i take that part out the part in the yprime gets a red line under it and doesnt like it.

请先登录,再进行评论。

回答(1 个)

Srivardhan Gadila
Srivardhan Gadila 2020-2-25
In your function euler, check for the following:
  1. In line 3 it should be "t=t0:h:tN;"
  2. In line 9 why are you changing the vector t to "(i-1)*h" ?
  3. In line 10 it should be "f(t(i), y(i))"
And for the function f:
f=@(t,y) (1/t.^2)-(y./t)-(y.^2);
Replace the (1/t.^2) with (1./t.^2) i.e., it should be:
f=@(t,y) (1./t.^2)-(y./t)-(y.^2);

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by