為何Mathematica解三角函數方程組可行性這麼低呢?

(第一段可以直接跳過)我想用Mathematica證明一下歐拉角的三次轉動代替一根軸的一次轉動,為此我要解出來三個歐拉角,但是直接證明超過了這個符號運算的能力了,我還是取了空間中的特定幾個點想先看看出來的歐拉角一樣不。

問題是:這個擺在這裡的方程組用FindRoot不管選什麼起始點總提示遇到 singular jacobian終止,用 reduce 和 solve 總是什麼也不算仍然是conditional results 直接原封不動擺在那兒;然而我把它中途的結果抄下來用matlab算兩秒搞定,說明方程肯定可解的。

但是根據我選的點(x,y,z)不同那個中途結果迥乎不同,老用matlab肯定不行,所以在此懇求各位大神指教(Mathematica數值計算不如matlab但也不能差這麼多吧)。

下面這張大圖可以只看輸出結果,編程本身沒必要看。

這個輸出方程只是取了一種在(x,y,z)和(A,B,C)較簡單的情況)

這三種都試過了,要不運算速度極其慢要不算不出來,解方程的option也沒有相關的,反正貌似是完全不如matlab求解速度(可能是我水平不夠)


首先代碼都不發。。。。。。

Matlab兩秒才解出個數值解很值得驕傲么。。。Mathematica除了那個有約束條件的Reduce還沒有超過一秒的。

Solve 和 Reduce 哪個不能解, 感情Conditional Expression您看都不看一眼往原方程代啊?

這些不是解么?

這個略長就不全截了

這個也許是你想要的吧?(P.S. Mathematica的數值計算能力根本就不比Matlab差)


推薦閱讀:

Mathematica 做數值計算時有哪些方式可以達到提速的目的?
如何使用mathematica發送郵件?
為什麼在 Mathematica 中使用循環是低效的?
如何實現任意精度計算?
學習 Mathematica 有什麼推薦書籍?

TAG:數學 | 數學軟體 | MATLAB | WolframMathematica | 三角函數 |