Re: [問題] mathematica求根已回收
※ 引述《kjhtw (Panda)》之銘言:
: wp = 132*10^14;
: c = 3*10^8;
: d = 10*10^-9;
: ea = 1;
: kp = wp/c;
: em = 1 - 1/omega^2;
: =========以上是我的相關參數設定======
: omega = 1.5 (我方程式有omega 和 K 兩個變數 固定一組omega去找K)
: am = kp*(K^2 - em*omega^2)^0.5;
: aa = kp*(K^2 - ea*omega^2)^0.5;
: x = (Exp[aa*d]*(1 + ea*am/aa/em)^2 - Exp[-aa*d]*(1 - (ea*am/aa/em))^2);
: FindRoot[x == 0, {K, 1}]
: ============================================================
: 這是一組隱函數只有近似解
: 是否可以利用迴圈之類 取代掉我需要一組一組改變omega來尋找K這步驟
: 因為圖需要精確一點,總不能我把omega每組都人工代入吧...
: 我有研究過help的do這指令,可是寫出來以後他不會動
: 我的omega區間落在0~1.5,K則是0~5
: ImplicitPlot這指令我也試過,可是就是沒出現圖...
: matlab版問這問題真抱歉,找不到mathematica專版
Ans 1:
wp=132*10^14;
c=3*10^8;
d=10*10^-9;
ea=1;
kp=wp/c;
em:=1-1/omega^2;
am:=kp*(k^2-em*omega^2)^0.5;
aa:=kp*(k^2-ea*omega^2)^0.5;
x:=(Exp[aa*d]*(1+ea*am/aa/em)^2-
Exp[-aa*d]*(1-(ea*am/aa/em))^2);
data=Re@{#,k}/.FindRoot[x/.omega->#,{k,1}]&/@Range[0.01,0.99,0.01];
ListPlot@data
Ans 2:
obj[k_,omega_]:=Evaluate@(Exp[aa*d]*(1+ea*am/aa/em)^2
-Exp[-aa*d]*(1-(ea*am/aa/em))^2);
ContourPlot[Evaluate@obj[k, omega] == 0, {omega, 0, 1}, {k, 0, 10}]
Mathematica在6.0之後ImplicitPlot就整併到ContourPlot囉!
--
養花種魚數月亮賞星星
http://cydye1069.blogspot.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.182
→
05/14 13:57, , 1F
05/14 13:57, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):