看板 Mathematica 關於我們 聯絡資訊
※ 引述《killm (...)》之銘言: : 請問有沒有指令可以只顯示運行後我所需數據 : 例如我求出兩百組{P、Q},但我所需要的數據 : 只有P>Q,其餘P<Q的數據我都不要,有沒有辦 : 只顯現所有P>Q的值 : 我所使用的Mathematica版本為5.2 : 謝謝大家!!! : ------------------------------------------------------------------------------ : c = 0.1; : β=1; : z2 = 60; : \!\(\(z1 = β\^3*z2;\)\) : m = 2; : \!\(Table[Solve[{z1\^\(-1\)*\((p\^\(-1\) - 1)\)*\((m - 1 + c*\((p - q)\))\)\^2 : *\((m\^2 - \((m - 1 + c*\((p - q)\))\)\^2)\)\^\(-1\) \[Equal] \((1 - e)\)\^3, \ : z2\^\(-1\)*\((q\^\(-1\) - 1)\)*\((m - 1 + c*\((q - p)\))\)\^2*\((m\^2 - \((m \ : - 1 + c*\((q - p)\))\)\^2)\)\^\(-1\) \[Equal] \((1 + e)\)\^3}, {p, q}], {e, 0, : 1, 0.01}] >> "\<D:\P&Q.txt\>"\) : ------------------------------------------------------------------------------ : 謝謝L大我試看看 : 剛剛才發現一大堆錯字 冏 c = 1/10; \[Beta] = 1; z2 = 60; z1 = \[Beta]^3*z2; m = 2; (* 使用Replace指令 /. 取出計算結果 *) data=N@Flatten[Table[{e,p,q}/.Solve[{ z1^-1*(p^-1-1)*(m-1+c*(p-q))^2*(m^2-(m-1+c*(p-q))^2)^-1==(1-e)^3, z2^-1*(q^-1-1)*(m-1+c*(q-p))^2*(m^2-(m-1+c*(q-p))^2)^-1==(1+e)^3}, {p,q}],{e,0,1,1/100}],1]; (*答案有虛數,所以先判斷{p,q}是否為實數,在判斷是否p>q。 方法實在很多,列舉三個 *) ans1 = Select[data, Element[{#[[2]], #[[3]]}, Reals] && (#[[2]] > #[[3]]) &]; ans2 = Cases[data, {e_, p_, q_} /; Element[{p, q}, Reals] && (p > q)]; ans3=DeleteCases[data,{e_,p_,q_}/;(Head[p]==Complex||Head[q]==Complex)|| (Head[p]==Real&&Head[q]==Real&&p<=q)]; Length[#]&/@{ans1,ans2,ans3} (* 以下傳回Home directory *) $HomeDirectory (* 存成自己想要格式的檔案,csv, xls 皆可 *) Export["ans1.csv", ans1] (* 不過還是若是要做後續計算,輸出成其他檔案實在多餘 *) -- 養花種魚數月亮賞星星 http://chungyuandye.twbbs.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.232.182.186
chrisliu0419:強耶 從老師的講解學很多! 02/09 01:35
killm:非常感謝老師 02/09 16:42
killm:我的確有要繼續往下算,不過應為方便計算所以要先挑出所要 02/09 18:29
killm:的值 02/09 18:33