Re: FindRoot和Ceiling問題

作者: pig030 (FEBUR.PHEIX)   2015-01-26 21:02:18
※ 引述《cuteQcat (cutecat)》之銘言:
: 大家好,第一次在這個板上發文,如果問題太愚蠢請大家多多包涵
: 我現在有二條方程式,假設一條解m,另一條解s,s受m影響
: 解m的方程式只受外生參數影響,所以我是先解m再把解出來的m取ceiling後再解s
: 原本的指令如下:
m = Ceiling[
m01 /. FindRoot[\[Alpha] + m01 == (z^(m01 + 1) - 1)/(
z^(m01 + 1) (z - 1)), {m01, 8}]]
s = s(Alpha,z,m)
改成這樣你覺得如何?
先定義你的參數 {Alpha,z,..,}={, , ...}
接下來定義
m01[Alpha_]:=m/.FindRoot[你要解的m01方程式]
此時
s[Alpha_]:=你的s函數,裡面有Alpha, z ,m01[Alpha]
最後 Plot [s[Alpha],{Alpha,-10,10},AxesLabel->{"Alpha","s"}]
: 其中Alpha和z是外生參數。(另外,s的式子太複雜我就不附上了)
: 這樣跑是沒問題的。
: 不過我想看Alpha變動一個範圍會對m和s有何影響,並畫出Alpha變動對s影響的圖形
: 但是把他們寫成一串指令去執行時,跑出來的結果都只有同一個值,
: 圖形當然也就出不來,指令如下:
: s[\[Alpha]_] :=
: s /. FindRoot[{m ==
: Ceiling[m /.
: FindRoot[\[Alpha] + m == (z^(m + 1) - 1)/(
: z^(m + 1) (z - 1)), {m, 8}]], s ==s(Alpha,z,m) }, {s, 0.2}]
: data = Table[{\[Alpha], s[\[Alpha]]}, {\[Alpha], 0.05, 0.95, 0.05}]
: Fs01 = ListPlot[{data}, PlotJoined -> True, Frame -> True]
: 所以在此很冒昧的想請問前輩們我的指令是哪裡出問題呢?
: 謝謝大家。

Links booklink

Contact Us: admin [ a t ] ucptt.com