'是mathematica的新手。我有一个小项目:得到一个方程,一个数字n,一个数字x和一个数字y和一个数字h,然后使用euler公式计算nTh迭代...我的代码是:
f[x_,y_]=input["Please input f(x,y):"]
n=input["Please input number of iterations:"]
x0=input["Please input initial value x0:"]
y0=input["Please input initial value y0:"]
h=input["please input h:"]
For[i=0,i<n,i++,y0=y0+f[x0,y0]*h;x0=x0+h]
但是当我在mathematica 9中复制这段代码时;它只打印一些文本并结束。它没有得到user.just打印的任何输入:
input["Please input f(x,y):"]
input["Please input number of iterations:"]
input["Please input initial value x0:"]
input["Please input initial value y0:"]
input["please input h:"]
然后结束!
你能帮助我吗?答案 0 :(得分:0)
你应该把它写成两个独立的部分。 我会写一个初始化变量部分然后是for循环。 Mathematica中的函数需要延迟等于:=并且您收到了所做的输出,因为Mathematica在代码运行时不允许您输入。你也应该用;
来抑制输出f[x_,y_]:= ; %%write in f(x,y)
n= ; %%input number of iterations
x0= ; %%input initial value x0
y0= ; %%input initial value y0
h= ; %%input h
解决方案的欧拉形式是
euler:= Module[{ans, i, x, y, nsteps},
ans = {{x0,y0}};x=x0;y=y0;nsteps=n;
Do[(y=y+h*f[x,y];
x=x+h; ans=Append[and,{x,y}]),{i,1,nsteps}];ans]
要查看euler forumal result do ...
eulerans1 = euler