Re: [問題]如何只顯示我所需要的數值
看板Mathematica作者chungyuandye (養花種魚數月亮賞星星)時間12年前 (2012/02/08 22:42)推噓4(4推 0噓 0→)留言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
討論串 (同標題文章)
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章