mathematica从用户那里获得输入

时间:2014-12-17 08:15:47

标签: input wolfram-mathematica

'是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:"]

然后结束!

你能帮助我吗?

1 个答案:

答案 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