0
我要疯了,因为我不能做数学的行为..数学清单和问题
我解决与NDSolve的ODE,它并没有因为不输出我所期望的是什么一个功能工作。
我的功能是这样的形式:
y[x_] := Which[
0<=x<=10, {{1,2,3},{-9,-8,-7}},
10<x<20, {{4,5,6},{-6,-5,-4}},
x>=20, {{7,8,9},{-3,-2,-1}}
];
如果在这样的情况下使用该功能:
Ans[x_] := Total[y[x][[1]] {10,20,30}];
只要我把它与它的工作原理的数值。
Ans[3] = Total[y[3][[1]] {10,20,30}] = Total[{1,2,3} {10,20,30}] = Total[{10,40,90}] = 140
但是当我的ODE解算器用另一个函数调用它时,它的行为非常奇怪。
Ans[z[t]] = Total[y[z[t]][[1]] {10,20,30}] = Total[(0<=x<=10) {10,20,30}] = ??? non-sense
似乎参数y [z [t]] [[1]]只是简单地采用'哪个'的第一个条件。为什么??
感谢您的帮助!
尝试'答[W] // Trace'看到评估步骤Mma经历60回答(0 <= w <= 10)'。你需要给你的'Ans [..]'函数传递一个数字参数('z [t]'不是),所以'z [t] /。{t-> 3}'或'z [3] '会给你所期望的。顺便说一句,有一个[StackExchange](http://mathematica.stackexchange.com/)网站专用于'Mathematica'。 – kglr 2012-03-09 05:16:55
它仍然不起作用,但我已经在Mma Stack Exchange上重新解释了我的问题:http://mathematica.stackexchange.com/questions/2769/ndsolve-problem – 2012-03-09 19:11:45