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