我想编写一个包含循环的函数,该函数可以执行Euler方法所需的操作。在它下面,我可怜的尝试。

In[15]:= Euler[icx_,icy_,h_,b_,diffeq_] :=
curx;
cury;
n=0;
curx = icx;
cury = icy;

While
[curx != b,

    Print["" + n + " | " + curx + cury];
    n++;

    dq = StringReplace[diffeq, "y[x]" -> curx];
    dq = StringReplace[dq, "x" -> cury];
    curx+=h;
    cury=cury+h*dq;


]


In[21]:= Euler[0, 0, .1, 1, e^-y[x]]

Out[21]= icx

最佳答案

为了通过Mathematica中的Euler方法求解ODE,代码为:

Clear["Global`*"];
s = NDSolve[{y'[x] == Exp[-y[x]], y[0] == 0}, y, {x, 0, 1},
    Method -> {"FixedStep", Method -> "ExplicitEuler"},
    MaxSteps -> 20000];
Plot[Evaluate[y[x] /. s], {x, 0, 1}, PlotRange -> Full]

否则,如果您要处理家庭作业,请在标签上注明。

HTH!

关于math - 在Mathematica中写欧拉方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4006918/

10-11 00:35