Re: [問題]如何只顯示我所需要的數值

看板Mathematica作者 (養花種魚數月亮賞星星)時間12年前 (2012/02/08 22:42), 編輯推噓4(400)
留言4則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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

02/09 01:35, , 1F
強耶 從老師的講解學很多!
02/09 01:35, 1F

02/09 16:42, , 2F
非常感謝老師
02/09 16:42, 2F

02/09 18:29, , 3F
我的確有要繼續往下算,不過應為方便計算所以要先挑出所要
02/09 18:29, 3F

02/09 18:33, , 4F
的值
02/09 18:33, 4F
文章代碼(AID): #1FCed3wI (Mathematica)
文章代碼(AID): #1FCed3wI (Mathematica)