[問題] 解方程式後繪圖

看板Mathematica作者 (bonus)時間11年前 (2013/04/14 13:45), 編輯推噓2(2015)
留言17則, 2人參與, 最新討論串1/1
在此先謝過願意瀏覽此則問題的版友:D 我正在進行的工作是, 給定參數 lambda 屬於[0,1]後, 求解 10 條方程式的 10 個變數; 再挑出其中兩個變數相減(A-B), 最後畫出(A-B) 和 lambda 的二維圖. 第一部分求解感謝戴老師的幫助, 目前是畫圖有困難 > < 我想請問, MATHEMATICA 是否能使用迴圈呢? 也就是說給定 lambda 的範圍屬於[0,1], 讓 Mathematica 求解對應於 lambda 的 A 和 B 值, 接著使用此結果求算 A-B, 最後再畫 A-B 和 lambda 的圖, 這樣就不需要使用隱函數繪圖了, 不知道這樣是否可行? 初學 mathematica, 因此對於指令仍然十分生疏, 還望各位稍加指點, 謝謝! 以下是我目前有的東西 {\[Sigma], \[Mu], T, \[Lambda]} = {5, 0.4, 2.1, 1} eqns = {Y1 == \[Mu]*\[Lambda]*w1 + 0.5 (1 - \[Mu]), Y2 == \[Mu] (1 - \[Lambda]) w2 + 0.5 (1 - \[Mu]), G1 == (\[Lambda]* w1^(1 - \[Sigma]) + (1 - \[Lambda]) (w2 T)^(1 - \ \[Sigma]))^(1/(1 - \[Sigma])), G2 == (\[Lambda] (w1 T)^(1 - \[Sigma]) + (1 - \[Lambda]) w2 ^(1 - \ \[Sigma]))^(1/(1 - \[Sigma])), w1 == (Y1*G1^(\[Sigma] - 1) + Y2*G2^(\[Sigma] - 1) T^(1 - \[Sigma]))^(1/\[Sigma]), w2 == (Y1*G1^(\[Sigma] - 1) T^(1 - \[Sigma]) + Y2*G2^(\[Sigma] - 1))^(1/\[Sigma]), \[Omega]1 == w1*G1^(-\[Mu]), \[Omega]2 == w2*G2^(-\[Mu]), V1 == \[Mu]^\[Mu] (1 - \[Mu])^(1 - \[Mu]) Y1*G1^(-\[Mu]), V2 == \[Mu]^\[Mu] (1 - \[Mu])^(1 - \[Mu]) Y2*G2^(-\[Mu])} vars = {Y1, Y2, G1, G2, w1, w2, \[Omega]1, \[Omega]2, V1, V2} FindRoot[eqns, Transpose@{vars, RandomReal[{0, 50}, Length@vars]}] NMinimize[Flatten@{eqns.eqns, Thread[vars > 0]}, vars, Method -> {"NelderMead", "InitialPoints" -> RandomReal[{0, 50}, {Length@vars + 1, Length@vars}]}] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.188

04/14 13:48, , 1F
單論迴圈的話其實一些程式語言裡常見的迴圈結構都有
04/14 13:48, 1F

04/14 13:50, , 2F
就是 For 跟 While, 用法甚至都差不多 (分隔符號要注意就是)
04/14 13:50, 2F

04/14 13:51, , 3F
如果只是單純的跑遍數字的話 Do 也可以派上用場
04/14 13:51, 3F

04/14 13:51, , 4F
不過你這個問題可能需要一點技巧 因為你每一次的結果是圖
04/14 13:51, 4F

04/14 13:52, , 5F
要把這些圖收集起來需要另一些東西幫助
04/14 13:52, 5F

04/14 13:53, , 6F
比較簡單的情形是當你是用 Do 跑遍數字的話
04/14 13:53, 6F

04/14 13:53, , 7F
對不起喔, 可不可以請問一下, 如果要把每一次求解出來
04/14 13:53, 7F

04/14 13:53, , 8F
改用 Table 可以一次收集這些結果 (像我上上篇推文說的一樣)
04/14 13:53, 8F

04/14 13:54, , 9F
的答案存起來是使用 save 嗎?
04/14 13:54, 9F

04/14 13:55, , 10F
不好意思打斷你的話了> < 謝謝:D 先來研究一下上上篇
04/14 13:55, 10F

04/14 13:56, , 11F
我前幾行推文用的詞是"收集" 畢竟我不清楚你得到這些圖後
04/14 13:56, 11F

04/14 13:57, , 12F
是要怎麼使用 如果你是要把每一張圖都存成圖片檔的話
04/14 13:57, 12F

04/14 13:57, , 13F
其實是有個指令叫 Export 可以拿來做這種事
04/14 13:57, 13F

04/14 13:58, , 14F
當然如果你是要合併起來一起輸出的話可能就得要先收集起來
04/14 13:58, 14F

04/14 13:58, , 15F
整個合併之後再進行輸出
04/14 13:58, 15F

04/14 14:01, , 16F
應該是合併起來一起輸出一張圖就好
04/14 14:01, 16F

04/14 14:02, , 17F
先來試試看將 DO 和 TABLE 合起來用, 非常感謝!
04/14 14:02, 17F
※ 編輯: bonus1123 來自: 140.112.4.188 (04/14 15:31)
文章代碼(AID): #1HQa9q8b (Mathematica)