2010年12月28日 星期二

[自動轉寄] Re: 你好

作者: kai125 (阿花)
標題: Re: 你好
時間: Wed Dec 29 13:32:31 2010

ok

我待會馬上寄mail給你

謝謝你


※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《kai125 (阿花)》之銘言:
: : 不好意思 我不會丟水球耶
: : 你有msn嗎?
: : 可以給我嗎
: : 謝謝
: 我沒有MSN說,直接Email給我吧
: chungyuandye at gmail
: 不過我不是念電機跟物理的
: 科科

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.26.226.145

[自動轉寄] (kai125) Re: 你好

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: 你好
時間: Wed Dec 29 13:25:31 2010

※ 引述《kai125 (阿花)》之銘言:
: 不好意思 我不會丟水球耶
: 你有msn嗎?
: 可以給我嗎
: 謝謝

我沒有MSN說,直接Email給我吧
chungyuandye at gmail

不過我不是念電機跟物理的
科科

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com
http://tinyurl.com/25nedr2

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.132.210

[自動轉寄] 你好

作者: kai125 (阿花)
標題: 你好
時間: Wed Dec 29 13:24:31 2010

不好意思 我不會丟水球耶

你有msn嗎?

可以給我嗎

謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.26.226.145

2010年12月24日 星期五

[自動轉寄] (manhoodguy) Re: [徵人] 協助資料分析

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [徵人] 協助資料分析
時間: Fri Dec 24 21:02:41 2010

※ 引述《manhoodguy (1111)》之銘言:
: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : 可以吧資料給我試試嗎??
: : 可以的話,請聯絡我!
: : 感恩∼
: 我可以先請您試分析一個簡單問題嗎?
: 若您有興趣可以給我站外信箱?
chungyuandye@gmail.com


--
我打研究室走過 那獨坐電腦前的容顏如苦瓜的糾結
靈感不來 長壽的煙霧不散
研究室如小小的寂寞的城 恰如商管的電梯向晚

http://chungyuandye.twbbs.org

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.133.69

[自動轉寄] Re: [徵人] 協助資料分析

作者: manhoodguy (1111)
標題: Re: [徵人] 協助資料分析
時間: Fri Dec 24 08:13:17 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《manhoodguy (1111)》之銘言:
: : 徵求單位:個人
: : 工作內容:因素或主成份資料分析
: : 工作時間:皆可
: : 工作薪資:約2000~3000
: : 工作地點:電子信件
: : PS:本版不鼓勵論文統計程式全部代跑的行為
: : 但是指導使用何種工具以及跑法則再接受範圍
: 可以吧資料給我試試嗎??
: 可以的話,請聯絡我!
: 感恩∼


我可以先請您試分析一個簡單問題嗎?
若您有興趣可以給我站外信箱?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.220.5

2010年12月20日 星期一

[自動轉寄] (peter5214) Re: [其他] mathematica 求方程式的解

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [其他] mathematica 求方程式的解
時間: Mon Dec 20 16:13:20 2010

※ 引述《peter5214 (阿宏)》之銘言:
: 最近在用mathematica求equation的解,
: 遇到一個很怪的事情,常常會遇到他解出來的解
: 會附加一個 0.i
: EX: 0.517293+0.i
: 既然虛部是零又何必再列出來呢?? 還是說這有什麼涵義在??
: 因為有時後解出來的解 又不會跑出 0.i這樣的東西,
: 還有看到0.-1.29896i 這樣的東西 ,我查了一下實部是0虛部是-1.29896
: 但一般不是就直接寫成a+bi的形式嗎? 跑出這樣的東西是不是有哪出問題了??
: 有請高手代為回答一下了 (_ _) 感謝

Solve[x^3 == 1, x]
N@Solve[x^3 == 1, x]
你會發現Mathematica並沒有出包,只是他把x^3=-1的所有的根中輸出!
如果應要忽略複數,那解除Power這個函數的封印
Unprotect[Power];
Power[x_?Negative, Rational[p_, q_?OddQ]] := (-(-x)^(1/q))^p;
Protect[Power];
Solve[x^3 == -1, x]
不過這個作法不一定好就是了∼∼

詳細內容可以參考
http://cydye1069.blogspot.com/2009/11/113-bug.html

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com
http://tinyurl.com/25nedr2

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.135

2010年12月8日 星期三

[自動轉寄] (af2486) Re: 您好,想請問關於mathematica的問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: 您好,想請問關於mathematica的問題
時間: Wed Dec 8 21:33:29 2010

Do那邊改成這樣看看可不可以

Quiet@FindRoot[f[(y (2 \[Pi]))/#, opt[#]] == 0, {y, 1.44677}] & /@
Range[1.54, 1.55, 0.005]

0.005是是公差,如果要做大量運算的話,自己找一下ParallelMap...


※ 引述《af2486 (我喜歡旅行)》之銘言:
: 您好,之前在暑假的時候曾經請教過mathematica的問題,非常感激
: 不過現在又有些問題想請教,不知是否有空撥冗幫我看一下呢?謝謝!
: 這是您之前幫我改過的程式碼:
: xiLimit = 15.;
: Hankel1[m_, x_] :=
: If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
: Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: BesselJp[m_, x_] :=
: If[Abs[x] < xiLimit,
: D[BesselJ[m, x1],
: x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
: BesselYp[m_, x_] :=
: If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
: Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
: Hankel1p[m_, x_] :=
: If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
: I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: kr[kz_, k_] := Sqrt[k^2 - kz^2];
: \[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];
: f[kz_, opt_] := Module[{sub},
: k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
: k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
: k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
: r0 = r0 /. opt;
: r1 = r1 /. opt;
: m = m /. opt;
: kr0 = kr[kz, k0];
: kr1 = kr[kz, k1];
: \[Alpha]r2 = \[Alpha]r[kz, k2];
: BJ00 = BesselJ[m, kr[kz, k0] r0];
: BJ10 = BesselJ[m, kr[kz, k1] r0];
: BJ11 = BesselJ[m, kr[kz, k1] r1];
: BY10 = BesselY[m, kr[kz, k1] r0];
: BY11 = BesselY[m, kr[kz, k1] r1];
: BJp00 = BesselJp[m, kr[kz, k0] r0];
: BJp10 = BesselJp[m, kr[kz, k1] r0];
: BJp11 = BesselJp[m, kr[kz, k1] r1];
: BYp10 = BesselYp[m, kr[kz, k1] r0];
: BYp11 = BesselYp[m, kr[kz, k1] r1];
: HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
: HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
: M = {{BJ00, 0, -BJ10, -BY10 , 0, 0, 0, 0},
: {0, BJ00, 0, 0, -BJ10, -BY10, 0, 0},
: {(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2)
: BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0))
: BJp10, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(
: kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, 0, 0},
: {(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0)
: BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2))
: BY10, -((\[Omega] \[Mu]1)/(kr1 r0))
: BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10, 0, 0 },
: {0, 0, BJ11, BY11 , 0, 0, -HA21, 0},
: {0, 0, 0, 0, BJ11, BY11, 0, -HA21},
: {0, 0, (\[Omega] \[Epsilon]1)/(kr1 r1)
: BJp11, (\[Omega] \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(
: kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, (
: I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (
: m kz)/(\[Alpha]r2^2 r1^2) HA21},
: {0, 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2)
: BY11, (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(
: kr1 r1) BYp11, (m kz)/(\[Alpha]r2^2 r1^2) HA21, (
: I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) HAp21}
: } /. opt;
: equ = Det[M];
: Return[equ];
: ]
: n0[lambda_] :=
: Sqrt[1 + (0.68671749*lambda^2)/(lambda^2 -
: 0.072675189^2) + (0.43481505*lambda^2)/(lambda^2 -
: 0.11514351^2) + (0.89656582*lambda^2)/(lambda^2 - 10.002398^2)];
: n1[lambda_] :=
: Sqrt[1 + (0.6961663*lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
: lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
: lambda^2)/(lambda^2 - 9.896161^2)];
: n2[lambda_] := 1.0;
: opt[lambda_] := {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
: r1 -> 62.5, \[Epsilon]0 -> n0[lambda]^2, \[Mu]0 ->
: 1., \[Epsilon]1 -> n1[lambda]^2, \[Mu]1 -> 1., \[Epsilon]2 ->
: n2[lambda]^2, \[Mu]2 -> 1., kz -> y};
: temp3 = NestList[{#[[1]] + 0.001, #[[3]], Re@y} /.
: FindRoot[
: f[y*(2 Pi/(#[[1]] + 0.001)), opt[#[[1]] + 0.001]] ==
: 0, {y, #[[3]]}] &, {0.999, 1.299, 1.45038}, 301][[2 ;; -1]]
: Export["temp3.csv", temp3[[All, 3]]]
: -------------------------------------------------------------
: 其中迴圈是用牛頓法在1~1.3之間每隔0.001找一次解
: 理想上想得到的解是約略成等差級數的解
: 可是現在遇到的問題是在某些點,找到的解會和上一點一樣,這並不是所想要的
: 請問這有可能程式哪邊出問題嗎?還是跟牛頓法有關呢?
: 不好意思麻煩了...謝謝!

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com
http://tinyurl.com/25nedr2

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.134.142

[自動轉寄] 您好,想請問關於mathematica的問題

作者: af2486 (我喜歡旅行)
標題: 您好,想請問關於mathematica的問題
時間: Wed Dec 8 17:39:28 2010

您好,之前在暑假的時候曾經請教過mathematica的問題,非常感激

不過現在又有些問題想請教,不知是否有空撥冗幫我看一下呢?謝謝!

這是您之前幫我改過的程式碼:

xiLimit = 15.;
Hankel1[m_, x_] :=
If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
BesselJp[m_, x_] :=
If[Abs[x] < xiLimit,
D[BesselJ[m, x1],
x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
BesselYp[m_, x_] :=
If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
Hankel1p[m_, x_] :=
If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
kr[kz_, k_] := Sqrt[k^2 - kz^2];
\[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];

f[kz_, opt_] := Module[{sub},
k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
r0 = r0 /. opt;
r1 = r1 /. opt;
m = m /. opt;
kr0 = kr[kz, k0];
kr1 = kr[kz, k1];
\[Alpha]r2 = \[Alpha]r[kz, k2];
BJ00 = BesselJ[m, kr[kz, k0] r0];
BJ10 = BesselJ[m, kr[kz, k1] r0];
BJ11 = BesselJ[m, kr[kz, k1] r1];
BY10 = BesselY[m, kr[kz, k1] r0];
BY11 = BesselY[m, kr[kz, k1] r1];
BJp00 = BesselJp[m, kr[kz, k0] r0];
BJp10 = BesselJp[m, kr[kz, k1] r0];
BJp11 = BesselJp[m, kr[kz, k1] r1];
BYp10 = BesselYp[m, kr[kz, k1] r0];
BYp11 = BesselYp[m, kr[kz, k1] r1];
HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
M = {{BJ00, 0, -BJ10, -BY10 , 0, 0, 0, 0},
{0, BJ00, 0, 0, -BJ10, -BY10, 0, 0},
{(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2)
BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0))
BJp10, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(
kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, 0, 0},
{(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0)
BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2))
BY10, -((\[Omega] \[Mu]1)/(kr1 r0))
BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10, 0, 0 },
{0, 0, BJ11, BY11 , 0, 0, -HA21, 0},
{0, 0, 0, 0, BJ11, BY11, 0, -HA21},
{0, 0, (\[Omega] \[Epsilon]1)/(kr1 r1)
BJp11, (\[Omega] \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(
kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, (
I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (
m kz)/(\[Alpha]r2^2 r1^2) HA21},
{0, 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2)
BY11, (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(
kr1 r1) BYp11, (m kz)/(\[Alpha]r2^2 r1^2) HA21, (
I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) HAp21}
} /. opt;
equ = Det[M];
Return[equ];
]

n0[lambda_] :=
Sqrt[1 + (0.68671749*lambda^2)/(lambda^2 -
0.072675189^2) + (0.43481505*lambda^2)/(lambda^2 -
0.11514351^2) + (0.89656582*lambda^2)/(lambda^2 - 10.002398^2)];

n1[lambda_] :=
Sqrt[1 + (0.6961663*lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
lambda^2)/(lambda^2 - 9.896161^2)];

n2[lambda_] := 1.0;
opt[lambda_] := {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
r1 -> 62.5, \[Epsilon]0 -> n0[lambda]^2, \[Mu]0 ->
1., \[Epsilon]1 -> n1[lambda]^2, \[Mu]1 -> 1., \[Epsilon]2 ->
n2[lambda]^2, \[Mu]2 -> 1., kz -> y};

temp3 = NestList[{#[[1]] + 0.001, #[[3]], Re@y} /.
FindRoot[
f[y*(2 Pi/(#[[1]] + 0.001)), opt[#[[1]] + 0.001]] ==
0, {y, #[[3]]}] &, {0.999, 1.299, 1.45038}, 301][[2 ;; -1]]

Export["temp3.csv", temp3[[All, 3]]]


-------------------------------------------------------------
其中迴圈是用牛頓法在1~1.3之間每隔0.001找一次解

理想上想得到的解是約略成等差級數的解

可是現在遇到的問題是在某些點,找到的解會和上一點一樣,這並不是所想要的

請問這有可能程式哪邊出問題嗎?還是跟牛頓法有關呢?

不好意思麻煩了...謝謝!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.42.126

2010年11月22日 星期一

[自動轉寄] (kimicochiang) Re: [問題] SPSS 如何畫出cdf與pdf的圖

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [問題] SPSS 如何畫出cdf與pdf的圖
時間: Tue Nov 23 08:23:15 2010

※ 引述《kimicochiang (耕者有其田)》之銘言:
: 大家好
: 因為高統老師心血來潮
: 想請同學用統計軟體
: 畫f(x,y)=x+y 0<x, y<1
: 家裡有excel與spss
: 在一連串的google與搜尋之後
: 發現excel只能畫有點的圖
: spss告訴我要先有data才能其門而入
: 剛剛查詢與翻閱精華區還是沒有畫f(x,y)=x+y 0<x, y<1pdf & cdf的方法
: 想請問大家
: 謝謝你們

http://cose.math.bas.bg/webMathematica/MSP/Sci_Visualization/3DFunctionPlot

pdf x+y
cdf 1/2 x y (x + y)
範圍自己設定一下

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com
http://tinyurl.com/25nedr2

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.127

2010年11月18日 星期四

[自動轉寄] (bahhy) Re: [請問] mathematica圖上標註線的名稱

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [請問] mathematica圖上標註線的名稱
時間: Fri Nov 19 13:35:32 2010

※ 引述《bahhy (Kenzo)》之銘言:
: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : 如果你只是自己要區分很多條曲線,那可以用Tooltip
: : Plot[Tooltip[{Sin[x], Cos[x]}], {x, 0, 10}]
: : 當滑鼠游標移動到線上時會有提示
: : 如果你是要用Label區分很多條曲線,那可以使用Epilog搭配Text。
: : 不過這種方式比較麻煩
: : Plot[{Sin[x], Cos[x]}, {x, 0, Pi},
: : Epilog -> {Text[Style["Cos", FontSize -> 20], {2.3, 0.5}],
: : Text[Style["Sin", FontSize -> 20], {2.3, -0.9}]}]
: : 要簡單一點的話,直接在圖形按滑鼠右鍵,Drowing tools,自己加上去
: 謝謝你
: 請問一下你就是你簽名檔那個網頁的主人嗎?
: 我常常在看那個的教學耶
: 做的很棒的說

科科∼∼有問題直接在網頁留言!

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com
http://tinyurl.com/25nedr2

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.131

[自動轉寄] Re: [請問] mathematica圖上標註線的名稱

作者: bahhy (Kenzo)
標題: Re: [請問] mathematica圖上標註線的名稱
時間: Fri Nov 19 13:21:55 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《bahhy (Kenzo)》之銘言:
: : 因為沒有找到MATHEMATICA板
: : 想說在這裡問問看
: : 想請問一下
: : 要怎麼樣讓跑出來的圖上 上面每條線都標註名稱呢?
: : 不想單單只用顏色區隔的說
: : 有沒有會的高手能解說一下
: : 感謝
: 如果你只是自己要區分很多條曲線,那可以用Tooltip
: Plot[Tooltip[{Sin[x], Cos[x]}], {x, 0, 10}]
: 當滑鼠游標移動到線上時會有提示
: 如果你是要用Label區分很多條曲線,那可以使用Epilog搭配Text。
: 不過這種方式比較麻煩
: Plot[{Sin[x], Cos[x]}, {x, 0, Pi},
: Epilog -> {Text[Style["Cos", FontSize -> 20], {2.3, 0.5}],
: Text[Style["Sin", FontSize -> 20], {2.3, -0.9}]}]
: 要簡單一點的話,直接在圖形按滑鼠右鍵,Drowing tools,自己加上去
謝謝你

請問一下你就是你簽名檔那個網頁的主人嗎?

我常常在看那個的教學耶

做的很棒的說

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.102.7

[自動轉寄] (bahhy) Re: [請問] mathematica圖上標註線的名稱

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [請問] mathematica圖上標註線的名稱
時間: Fri Nov 19 12:37:09 2010

※ 引述《bahhy (Kenzo)》之銘言:
: 因為沒有找到MATHEMATICA板
: 想說在這裡問問看
: 想請問一下
: 要怎麼樣讓跑出來的圖上 上面每條線都標註名稱呢?
: 不想單單只用顏色區隔的說
: 有沒有會的高手能解說一下
: 感謝

如果你只是自己要區分很多條曲線,那可以用Tooltip
Plot[Tooltip[{Sin[x], Cos[x]}], {x, 0, 10}]
當滑鼠游標移動到線上時會有提示

如果你是要用Label區分很多條曲線,那可以使用Epilog搭配Text。
不過這種方式比較麻煩
Plot[{Sin[x], Cos[x]}, {x, 0, Pi},
Epilog -> {Text[Style["Cos", FontSize -> 20], {2.3, 0.5}],
Text[Style["Sin", FontSize -> 20], {2.3, -0.9}]}]

要簡單一點的話,直接在圖形按滑鼠右鍵,Drowing tools,自己加上去

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com
http://tinyurl.com/25nedr2

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.131

2010年11月9日 星期二

[自動轉寄] [通告] 送你自動人脈開發系統 渴望財富自由的你肯定會愛上它!!

作者: vver (非我不K)
標題: [通告] 送你自動人脈開發系統 渴望財富自由的你肯定會愛上它!!
時間: Wed Nov 10 00:54:16 2010


=========================================================================

http://weishihvemma.blogspot.com/

搶先試用 "窮爸爸富爸爸作者 羅伯特.T.清崎" 和"秘密作者 Bob" 推薦的美商工具

"自動人脈開發系統VB"

襲捲全球 初登台灣

全球超過57個國家的市場都將和你有關!

=========================================================================


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.103.138

2010年11月4日 星期四

[自動轉寄] Re: [問題] 請問在因素分析轉軸使用斜交的問題

作者: mrk (啥?) 站內: Statistics
標題: Re: [問題] 請問在因素分析轉軸使用斜交的問題
時間: Thu Nov 4 16:46:51 2010

※ 引述《angelins (小麥)》之銘言:
: 請問一下各位統計的先進
: 在進行efa時,如果使用直接斜交法進行轉軸時,
: 會出現三個距陣,分別是因子(factor)距陣、樣式(pattern)距陣及結構(structure)距陣
: 而陳正昌老師的多變量一書當中說Shrrama(1996)指出為了避免egien value>1的情形,

eigen value>1? 你指的是factor loading>1吧。

: 所以建議採用pattern matrix進行factor loading的分析及命名
: 但邱皓政老師在spss統計實務的書中卻提及structure matrix適合做因素命名的決定
: 請問究竟要使用哪一個matrix呢?還請各位專家指導
: 或是能否提供相關的研究進行佐證,感謝大家!

用哪一個都可以阿,理論上pattern matrix跟structure matrix的差別,
只是你多用了factor (correlated?) matrix作加權而已,
你有這個問題是因為你的pattern matrix跟structure matrix看起來
題目都跑到不同的factor了嗎?


--
你不過給了一點溫暖 我就忘了問別的冷淡 有時候心軟是一種悲慘 推自己跌入遺憾
也許會擁抱這種情感 和最開始的抉擇有關 有時候敏感是一種負擔 害思緒凌亂不安
我是掛在屋角的 風鈴 你是風撥弄我的心情
常常是憂鬱 偶爾是驚喜 你主宰而我隨行 我是原地打轉的 風鈴
連痛哭都聽來很抒情 每次看風停 愛揚長而去 我恨我那麼寂靜

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.183.187
推 coldwind0912:基本上 用pattern或structure matrix 差別只是係數吧  11/04 16:57
→ coldwind0912:如果這兩個matrix對照下 有Item會跑掉到其它factor  11/04 16:58
→ mrk:對,是差係數,不過通常都是用係數決定item歸屬於哪個factor  11/04 16:59
→ coldwind0912:那這個因素分析的結果 應該就滿混亂的了....= =  11/04 16:59
→ mrk:對阿,我也覺得這個問題是不是源自於他的因素分析結果不佳...  11/04 16:59
→ coldwind0912:通常 會跑掉的那題...就是可以考慮刪掉的題目了...  11/04 17:00

2010年10月15日 星期五

[自動轉寄] Re: [算表] 網頁資料擷取到Excel中

作者: sunfox (偶有好老婆 ㄎㄎ)
標題: Re: [算表] 網頁資料擷取到Excel中
時間: Sat Oct 16 04:48:29 2010

大大你好.......

你在兩年前有幫我 解決過這問題

兩年後

我又再度需要你伸出援手

http://www.boss.com.tw/namesearch.asp?income=投資顧問
&lev=2&ns=&up=&styu=&page=1&act=公司名稱

以上兩行要拼成一行

現在我想撈
這些資料

大大有辦法再幫忙嗎

如果能只撈台北市的 最好 若無法篩選 那就共35頁 也OK

我有試過過你的方法
但我對office 不專精 所以試不起來

只好再請你幫忙
麻煩你了

感謝


※ 引述《chungyuandye (養花種魚數月亮看星星)》之銘言:
: ※ 引述《sunfox (每天都想怎麼賺錢)》之銘言:
: : 您所使用的軟體為: Excel 2003
: : 版本: OFFICE 2003
: : 問題:
: : 各位先進 以下 有 5筆 資料
: : www.doh.gov.tw/DOHS/MDMAGBAS_data.aspx?id=2501150010&select_type=mdmagbas
: : www.doh.gov.tw/DOHS/MDMAGBAS_data.aspx?id=3501150020&select_type=mdmagbas
: : www.doh.gov.tw/DOHS/MDMAGBAS_data.aspx?id=3501150039&select_type=mdmagbas
: : www.doh.gov.tw/DOHS/MDMAGBAS_data.aspx?id=3501150048&select_type=mdmagbas
: : www.doh.gov.tw/DOHS/MDMAGBAS_data.aspx?id=3501150057&select_type=mdmagbas
: : 點進去之後
: : 會出現 制式的表格
: : 有機構名稱 有負責人 有電話 有地址 ............
: : 基本上 我只需要 上面這是種資料
: : 有辦法 用 EXCEL 去 讀出來嗎 且以下資料型態 呈現
: : ├───┼────┼───┼───┼───┼───┼───┼───┼───┤
: : │負責人│ 機構 │ 電話 │ 地址│ │ │ │ │ │
: : ├───┼────┼───┼───┼───┼───┼───┼───┼───┤
: : │小叮噹│大雄之家│ 123 │ JP │ │ │ │ │ │
: : ├───┼────┼───┼───┼───┼───┼───┼───┼───┤
: : │小叮玲│未來某處│ 456 │ fu │ │ │ │ │ │
: : 不知道 有沒有辦法用 EXCEL 處理喔
: : 因為 資料 近上萬筆吧
: : 感謝
: http://www.doh.gov.tw/DOHS/
: 上面的網址依照機構,縣市,鄉鎮先將機構代碼帶出,將這些資料複製到excel
: 的temp工作表,以下vba程式碼會將機構名稱,負責人,電話及地址複製到sheet2
: Sub ptt()
: Sheets("Sheet1").Select
: For i = 1 To 10
: With ActiveSheet.QueryTables.Add(Connection:= _
: "URL;http://www.doh.gov.tw/DOHS/turnpage.aspx?id=" & Sheets("temp").Cells(i, 1) & "&select_type=MDMAGBAS" _
: , Destination:=Sheets("Sheet1").Range("A1"))
: .Name = "醫事機構開業登記資料查詢"
: .FieldNames = True
: .RowNumbers = False
: .FillAdjacentFormulas = False
: .PreserveFormatting = True
: .RefreshOnFileOpen = False
: .BackgroundQuery = True
: .RefreshStyle = xlInsertDeleteCells
: .SavePassword = False
: .SaveData = True
: .AdjustColumnWidth = True
: .RefreshPeriod = 0
: .WebSelectionType = xlSpecifiedTables
: .WebFormatting = xlWebFormattingNone
: .WebTables = "4"
: .WebPreFormattedTextToColumns = True
: .WebConsecutiveDelimitersAsOne = True
: .WebSingleBlockTextImport = False
: .WebDisableDateRecognition = False
: .WebDisableRedirections = False
: .Refresh BackgroundQuery:=False
: End With
: Sheets("sheet2").Cells(i + 1, 1) = Cells(4, 2)
: Sheets("sheet2").Cells(i + 1, 2) = Sheets("temp").Cells(i, 2)
: Sheets("sheet2").Cells(i + 1, 3) = Cells(5, 2)
: Sheets("sheet2").Cells(i + 1, 4) = Cells(6, 2)
: ActiveSheet.Range("A:D").Delete
: Next
: End Sub

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.24.78.115

2010年9月26日 星期日

[自動轉寄] Re: [問題] mathematica陣列處理相關問題

作者: hcl012 (怪龍-卡西歐魯)
標題: Re: [問題] mathematica陣列處理相關問題
時間: Mon Sep 27 00:33:38 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《hcl012 (怪龍-卡西歐魯)》之銘言:
: : 標題: [問題] mathematica陣列處理相關問題
: : 時間: Sat Sep 25 14:13:58 2010
: : 下面是我的code
: : --
: : b = {{0, 0, 0}, {1, 0, 0}, {1, 0, 1}, {1, 1, 1}, {1, 1, 0}, {0, 1, 0}};
: : cent[b_] := {
: : (b[1, 1] + b[2, 1] + b[3, 1] + b[4, 1] + b[5, 1] + b[6, 1])/ 6,
: : (b[1, 2] + b[2, 2] + b[3, 2] + b[4, 2] + b[5, 2] + b[6, 2])/ 6,
: : (b[1, 3] + b[2, 3] + b[3, 3] + b[4, 3] + b[5, 3] + b[6, 3])/6};
: : cent[b]
: : --
: : 上面的陣列b裝著六個點的座標
: : 而cent[b]是算出六個點的中點
: : 理論上應該是要output出{0.66666, 0.5, 0.33333}之類的東西...
: : 但是結果卻像下面這張圖這樣
: b[x,y]在Mathematica中指的是b的函數,要取出陣列的的元素要用Part或是[[]]
: b[[All,i]]=>各列的第i個元素
: 所以cent這個函數可以寫成
: b={{0,0,0},{1,0,0},{1,0,1},{1,1,1},{1,1,0},{0,1,0}};
: cent1[b_List]:=Total[b[[All,#]]]/Length[b]&/@Range[Last[Dimensions[b]]]
: 但是如果只是要取重心或是平均數,那直接用Mean就可以了!
: cent2[b_List]:=Mean[b]
: cent1[b]
: cent2[b]

太感謝了

其實我就是需要Mean[]這樣的功能

只是對mathematica函數不熟所以都只好自己寫....


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 72.223.2.129

2010年9月23日 星期四

[自動轉寄] apple mac mini

作者: farmfox (買大魯閣代幣Q我)
標題: apple mac mini
時間: Fri Sep 24 09:32:07 2010

哈囉...我看macshop版上你有要徵一台mac mini server...我有一台要賣24000...

高雄面交...你有需要嗎?

--

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.178.225

[自動轉寄] 請問你有徵到mac mini了嗎?

作者: AvatarGuo (終於完成夢想)
標題: 請問你有徵到mac mini了嗎?
時間: Thu Sep 23 22:22:05 2010


請問你有徵到了嗎?

我這裡有一台要賣

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.72.102

2010年9月21日 星期二

[自動轉寄] MAC MINI Server

作者: chiaminchang (MIN˙-˙*)
標題: MAC MINI Server
時間: Tue Sep 21 21:27:33 2010


你好

我有一台MAC MINI Server

全新未拆

實在沒有時間可以研究...

24000可以接受嘛??

請問是哪個地區的??

謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.244.178

2010年9月9日 星期四

[自動轉寄] Re: [徵求] Mac Mini Server 8G

作者: alspike (worm)
標題: Re: [徵求] Mac Mini Server 8G
時間: Fri Sep 10 13:24:47 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: [我想要買]:Mac mini server 8g
: [保固狀態]:要
: [原始發票]:可有可無
: [希望價格]:24000,可以更低嗎????
: [連絡方式]:站內信
: [交易方式]:高雄面交
: [備註事項]:無

全新未拆封25000台北面交可以嗎? 也可以26000含運費唷!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.211.225

2010年8月15日 星期日

[自動轉寄] 引圖疑問

作者: MIZUYAMA (致命祈願)
標題: 引圖疑問
時間: Mon Aug 16 00:41:29 2010

首先感謝您昨晚的幫忙!
才沒有讓我今天下午要給老闆的報告開天窗
畢竟老闆急著要投稿....囧

這是我第一次使用mac打tex系列
之前則都是使用win
在沒遇到您我可能會用bootcamp開win打了 囧

--
昨晚您幫我改成eps離線後
我檢視您幫我轉成的程式碼

一開始以為是轉圖的格式
可是後來實驗套用其他用R語言畫出的圖發現都可以跑出來
相比之下我無法跑出圖的程式碼與您所轉eps的程式碼幾乎沒有差別

想問您方便撥冗說明一下嗎?

--
「如果昨天到了明天會變成兩天前,試問後天應該是今天或是昨天?」

∼時間操縱緒論期末考

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.201.126

[問題] mac texshop上的引用圖形

作者: MIZUYAMA (致命祈願) 看板: LaTeX
標題: [問題] mac texshop上的引用圖形
時間: Sun Aug 15 23:02:40 2010

爬了文跟翻了手邊的教學書還是搞不定

目前手邊的工作是用R語言畫出圖後儲存(pdf檔)
在引用pdf圖檔

所以我用了
\usepackage[dvipdfm]{graphicx}
.. ...
.. ...
\begin{figure}
\centering

\includegraphics[width=0.9\textwidth]{R圖檔名.pdf}
\end{figure}


但是就是沒辦法跑出圖來 囧
想請問高手該怎麼做....

--
大學院研究的主題是時間∼直到他們將時間用盡

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.201.126
推 chungyuandye:menu=>typeset=>pdftex 不過還是建議轉成eps  08/15 23:34

2010年8月6日 星期五

(af2486) Re: [程式] 有關mathematica求解的一個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [程式] 有關mathematica求解的一個問題
時間: Thu Aug 5 23:03:49 2010

※ 引述《af2486 (我喜歡旅行)》之銘言:
: 不好意思...找不到部落格要在哪邊留言直接回信囉
: 關於您新寫的程式碼我跑過確定可以用沒問題囉,非常感謝!
: 然後為求方便我把資料輸出成notepad檔(方便整個複製)
: NestList[{#[[1]] + 0.001, #[[3]], Re@y} /.
: FindRoot[
: f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
: 0, {y, #[[3]]}] &, {0.699, 1.6, 1.4435}, 901][[
: 2 ;; -1]] >>> temp17
: 像這樣子。然後跑出來的檔案形式是像這樣(列舉部分資料)
: {{0.7, 1.4435, 1.4435871120952857}, {0.701, 1.4435871120952857,
: 1.443560146928692}, {0.702, 1.443560146928692, 1.4435045255446237},
: {0.703, 1.4435045255446237, 1.4434489234482561},
: {0.704, 1.4434489234482561, 1.4433933402197179}, ......
: 可是我只想複製每個最後算出來的結果貼到excel(標紅色的數字)
: 像目前這樣的形式就不能讓我一次複製一大筆資料而要一個一個貼
: 請問要怎麼改讓跑出來的資料就只有我想要的那些資料呢?
: 謝謝!

temp17=NestList[{#[[1]] + 0.001, #[[3]], Re@y} /.
FindRoot[
f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
0, {y, #[[3]]}] &, {0.699, 1.6, 1.4435}, 901][[
2 ;; -1]]

Export["~/temp17.csv",temp17[[All,3]]]

~/temp17.csv是你的絕對路徑,Win下面你可能要自己改一下
接著用Excel開就好了

: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : 有問題可以到我blog留言討論
: : xiLimit = 15.;
: : Hankel1[m_, x_] :=
: : If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
: : Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: : BesselJp[m_, x_] :=
: : If[Abs[x] < xiLimit,
: : D[BesselJ[m, x1],
: : x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
: : BesselYp[m_, x_] :=
: : If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
: : Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
: : Hankel1p[m_, x_] :=
: : If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
: : I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: : kr[kz_, k_] := Sqrt[k^2 - kz^2];
: : \[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];
: : f[kz_, opt_] :=
: : Module[{sub}, k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
: : k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
: : k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
: : r0 = r0 /. opt;
: : r1 = r1 /. opt;
: : m = m /. opt;
: : kr0 = kr[kz, k0];
: : kr1 = kr[kz, k1];
: : \[Alpha]r2 = \[Alpha]r[kz, k2];
: : BJ00 = BesselJ[m, kr[kz, k0] r0];
: : BJ10 = BesselJ[m, kr[kz, k1] r0];
: : BJ11 = BesselJ[m, kr[kz, k1] r1];
: : BY10 = BesselY[m, kr[kz, k1] r0];
: : BY11 = BesselY[m, kr[kz, k1] r1];
: : BJp00 = BesselJp[m, kr[kz, k0] r0];
: : BJp10 = BesselJp[m, kr[kz, k1] r0];
: : BJp11 = BesselJp[m, kr[kz, k1] r1];
: : BYp10 = BesselYp[m, kr[kz, k1] r0];
: : BYp11 = BesselYp[m, kr[kz, k1] r1];
: : HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
: : HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
: : M = {{BJ00, 0, -BJ10, -BY10, 0, 0, 0, 0}, {0, BJ00, 0,
: : 0, -BJ10, -BY10, 0,
: : 0}, {(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2) \
: : BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BJp10, -((\[Omega] \
: : \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(kr1^2 r0^2)) BJ10, -((m \
: : kz)/(kr1^2 r0^2)) BY10, 0,
: : 0}, {(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0) \
: : BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, -((\
: : \[Omega] \[Mu]1)/(kr1 r0)) BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10,
: : 0, 0}, {0, 0, BJ11, BY11, 0, 0, -HA21, 0}, {0, 0, 0, 0, BJ11,
: : BY11, 0, -HA21}, {0,
: : 0, (\[Omega] \[Epsilon]1)/(kr1 r1) BJp11, (\[Omega] \
: : \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 \
: : r1^2) BY11, (I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (m kz)/(\
: : \[Alpha]r2^2 r1^2) HA21}, {0,
: : 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, \
: : (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(kr1 r1) BYp11, \
: : (m kz)/(\[Alpha]r2^2 r1^2) HA21, (I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) \
: : HAp21}} /. opt;
: : equ = Det[M];
: : Return[equ];]
: : n0[lambda_] :=
: : Sqrt[1 + (0.68671749*lambda^2)/(lambda^2 -
: : 0.072675189^2) + (0.43481505*lambda^2)/(lambda^2 -
: : 0.11514351^2) + (0.89656582*lambda^2)/(lambda^2 - 10.002398^2)];
: : n1[lambda_] :=
: : Sqrt[1 + (0.6961663*lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
: : lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
: : lambda^2)/(lambda^2 - 9.896161^2)];
: : n2[lambda_] := 1.0;
: : opt[lambda_] := {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
: : r1 -> 62.5, \[Epsilon]0 -> n0[lambda]^2, \[Mu]0 ->
: : 1., \[Epsilon]1 -> n1[lambda]^2, \[Mu]1 -> 1., \[Epsilon]2 ->
: : n2[lambda]^2, \[Mu]2 -> 1., kz -> y};
: : NestList[{#[[1]] + 0.01, #[[3]], Re@y} /.
: : FindRoot[
: : f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
: : 0, {y, #[[3]]}] &, {1.53, 1.4435, 1.4435},
: : 20][[2 ;; -1]] // TableForm

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.129.12

2010年8月5日 星期四

[自動轉寄] (af2486) Re: [程式] 有關mathematica求解的一個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [程式] 有關mathematica求解的一個問題
時間: Thu Aug 5 23:03:49 2010

※ 引述《af2486 (我喜歡旅行)》之銘言:
: 不好意思...找不到部落格要在哪邊留言直接回信囉
: 關於您新寫的程式碼我跑過確定可以用沒問題囉,非常感謝!
: 然後為求方便我把資料輸出成notepad檔(方便整個複製)
: NestList[{#[[1]] + 0.001, #[[3]], Re@y} /.
: FindRoot[
: f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
: 0, {y, #[[3]]}] &, {0.699, 1.6, 1.4435}, 901][[
: 2 ;; -1]] >>> temp17
: 像這樣子。然後跑出來的檔案形式是像這樣(列舉部分資料)
: {{0.7, 1.4435, 1.4435871120952857}, {0.701, 1.4435871120952857,
: 1.443560146928692}, {0.702, 1.443560146928692, 1.4435045255446237},
: {0.703, 1.4435045255446237, 1.4434489234482561},
: {0.704, 1.4434489234482561, 1.4433933402197179}, ......
: 可是我只想複製每個最後算出來的結果貼到excel(標紅色的數字)
: 像目前這樣的形式就不能讓我一次複製一大筆資料而要一個一個貼
: 請問要怎麼改讓跑出來的資料就只有我想要的那些資料呢?
: 謝謝!

temp17=NestList[{#[[1]] + 0.001, #[[3]], Re@y} /.
FindRoot[
f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
0, {y, #[[3]]}] &, {0.699, 1.6, 1.4435}, 901][[
2 ;; -1]]

Export["~/temp17.csv",temp17[[All,3]]]

~/temp17.csv是你的絕對路徑,Win下面你可能要自己改一下
接著用Excel開就好了

: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : 有問題可以到我blog留言討論
: : xiLimit = 15.;
: : Hankel1[m_, x_] :=
: : If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
: : Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: : BesselJp[m_, x_] :=
: : If[Abs[x] < xiLimit,
: : D[BesselJ[m, x1],
: : x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
: : BesselYp[m_, x_] :=
: : If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
: : Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
: : Hankel1p[m_, x_] :=
: : If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
: : I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: : kr[kz_, k_] := Sqrt[k^2 - kz^2];
: : \[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];
: : f[kz_, opt_] :=
: : Module[{sub}, k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
: : k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
: : k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
: : r0 = r0 /. opt;
: : r1 = r1 /. opt;
: : m = m /. opt;
: : kr0 = kr[kz, k0];
: : kr1 = kr[kz, k1];
: : \[Alpha]r2 = \[Alpha]r[kz, k2];
: : BJ00 = BesselJ[m, kr[kz, k0] r0];
: : BJ10 = BesselJ[m, kr[kz, k1] r0];
: : BJ11 = BesselJ[m, kr[kz, k1] r1];
: : BY10 = BesselY[m, kr[kz, k1] r0];
: : BY11 = BesselY[m, kr[kz, k1] r1];
: : BJp00 = BesselJp[m, kr[kz, k0] r0];
: : BJp10 = BesselJp[m, kr[kz, k1] r0];
: : BJp11 = BesselJp[m, kr[kz, k1] r1];
: : BYp10 = BesselYp[m, kr[kz, k1] r0];
: : BYp11 = BesselYp[m, kr[kz, k1] r1];
: : HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
: : HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
: : M = {{BJ00, 0, -BJ10, -BY10, 0, 0, 0, 0}, {0, BJ00, 0,
: : 0, -BJ10, -BY10, 0,
: : 0}, {(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2) \
: : BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BJp10, -((\[Omega] \
: : \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(kr1^2 r0^2)) BJ10, -((m \
: : kz)/(kr1^2 r0^2)) BY10, 0,
: : 0}, {(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0) \
: : BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, -((\
: : \[Omega] \[Mu]1)/(kr1 r0)) BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10,
: : 0, 0}, {0, 0, BJ11, BY11, 0, 0, -HA21, 0}, {0, 0, 0, 0, BJ11,
: : BY11, 0, -HA21}, {0,
: : 0, (\[Omega] \[Epsilon]1)/(kr1 r1) BJp11, (\[Omega] \
: : \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 \
: : r1^2) BY11, (I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (m kz)/(\
: : \[Alpha]r2^2 r1^2) HA21}, {0,
: : 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, \
: : (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(kr1 r1) BYp11, \
: : (m kz)/(\[Alpha]r2^2 r1^2) HA21, (I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) \
: : HAp21}} /. opt;
: : equ = Det[M];
: : Return[equ];]
: : n0[lambda_] :=
: : Sqrt[1 + (0.68671749*lambda^2)/(lambda^2 -
: : 0.072675189^2) + (0.43481505*lambda^2)/(lambda^2 -
: : 0.11514351^2) + (0.89656582*lambda^2)/(lambda^2 - 10.002398^2)];
: : n1[lambda_] :=
: : Sqrt[1 + (0.6961663*lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
: : lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
: : lambda^2)/(lambda^2 - 9.896161^2)];
: : n2[lambda_] := 1.0;
: : opt[lambda_] := {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
: : r1 -> 62.5, \[Epsilon]0 -> n0[lambda]^2, \[Mu]0 ->
: : 1., \[Epsilon]1 -> n1[lambda]^2, \[Mu]1 -> 1., \[Epsilon]2 ->
: : n2[lambda]^2, \[Mu]2 -> 1., kz -> y};
: : NestList[{#[[1]] + 0.01, #[[3]], Re@y} /.
: : FindRoot[
: : f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
: : 0, {y, #[[3]]}] &, {1.53, 1.4435, 1.4435},
: : 20][[2 ;; -1]] // TableForm

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.129.12

[自動轉寄] Re: [程式] 有關mathematica求解的一個問題

作者: af2486 (我喜歡旅行)
標題: Re: [程式] 有關mathematica求解的一個問題
時間: Thu Aug 5 22:01:05 2010

不好意思...找不到部落格要在哪邊留言直接回信囉
關於您新寫的程式碼我跑過確定可以用沒問題囉,非常感謝!
然後為求方便我把資料輸出成notepad檔(方便整個複製)
NestList[{#[[1]] + 0.001, #[[3]], Re@y} /.
FindRoot[
f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
0, {y, #[[3]]}] &, {0.699, 1.6, 1.4435}, 901][[
2 ;; -1]] >>> temp17

像這樣子。然後跑出來的檔案形式是像這樣(列舉部分資料)
{{0.7, 1.4435, 1.4435871120952857}, {0.701, 1.4435871120952857,
1.443560146928692}, {0.702, 1.443560146928692, 1.4435045255446237},
{0.703, 1.4435045255446237, 1.4434489234482561},
{0.704, 1.4434489234482561, 1.4433933402197179}, ......

可是我只想複製每個最後算出來的結果貼到excel(標紅色的數字)
像目前這樣的形式就不能讓我一次複製一大筆資料而要一個一個貼
請問要怎麼改讓跑出來的資料就只有我想要的那些資料呢?
謝謝!


※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: 有問題可以到我blog留言討論
: xiLimit = 15.;
: Hankel1[m_, x_] :=
: If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
: Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: BesselJp[m_, x_] :=
: If[Abs[x] < xiLimit,
: D[BesselJ[m, x1],
: x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
: BesselYp[m_, x_] :=
: If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
: Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
: Hankel1p[m_, x_] :=
: If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
: I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: kr[kz_, k_] := Sqrt[k^2 - kz^2];
: \[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];
: f[kz_, opt_] :=
: Module[{sub}, k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
: k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
: k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
: r0 = r0 /. opt;
: r1 = r1 /. opt;
: m = m /. opt;
: kr0 = kr[kz, k0];
: kr1 = kr[kz, k1];
: \[Alpha]r2 = \[Alpha]r[kz, k2];
: BJ00 = BesselJ[m, kr[kz, k0] r0];
: BJ10 = BesselJ[m, kr[kz, k1] r0];
: BJ11 = BesselJ[m, kr[kz, k1] r1];
: BY10 = BesselY[m, kr[kz, k1] r0];
: BY11 = BesselY[m, kr[kz, k1] r1];
: BJp00 = BesselJp[m, kr[kz, k0] r0];
: BJp10 = BesselJp[m, kr[kz, k1] r0];
: BJp11 = BesselJp[m, kr[kz, k1] r1];
: BYp10 = BesselYp[m, kr[kz, k1] r0];
: BYp11 = BesselYp[m, kr[kz, k1] r1];
: HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
: HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
: M = {{BJ00, 0, -BJ10, -BY10, 0, 0, 0, 0}, {0, BJ00, 0,
: 0, -BJ10, -BY10, 0,
: 0}, {(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2) \
: BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BJp10, -((\[Omega] \
: \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(kr1^2 r0^2)) BJ10, -((m \
: kz)/(kr1^2 r0^2)) BY10, 0,
: 0}, {(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0) \
: BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, -((\
: \[Omega] \[Mu]1)/(kr1 r0)) BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10,
: 0, 0}, {0, 0, BJ11, BY11, 0, 0, -HA21, 0}, {0, 0, 0, 0, BJ11,
: BY11, 0, -HA21}, {0,
: 0, (\[Omega] \[Epsilon]1)/(kr1 r1) BJp11, (\[Omega] \
: \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 \
: r1^2) BY11, (I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (m kz)/(\
: \[Alpha]r2^2 r1^2) HA21}, {0,
: 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, \
: (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(kr1 r1) BYp11, \
: (m kz)/(\[Alpha]r2^2 r1^2) HA21, (I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) \
: HAp21}} /. opt;
: equ = Det[M];
: Return[equ];]
: n0[lambda_] :=
: Sqrt[1 + (0.68671749*lambda^2)/(lambda^2 -
: 0.072675189^2) + (0.43481505*lambda^2)/(lambda^2 -
: 0.11514351^2) + (0.89656582*lambda^2)/(lambda^2 - 10.002398^2)];
: n1[lambda_] :=
: Sqrt[1 + (0.6961663*lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
: lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
: lambda^2)/(lambda^2 - 9.896161^2)];
: n2[lambda_] := 1.0;
: opt[lambda_] := {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
: r1 -> 62.5, \[Epsilon]0 -> n0[lambda]^2, \[Mu]0 ->
: 1., \[Epsilon]1 -> n1[lambda]^2, \[Mu]1 -> 1., \[Epsilon]2 ->
: n2[lambda]^2, \[Mu]2 -> 1., kz -> y};
: NestList[{#[[1]] + 0.01, #[[3]], Re@y} /.
: FindRoot[
: f[y*(2 Pi/(#[[1]] + 0.01)), opt[#[[1]] + 0.01]] ==
: 0, {y, #[[3]]}] &, {1.53, 1.4435, 1.4435},
: 20][[2 ;; -1]] // TableForm
: ※ 引述《af2486 (我喜歡旅行)》之銘言:
: : 您好~不好意思我想請問您的程式碼是要從哪邊開始貼呢?
: : 或是說取代哪邊的程式碼...我取代"Do"這個指令後面的
: : 要執行的時候好像有點小問題(出在函數的引數[]那邊,有個錯誤訊息)
: : 不好意思才剛開始學連基本的debug都不太會...這小問題可能還要麻煩你了謝謝!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.42.126

2010年7月31日 星期六

[自動轉寄] Re: [程式] 有關mathematica求解的一個問題

作者: af2486 (我喜歡旅行)
標題: Re: [程式] 有關mathematica求解的一個問題
時間: Sat Jul 31 23:45:57 2010

您好~不好意思我想請問您的程式碼是要從哪邊開始貼呢?
或是說取代哪邊的程式碼...我取代"Do"這個指令後面的
要執行的時候好像有點小問題(出在函數的引數[]那邊,有個錯誤訊息)
不好意思才剛開始學連基本的debug都不太會...這小問題可能還要麻煩你了謝謝!

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《af2486 (我喜歡旅行)》之銘言:
: : ------------------------------------------------------------------------
: : [軟體程式類別]:Mathematica
: : 請填入軟體程式類別 例如SAS、SPSS、R、EVIEWS...等
: : [程式問題]:
: : 在用mathematica牛頓法求解時,會先給個固定值讓程式在那值附近求解(一連串的多組解)。
: : 不過後來發現往往後面求出的解會跑掉,因此現在要設定每次求解都以上一個算出來的值
: : 當作新的求解範圍。不過我不知道該用什麼指令好,有人能給個方向嗎?
: : xiLimit = 15.;
: : Hankel1[m_, x_] :=
: : If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
: : Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: : BesselJp[m_, x_] :=
: : If[Abs[x] < xiLimit,
: : D[BesselJ[m, x1],
: : x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
: : BesselYp[m_, x_] :=
: : If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
: : Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
: : Hankel1p[m_, x_] :=
: : If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
: : I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
: : kr[kz_, k_] := Sqrt[k^2 - kz^2];
: : \[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];
: : f[kz_, opt_] := Module[{sub},
: : k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
: : k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
: : k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
: : r0 = r0 /. opt;
: : r1 = r1 /. opt;
: : m = m /. opt;
: : kr0 = kr[kz, k0];
: : kr1 = kr[kz, k1];
: : \[Alpha]r2 = \[Alpha]r[kz, k2];
: : BJ00 = BesselJ[m, kr[kz, k0] r0];
: : BJ10 = BesselJ[m, kr[kz, k1] r0];
: : BJ11 = BesselJ[m, kr[kz, k1] r1];
: : BY10 = BesselY[m, kr[kz, k1] r0];
: : BY11 = BesselY[m, kr[kz, k1] r1];
: : BJp00 = BesselJp[m, kr[kz, k0] r0];
: : BJp10 = BesselJp[m, kr[kz, k1] r0];
: : BJp11 = BesselJp[m, kr[kz, k1] r1];
: : BYp10 = BesselYp[m, kr[kz, k1] r0];
: : BYp11 = BesselYp[m, kr[kz, k1] r1];
: : HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
: : HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
: : M = {{BJ00, 0, -BJ10, -BY10 , 0, 0, 0, 0},
: : {0, BJ00, 0, 0, -BJ10, -BY10, 0, 0},
: : {(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2)
: : BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0))
: : BJp10, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(
: : kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, 0, 0},
: : {(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0)
: : BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2))
: : BY10, -((\[Omega] \[Mu]1)/(kr1 r0))
: : BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10, 0, 0 },
: : {0, 0, BJ11, BY11 , 0, 0, -HA21, 0},
: : {0, 0, 0, 0, BJ11, BY11, 0, -HA21},
: : {0, 0, (\[Omega] \[Epsilon]1)/(kr1 r1)
: : BJp11, (\[Omega] \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(
: : kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, (
: : I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (
: : m kz)/(\[Alpha]r2^2 r1^2) HA21},
: : {0, 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2)
: : BY11, (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(
: : kr1 r1) BYp11, (m kz)/(\[Alpha]r2^2 r1^2) HA21, (
: : I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) HAp21}
: : } /. opt;
: : equ = Det[M];
: : Return[equ];
: : ]
: : Do[
: : n0 = Sqrt[
: : 1 + (0.68671749* lambda^2)/(lambda^2 -
: : 0.072675189^2) + (0.43481505* lambda^2)/(lambda^2 -
: : 0.11514351^2) + (0.89656582* lambda^2)/(lambda^2 -
: : 10.002398^2)];
: : n1 = Sqrt[
: : 1 + (0.6961663* lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
: : lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
: : lambda^2)/(lambda^2 - 9.896161^2)];
: : n2 = 1.0;
: : opt = {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
: : r1 -> 62.5, \[Epsilon]0 -> n0^2, \[Mu]0 -> 1., \[Epsilon]1 ->
: : n1^2, \[Mu]1 -> 1., \[Epsilon]2 -> n2^2, \[Mu]2 -> 1., kz -> y};
: : sol2 = FindRoot[f[y*(2 Pi/lambda), opt] == 0, {y, 1.4435}];
: : Print[FullForm[Re[sol2[[1, 2]]]]],
: : {lambda, 1.54, 1.56, 0.001}]
: : 以上是部分程式碼,從1.54~1.56每次加0.001在1.4435附近求解,會求出21組解。現在想要
: : 每算完一組解就以這個解當新的值繼續往下算;例如說1.54算出1.4480196760169795,
: : 1.541就以這個值往下算,之後的以此類推。請問這樣程式碼要怎改比較好呢?謝謝!
: : [軟體熟悉度]:
: : 低(1~3個月)
: : -----------------------------------------------------------------------------
: n0[lambda_]:=Sqrt[1+(0.68671749*lambda^2)/(lambda^2-
: 0.072675189^2)+(0.43481505*lambda^2)/(lambda^2-
: 0.11514351^2)+(0.89656582*lambda^2)/(lambda^2-10.002398^2)];
: n1[lambda_]:=Sqrt[1+(0.6961663*lambda^2)/(lambda^2-0.0684043^2)+(0.4079426*
: lambda^2)/(lambda^2-0.1162414^2)+(0.8974794*
: lambda^2)/(lambda^2-9.896161^2)];
: n2[lambda_]:=1.0;
: opt[lambda_]:={m->1,\[Omega]->2Pi/lambda,r0->4.1,
: r1->62.5,\[Epsilon]0->n0[lambda]^2,\[Mu]0->
: 1.,\[Epsilon]1->n1[lambda]^2,\[Mu]1->1.,\[Epsilon]2->
: n2[lambda]^2,\[Mu]2->1.,kz->y};
: NestList[{#[[1]]+0.01,#[[3]],Re@y}/.
: FindRoot[f[y*(2Pi/(#[[1]]+0.01)),opt[#[[1]]+0.01]],{y,#[[3]]}]&,
: {1.53,1.4435,1.4435},20][[2;;-1]]//TableForm

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.252.213.103

2010年7月30日 星期五

Fwd: [程式] 有關mathematica求解的一個問題

n0[lambda_]:=
Sqrt[1+(0.68671749*lambda^2)/(lambda^2-
0.072675189^2)+(0.43481505*lambda^2)/(lambda^2-
0.11514351^2)+(0.89656582*lambda^2)/(lambda^2-10.002398^2)];

n1[lambda_]:=
Sqrt[1+(0.6961663*lambda^2)/(lambda^2-0.0684043^2)+(0.4079426*
lambda^2)/(lambda^2-0.1162414^2)+(0.8974794*
lambda^2)/(lambda^2-9.896161^2)];

n2[lambda_]:=1.0;
opt[lambda_]:={m->1,\[Omega]->2Pi/lambda,r0->4.1,
r1->62.5,\[Epsilon]0->n0[lambda]^2,\[Mu]0->
1.,\[Epsilon]1->n1[lambda]^2,\[Mu]1->1.,\[Epsilon]2->
n2[lambda]^2,\[Mu]2->1.,kz->y};

NestList[{#[[1]]+0.01,#[[3]],Re@y}/.
FindRoot[f[y*(2Pi/(#[[1]]+0.01)),opt[#[[1]]+0.01]]==
0,{y,#[[3]]}]&,{1.53,1.4435,1.4435},
20][[2;;-1]]//TableForm

---------- 轉寄的郵件 ----------
寄件者: chungyuandye.bbs@ptt.cc <chungyuandye.bbs@ptt.cc>
日期: 2010年7月31日上午2:55
主旨: [程式] 有關mathematica求解的一個問題
收件者: chungyuandye@gmail.com


作者: af2486 (我喜歡旅行) 看板: Statistics
標題: [程式] 有關mathematica求解的一個問題
時間: Thu Jul 29 17:26:11 2010


------------------------------------------------------------------------

[軟體程式類別]:Mathematica
 [1;30m請填入軟體程式類別  例如SAS、SPSS、R、EVIEWS...等 [m

[程式問題]:
在用mathematica牛頓法求解時,會先給個固定值讓程式在那值附近求解(一連串的多組解)。
不過後來發現往往後面求出的解會跑掉,因此現在要設定每次求解都以上一個算出來的值
當作新的求解範圍。不過我不知道該用什麼指令好,有人能給個方向嗎?

xiLimit = 15.;
Hankel1[m_, x_] :=
 If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
  Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
BesselJp[m_, x_] :=
 If[Abs[x] < xiLimit,
  D[BesselJ[m, x1],
    x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
BesselYp[m_, x_] :=
 If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
  Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
Hankel1p[m_, x_] :=
 If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
  I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
kr[kz_, k_] := Sqrt[k^2 - kz^2];
\[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];

f[kz_, opt_] := Module[{sub},
 k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
 k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
 k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
 r0 = r0 /. opt;
 r1 = r1 /. opt;
 m = m /. opt;
 kr0 = kr[kz, k0];
 kr1 = kr[kz, k1];
 \[Alpha]r2 = \[Alpha]r[kz, k2];
 BJ00 = BesselJ[m, kr[kz, k0] r0];
 BJ10 = BesselJ[m, kr[kz, k1] r0];
 BJ11 = BesselJ[m, kr[kz, k1] r1];
 BY10 = BesselY[m, kr[kz, k1] r0];
 BY11 = BesselY[m, kr[kz, k1] r1];
 BJp00 = BesselJp[m, kr[kz, k0] r0];
 BJp10 = BesselJp[m, kr[kz, k1] r0];
 BJp11 = BesselJp[m, kr[kz, k1] r1];
 BYp10 = BesselYp[m, kr[kz, k1] r0];
 BYp11 = BesselYp[m, kr[kz, k1] r1];
 HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
 HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
 M = {{BJ00, 0, -BJ10, -BY10 , 0, 0, 0, 0},
    {0, BJ00, 0, 0, -BJ10, -BY10, 0, 0},
    {(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2)
       BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0))
        BJp10, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(
       kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, 0, 0},
    {(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0)
       BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2))
        BY10, -((\[Omega] \[Mu]1)/(kr1 r0))
        BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10, 0, 0 },
    {0, 0, BJ11, BY11 , 0, 0, -HA21, 0},
    {0, 0, 0, 0, BJ11, BY11, 0, -HA21},
    {0, 0, (\[Omega] \[Epsilon]1)/(kr1 r1)
       BJp11, (\[Omega] \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(
      kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, (
      I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (
      m kz)/(\[Alpha]r2^2 r1^2) HA21},
    {0, 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2)
       BY11, (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(
      kr1 r1) BYp11, (m kz)/(\[Alpha]r2^2 r1^2) HA21, (
      I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) HAp21}
    } /. opt;
 equ = Det[M];
 Return[equ];
 ]

Do[
 n0 = Sqrt[
  1 + (0.68671749* lambda^2)/(lambda^2 -
      0.072675189^2) + (0.43481505* lambda^2)/(lambda^2 -
      0.11514351^2) + (0.89656582* lambda^2)/(lambda^2 -
      10.002398^2)];
 n1 = Sqrt[
  1 + (0.6961663* lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
      lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
      lambda^2)/(lambda^2 - 9.896161^2)];
 n2 = 1.0;
 opt = {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
  r1 -> 62.5, \[Epsilon]0 -> n0^2, \[Mu]0 -> 1., \[Epsilon]1 ->
   n1^2, \[Mu]1 -> 1., \[Epsilon]2 -> n2^2, \[Mu]2 -> 1., kz -> y};
 sol2 = FindRoot[f[y*(2 Pi/lambda), opt] == 0, {y, 1.4435}];
 Print[FullForm[Re[sol2[[1, 2]]]]],
 {lambda, 1.54, 1.56, 0.001}]

以上是部分程式碼,從1.54~1.56每次加0.001在1.4435附近求解,會求出21組解。現在想要
每算完一組解就以這個解當新的值繼續往下算;例如說1.54算出1.4480196760169795,
1.541就以這個值往下算,之後的以此類推。請問這樣程式碼要怎改比較好呢?謝謝!

[軟體熟悉度]:
低(1~3個月)

-----------------------------------------------------------------------------

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.41.12
 [1;37m推  [33mchungyuandye [m [33m:沒有f的定義                                        [m 07/30 10:54
※ 編輯: af2486          來自: 111.252.204.176      (07/30 23:00)
 [1;31m→  [33maf2486 [m [33m:已附上完整程式碼                                         [m 07/30 23:02




--
Chung-Yuan Dye

養花種魚數月亮賞星星
http://cydye1069.blogspot.com

[自動轉寄] [程式] 有關mathematica求解的一個問題

作者: af2486 (我喜歡旅行) 看板: Statistics
標題: [程式] 有關mathematica求解的一個問題
時間: Thu Jul 29 17:26:11 2010


------------------------------------------------------------------------

[軟體程式類別]:Mathematica
請填入軟體程式類別 例如SAS、SPSS、R、EVIEWS...等

[程式問題]:
在用mathematica牛頓法求解時,會先給個固定值讓程式在那值附近求解(一連串的多組解)。
不過後來發現往往後面求出的解會跑掉,因此現在要設定每次求解都以上一個算出來的值
當作新的求解範圍。不過我不知道該用什麼指令好,有人能給個方向嗎?

xiLimit = 15.;
Hankel1[m_, x_] :=
If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
BesselJp[m_, x_] :=
If[Abs[x] < xiLimit,
D[BesselJ[m, x1],
x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
BesselYp[m_, x_] :=
If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
Hankel1p[m_, x_] :=
If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
kr[kz_, k_] := Sqrt[k^2 - kz^2];
\[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];

f[kz_, opt_] := Module[{sub},
k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
r0 = r0 /. opt;
r1 = r1 /. opt;
m = m /. opt;
kr0 = kr[kz, k0];
kr1 = kr[kz, k1];
\[Alpha]r2 = \[Alpha]r[kz, k2];
BJ00 = BesselJ[m, kr[kz, k0] r0];
BJ10 = BesselJ[m, kr[kz, k1] r0];
BJ11 = BesselJ[m, kr[kz, k1] r1];
BY10 = BesselY[m, kr[kz, k1] r0];
BY11 = BesselY[m, kr[kz, k1] r1];
BJp00 = BesselJp[m, kr[kz, k0] r0];
BJp10 = BesselJp[m, kr[kz, k1] r0];
BJp11 = BesselJp[m, kr[kz, k1] r1];
BYp10 = BesselYp[m, kr[kz, k1] r0];
BYp11 = BesselYp[m, kr[kz, k1] r1];
HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
M = {{BJ00, 0, -BJ10, -BY10 , 0, 0, 0, 0},
{0, BJ00, 0, 0, -BJ10, -BY10, 0, 0},
{(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2)
BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0))
BJp10, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(
kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, 0, 0},
{(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0)
BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2))
BY10, -((\[Omega] \[Mu]1)/(kr1 r0))
BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10, 0, 0 },
{0, 0, BJ11, BY11 , 0, 0, -HA21, 0},
{0, 0, 0, 0, BJ11, BY11, 0, -HA21},
{0, 0, (\[Omega] \[Epsilon]1)/(kr1 r1)
BJp11, (\[Omega] \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(
kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, (
I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (
m kz)/(\[Alpha]r2^2 r1^2) HA21},
{0, 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2)
BY11, (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(
kr1 r1) BYp11, (m kz)/(\[Alpha]r2^2 r1^2) HA21, (
I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) HAp21}
} /. opt;
equ = Det[M];
Return[equ];
]

Do[
n0 = Sqrt[
1 + (0.68671749* lambda^2)/(lambda^2 -
0.072675189^2) + (0.43481505* lambda^2)/(lambda^2 -
0.11514351^2) + (0.89656582* lambda^2)/(lambda^2 -
10.002398^2)];
n1 = Sqrt[
1 + (0.6961663* lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
lambda^2)/(lambda^2 - 9.896161^2)];
n2 = 1.0;
opt = {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
r1 -> 62.5, \[Epsilon]0 -> n0^2, \[Mu]0 -> 1., \[Epsilon]1 ->
n1^2, \[Mu]1 -> 1., \[Epsilon]2 -> n2^2, \[Mu]2 -> 1., kz -> y};
sol2 = FindRoot[f[y*(2 Pi/lambda), opt] == 0, {y, 1.4435}];
Print[FullForm[Re[sol2[[1, 2]]]]],
{lambda, 1.54, 1.56, 0.001}]

以上是部分程式碼,從1.54~1.56每次加0.001在1.4435附近求解,會求出21組解。現在想要
每算完一組解就以這個解當新的值繼續往下算;例如說1.54算出1.4480196760169795,
1.541就以這個值往下算,之後的以此類推。請問這樣程式碼要怎改比較好呢?謝謝!

[軟體熟悉度]:
低(1~3個月)

-----------------------------------------------------------------------------

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.41.12
推 chungyuandye:沒有f的定義  07/30 10:54
※ 編輯: af2486 來自: 111.252.204.176 (07/30 23:00)
→ af2486:已附上完整程式碼  07/30 23:02

[自動轉寄] [程式] 有關mathematica求解的一個問題

作者: af2486 (我喜歡旅行) 看板: Statistics
標題: [程式] 有關mathematica求解的一個問題
時間: Thu Jul 29 17:26:11 2010


------------------------------------------------------------------------

[軟體程式類別]:Mathematica
請填入軟體程式類別 例如SAS、SPSS、R、EVIEWS...等

[程式問題]:
在用mathematica牛頓法求解時,會先給個固定值讓程式在那值附近求解(一連串的多組解)。
不過後來發現往往後面求出的解會跑掉,因此現在要設定每次求解都以上一個算出來的值
當作新的求解範圍。不過我不知道該用什麼指令好,有人能給個方向嗎?

xiLimit = 15.;
Hankel1[m_, x_] :=
If[Abs[x] < xiLimit, BesselJ[m, x] + I BesselY[m, x],
Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
BesselJp[m_, x_] :=
If[Abs[x] < xiLimit,
D[BesselJ[m, x1],
x1] /. {x1 -> x}, -Sqrt[2/(Pi*x)] Sin[(x - m/2*Pi - Pi/4)]];
BesselYp[m_, x_] :=
If[Abs[x] < xiLimit, D[BesselY[m, x1], x1] /. {x1 -> x},
Sqrt[2/(Pi*x)] Cos[(x - m/2*Pi - Pi/4)]];
Hankel1p[m_, x_] :=
If[Abs[x] < xiLimit, D[Hankel1[m, x1], x1] /. {x1 -> x},
I*Sqrt[2/(Pi*x)] Exp[I*(x - m/2*Pi - Pi/4)]];
kr[kz_, k_] := Sqrt[k^2 - kz^2];
\[Alpha]r[kz_, k_] := Sqrt[kz^2 - k^2];

f[kz_, opt_] := Module[{sub},
k0 = \[Omega] Sqrt[\[Epsilon]0 \[Mu]0] /. opt;
k1 = \[Omega] Sqrt[\[Epsilon]1 \[Mu]1] /. opt;
k2 = \[Omega] Sqrt[\[Epsilon]2 \[Mu]2] /. opt;
r0 = r0 /. opt;
r1 = r1 /. opt;
m = m /. opt;
kr0 = kr[kz, k0];
kr1 = kr[kz, k1];
\[Alpha]r2 = \[Alpha]r[kz, k2];
BJ00 = BesselJ[m, kr[kz, k0] r0];
BJ10 = BesselJ[m, kr[kz, k1] r0];
BJ11 = BesselJ[m, kr[kz, k1] r1];
BY10 = BesselY[m, kr[kz, k1] r0];
BY11 = BesselY[m, kr[kz, k1] r1];
BJp00 = BesselJp[m, kr[kz, k0] r0];
BJp10 = BesselJp[m, kr[kz, k1] r0];
BJp11 = BesselJp[m, kr[kz, k1] r1];
BYp10 = BesselYp[m, kr[kz, k1] r0];
BYp11 = BesselYp[m, kr[kz, k1] r1];
HA21 = Hankel1[m, I \[Alpha]r[kz, k2] r1];
HAp21 = Hankel1p[m, I \[Alpha]r[kz, k2] r1];
M = {{BJ00, 0, -BJ10, -BY10 , 0, 0, 0, 0},
{0, BJ00, 0, 0, -BJ10, -BY10, 0, 0},
{(\[Omega] \[Epsilon]0)/(kr0 r0) BJp00, (m kz)/(kr0^2 r0^2)
BJ00, -((\[Omega] \[Epsilon]1)/(kr1 r0))
BJp10, -((\[Omega] \[Epsilon]1)/(kr1 r0)) BYp10, -((m kz)/(
kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2)) BY10, 0, 0},
{(m kz)/(kr0^2 r0^2) BJ00, (\[Omega] \[Mu]0)/(kr0 r0)
BJp00, -((m kz)/(kr1^2 r0^2)) BJ10, -((m kz)/(kr1^2 r0^2))
BY10, -((\[Omega] \[Mu]1)/(kr1 r0))
BJp10, -((\[Omega] \[Mu]1)/(kr1 r0)) BYp10, 0, 0 },
{0, 0, BJ11, BY11 , 0, 0, -HA21, 0},
{0, 0, 0, 0, BJ11, BY11, 0, -HA21},
{0, 0, (\[Omega] \[Epsilon]1)/(kr1 r1)
BJp11, (\[Omega] \[Epsilon]1)/(kr1 r1) BYp11, (m kz)/(
kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2) BY11, (
I \[Omega] \[Epsilon]2)/(\[Alpha]r2 r1) HAp21, (
m kz)/(\[Alpha]r2^2 r1^2) HA21},
{0, 0, (m kz)/(kr1^2 r1^2) BJ11, (m kz)/(kr1^2 r1^2)
BY11, (\[Omega] \[Mu]1)/(kr1 r1) BJp11, (\[Omega] \[Mu]1)/(
kr1 r1) BYp11, (m kz)/(\[Alpha]r2^2 r1^2) HA21, (
I \[Omega] \[Mu]2)/(\[Alpha]r2 r1) HAp21}
} /. opt;
equ = Det[M];
Return[equ];
]

Do[
n0 = Sqrt[
1 + (0.68671749* lambda^2)/(lambda^2 -
0.072675189^2) + (0.43481505* lambda^2)/(lambda^2 -
0.11514351^2) + (0.89656582* lambda^2)/(lambda^2 -
10.002398^2)];
n1 = Sqrt[
1 + (0.6961663* lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
lambda^2)/(lambda^2 - 9.896161^2)];
n2 = 1.0;
opt = {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
r1 -> 62.5, \[Epsilon]0 -> n0^2, \[Mu]0 -> 1., \[Epsilon]1 ->
n1^2, \[Mu]1 -> 1., \[Epsilon]2 -> n2^2, \[Mu]2 -> 1., kz -> y};
sol2 = FindRoot[f[y*(2 Pi/lambda), opt] == 0, {y, 1.4435}];
Print[FullForm[Re[sol2[[1, 2]]]]],
{lambda, 1.54, 1.56, 0.001}]

以上是部分程式碼,從1.54~1.56每次加0.001在1.4435附近求解,會求出21組解。現在想要
每算完一組解就以這個解當新的值繼續往下算;例如說1.54算出1.4480196760169795,
1.541就以這個值往下算,之後的以此類推。請問這樣程式碼要怎改比較好呢?謝謝!

[軟體熟悉度]:
低(1~3個月)

-----------------------------------------------------------------------------

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.41.12
推 chungyuandye:沒有f的定義  07/30 10:54
※ 編輯: af2486 來自: 111.252.204.176 (07/30 23:00)
→ af2486:已附上完整程式碼  07/30 23:02

2010年7月29日 星期四

Re: [問題] mathematica 的block用法和三個問題

作者: Passions (passion)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sun Jul 25 16:39:26 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《Passions (passion)》之銘言:
: : 謝謝你的回信!
: : 不過仍然有幾個問題:
: : 一、關於 Block 的用法,仍有一點不清楚。
: : 原式中的 Block[{A},B ; C ; D ]
: : 分號; 在 mathematica 中,應該是代表指令結束,
: : 但在這邊還是被包在 Block 裡面,這真的是非常奇怪,不知道語法是什麼。
: 忘了說,;在mathematica表示指令結束但不輸出,
: 不加分號就是指令結束而且輸出!
: qq=(a+b)^2;ss=(a+b)^2
: qq
: ss
: 但這個在Block、Modual、With裡面就不行
: 指令動作之前一定要加分號
: 有問題在到我blog留言討論吧∼

真的是太謝謝你了! 我好像看懂了!

若程式碼為: f[x_]:=Block[{A},B ; C ; D ]

則 Block 的 "body" 是 B;C;D (還是只有 B?不過感覺是BCD都屬於Block的body)

而 {A} 是用來形容哪些變數是不受外界影響的。


然後,因為只輸出D的值,所以也就等同於 f[x_]=D ,而 B、C 只是用來幫助運算

不曉得這樣子理解有沒有錯…


--
我有到你的部落格留言喔~ :)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.123.137

(Passions) Re: [問題] mathematica 的block用法和三個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sat Jul 24 19:32:20 2010


※ 引述《Passions (passion)》之銘言:
: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : {r,n,t,y}是區域變數,只有在f這個函數才有作用,一旦跳出f它什麼都不是
: : 舉個例子
: : g[x_]:=Block[{w=10,xx=x},2xx+w]
: : 執行一下
: : g[10]
: : {ww,xx}
: : g[10]=30
: : {ww,xx}={ww,xx}
: : 不過為了怕之前L,G,K這些變數已經有定義過,建議改成這樣
: : f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{LL=L,GG=G,KK=K,r,n,t,y},
: : {r}=NDSolve[{包含n,t,LL,GG的微分方程式,n[0]==K},n,{t,0,10}];
: : y=n[a] /. r;Plus @@ ((b-y)^2)]
: : @@=Apply,Plus @@ ((b-y)^2)] =>把加法套用在((b-y)^2)上
: 謝謝你的回信!
: 不過仍然有幾個問題:
: 一、關於 Block 的用法,仍有一點不清楚。
: 原式中的 Block[{A},B ; C ; D ]
: 分號; 在 mathematica 中,應該是代表指令結束,
: 但在這邊還是被包在 Block 裡面,這真的是非常奇怪,不知道語法是什麼。

忘了說,;在mathematica表示指令結束但不輸出,
不加分號就是指令結束而且輸出!
qq=(a+b)^2;ss=(a+b)^2
qq
ss

但這個在Block、Modual、With裡面就不行
指令動作之前一定要加分號

有問題在到我blog留言討論吧∼


--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.58

(Passions) Re: [問題] mathematica 的block用法和三個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sat Jul 24 19:17:36 2010

※ 引述《Passions (passion)》之銘言:
: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : {r,n,t,y}是區域變數,只有在f這個函數才有作用,一旦跳出f它什麼都不是
: : 舉個例子
: : g[x_]:=Block[{w=10,xx=x},2xx+w]
: : 執行一下
: : g[10]
: : {ww,xx}
: : g[10]=30
: : {ww,xx}={ww,xx}
: : 不過為了怕之前L,G,K這些變數已經有定義過,建議改成這樣
: : f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{LL=L,GG=G,KK=K,r,n,t,y},
: : {r}=NDSolve[{包含n,t,LL,GG的微分方程式,n[0]==K},n,{t,0,10}];
: : y=n[a] /. r;Plus @@ ((b-y)^2)]
: : @@=Apply,Plus @@ ((b-y)^2)] =>把加法套用在((b-y)^2)上
: 謝謝你的回信!
: 不過仍然有幾個問題:
: 一、關於 Block 的用法,仍有一點不清楚。
: 原式中的 Block[{A},B ; C ; D ]
: 分號; 在 mathematica 中,應該是代表指令結束,

執行B->執行C->最後輸出D
你就當成你在寫程式就好了∼∼

: 但在這邊還是被包在 Block 裡面,這真的是非常奇怪,不知道語法是什麼。
: 二、Plus @@ ((b-y)^2)]
: 這個跑出來的結果會是 2 + b - y
: 這真的是非常奇怪,直接把它當2看,這樣不就把平方的意義給弄掉了嗎

這個一點都不奇怪,因為在Mathematica裡面
如果你把((b-y)^2)當成一個List,那第一個元素是b,第二個元素是-y,
第三個元素2,你把加法套到這三個元素當然是2+b-y

: 不過又回到第一個問題來,還是他在Block 裡能表現出特別的意義來?
: 三、舉的這個例子我能看懂
: 跑 g[x_]:=Block[{w=10,xx=x},2xx+w]
: g[10] 會得到30。
: 但是例子中的 {ww,xx}和 {ww,xx}={ww,xx}
: : g[10]
: : {ww,xx}
: : g[10]=30
: : {ww,xx}={ww,xx}
: 是什麼意思呢?
ww,xx都是區域變數,所以跳出g以外那根本沒有被定義
所以還是只傳回ww,xx

: 不好意思問題蠻多的 ><
: 如果能抽空幫忙回答的話,我會非常感激的
: 感謝!


--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.58

(Passions) Re: [問題] mathematica 的block用法和三個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sat Jul 24 07:15:47 2010

※ 引述《Passions (passion)》之銘言:
: 想請問 Block 的用法是什麼?
: 這一段程式碼我看了好久,也有找 help 來看,但一直都看不懂
: 可以請高手幫我解答一下嗎:
: f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{r,n,t,y},
: {r}=NDSolve[{包含n,t,L,G的微分方程式,n[0]==K},n,{t,0,10}];
: y=n[a] /. r;Plus @@ ((b-y)^2)]
: ...
: 最後目的是對 f 這個自訂函數找 FindMinimum.
: 我的問題是:
: 一、Block 是不是用來創造出一個環境是使得裡面的數值不受外界影響,
: 然後指定不受影響的數為 r,n,t,y。不太能了解用在這邊的意義為何?
: 二、思考流程是什麼?是先從 NDSolve解出數值,再丟給 Block
: 做不知道什麼的用途,之後再傳給 f 函數?@@
: 三、Plus @@ 這個用法是怎麼去做計算的呢,我開新頁去測試,仍然理不出頭緒
: 請問有沒有大大能夠幫忙回答的呢?因為還蠻急的,找了不少人問都沒有結果。
: 感謝!

{r,n,t,y}是區域變數,只有在f這個函數才有作用,一旦跳出f它什麼都不是
舉個例子
g[x_]:=Block[{w=10,xx=x},2xx+w]
執行一下

g[10]
{ww,xx}

g[10]=30
{ww,xx}={ww,xx}

不過為了怕之前L,G,K這些變數已經有定義過,建議改成這樣
f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{LL=L,GG=G,KK=K,r,n,t,y},
{r}=NDSolve[{包含n,t,LL,GG的微分方程式,n[0]==K},n,{t,0,10}];
y=n[a] /. r;Plus @@ ((b-y)^2)]

@@=Apply,Plus @@ ((b-y)^2)] =>把加法套用在((b-y)^2)上


--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.58

(af2486) Re: [程式] 有關mathematica求解的一個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [程式] 有關mathematica求解的一個問題
時間: Fri Jul 30 08:56:42 2010

※ 引述《af2486 (我喜歡旅行)》之銘言:
: ------------------------------------------------------------------------
: [軟體程式類別]:Mathematica
: 請填入軟體程式類別 例如SAS、SPSS、R、EVIEWS...等
: [程式問題]:
: 在用mathematica牛頓法求解時,會先給個固定值讓程式在那值附近求解(一連串的多組解)。
: 不過後來發現往往後面求出的解會跑掉,因此現在要設定每次求解都以上一個算出來的值
: 當作新的求解範圍。不過我不知道該用什麼指令好,有人能給個方向嗎?
: Do[
: n0 = Sqrt[
: 1 + (0.68671749* lambda^2)/(lambda^2 -
: 0.072675189^2) + (0.43481505* lambda^2)/(lambda^2 -
: 0.11514351^2) + (0.89656582* lambda^2)/(lambda^2 -
: 10.002398^2)];
: n1 = Sqrt[
: 1 + (0.6961663* lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
: lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
: lambda^2)/(lambda^2 - 9.896161^2)];
: n2 = 1.0;
: opt = {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
: r1 -> 62.5, \[Epsilon]0 -> n0^2, \[Mu]0 -> 1., \[Epsilon]1 ->
: n1^2, \[Mu]1 -> 1., \[Epsilon]2 -> n2^2, \[Mu]2 -> 1., kz -> y};
: sol2 = FindRoot[f[y*(2 Pi/lambda), opt] == 0, {y, 1.4435}];
: Print[FullForm[Re[sol2[[1, 2]]]]],
: {lambda, 1.54, 1.56, 0.001}]
: 以上是部分程式碼,從1.54~1.56每次加0.001在1.4435附近求解,會求出21組解。現在想要
: 每算完一組解就以這個解當新的值繼續往下算;例如說1.54算出1.4480196760169795,
: 1.541就以這個值往下算,之後的以此類推。請問這樣程式碼要怎改比較好呢?謝謝!
: [軟體熟悉度]:
: 低(1~3個月)
: -----------------------------------------------------------------------------


沒有你的f,隨便假設一下

{#, y} /. FindRoot[n2 y^2 + 4 n1 y + n0 /. lambda -> #, {y, 1}] & /@
Range[1.54, 1.56, 0.0001]

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.132.73

[自動轉寄] (af2486) Re: [程式] 有關mathematica求解的一個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [程式] 有關mathematica求解的一個問題
時間: Fri Jul 30 08:56:42 2010

※ 引述《af2486 (我喜歡旅行)》之銘言:
: ------------------------------------------------------------------------
: [軟體程式類別]:Mathematica
: 請填入軟體程式類別 例如SAS、SPSS、R、EVIEWS...等
: [程式問題]:
: 在用mathematica牛頓法求解時,會先給個固定值讓程式在那值附近求解(一連串的多組解)。
: 不過後來發現往往後面求出的解會跑掉,因此現在要設定每次求解都以上一個算出來的值
: 當作新的求解範圍。不過我不知道該用什麼指令好,有人能給個方向嗎?
: Do[
: n0 = Sqrt[
: 1 + (0.68671749* lambda^2)/(lambda^2 -
: 0.072675189^2) + (0.43481505* lambda^2)/(lambda^2 -
: 0.11514351^2) + (0.89656582* lambda^2)/(lambda^2 -
: 10.002398^2)];
: n1 = Sqrt[
: 1 + (0.6961663* lambda^2)/(lambda^2 - 0.0684043^2) + (0.4079426*
: lambda^2)/(lambda^2 - 0.1162414^2) + (0.8974794*
: lambda^2)/(lambda^2 - 9.896161^2)];
: n2 = 1.0;
: opt = {m -> 1, \[Omega] -> 2 Pi/lambda, r0 -> 4.1,
: r1 -> 62.5, \[Epsilon]0 -> n0^2, \[Mu]0 -> 1., \[Epsilon]1 ->
: n1^2, \[Mu]1 -> 1., \[Epsilon]2 -> n2^2, \[Mu]2 -> 1., kz -> y};
: sol2 = FindRoot[f[y*(2 Pi/lambda), opt] == 0, {y, 1.4435}];
: Print[FullForm[Re[sol2[[1, 2]]]]],
: {lambda, 1.54, 1.56, 0.001}]
: 以上是部分程式碼,從1.54~1.56每次加0.001在1.4435附近求解,會求出21組解。現在想要
: 每算完一組解就以這個解當新的值繼續往下算;例如說1.54算出1.4480196760169795,
: 1.541就以這個值往下算,之後的以此類推。請問這樣程式碼要怎改比較好呢?謝謝!
: [軟體熟悉度]:
: 低(1~3個月)
: -----------------------------------------------------------------------------


沒有你的f,隨便假設一下

{#, y} /. FindRoot[n2 y^2 + 4 n1 y + n0 /. lambda -> #, {y, 1}] & /@
Range[1.54, 1.56, 0.0001]

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.132.73

2010年7月27日 星期二

Re: [問題] 請問插入eps但漏字的情形??

作者: chungyuandye (養花種魚數月亮賞星星) 看板: LaTeX
標題: Re: [問題] 請問插入eps但漏字的情形??
時間: Tue Jul 27 14:47:58 2010

※ 引述《roloc (回到原點)》之銘言:
: ※ 引述《marblepillar (櫻吹雪遍地殘紅)》之銘言:
: : 首先我用Mathematica畫圖存成eps檔,
: : 然後在Latex插入時發現有漏字的狀況@@
: : 舉例來說:
: : 圖中有五條線是不同參數q的結果,
: : 所以我圖中有標示q=1,q=2,q=3,q=4,q=5 對應到不同顏色的線,
: : 但是最後pdf只顯示q= ,q=2,q=3,q=4,q=5
: : 原本是1的地方變成空白了!
: 基本上建議使用 psfrag 這個 package,
: 也就是說,你在 mathematica 上註明 A B C D E,
: 然後在 tex 上下指令 \psfrag{A}{$q=1$} 等等。
: 如果還不太懂的話我再寫清楚一點。
: : 我試過把Mathematica畫的圖直接存成jpg檔就無此問題,
: : 但是jpg的解析度不夠好,所以還是想用eps。
: : 請問有辦法解決嗎?
: : 非常感謝囉~<(_ _)>

http://wwwth.mppmu.mpg.de/members/jgrosse/mathpsfrag/

有人在mathematica寫了一個的配合tex上psfrag的package
這個package會自動幫你把圖檔上文字產生psfrag的格式
在tex上直接include進去即可!

如果想要簡單一點的方法,在Mathematica中程式就先不要標示文字
程式跑完後再用drawing tools自己畫,也可以避免文字被檔到!

--
我打研究室走過 那獨坐電腦前的容顏如苦瓜的糾結
靈感不來 長壽的煙霧不散
研究室如小小的寂寞的城 恰如商管的電梯向晚

http://chungyuandye.twbbs.org

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.13
推 marblepillar:感謝分享兩個方法:)  07/28 03:15

2010年7月25日 星期日

[自動轉寄] Re: [問題] mathematica 的block用法和三個問題

作者: Passions (passion)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sun Jul 25 16:39:26 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《Passions (passion)》之銘言:
: : 謝謝你的回信!
: : 不過仍然有幾個問題:
: : 一、關於 Block 的用法,仍有一點不清楚。
: : 原式中的 Block[{A},B ; C ; D ]
: : 分號; 在 mathematica 中,應該是代表指令結束,
: : 但在這邊還是被包在 Block 裡面,這真的是非常奇怪,不知道語法是什麼。
: 忘了說,;在mathematica表示指令結束但不輸出,
: 不加分號就是指令結束而且輸出!
: qq=(a+b)^2;ss=(a+b)^2
: qq
: ss
: 但這個在Block、Modual、With裡面就不行
: 指令動作之前一定要加分號
: 有問題在到我blog留言討論吧∼

真的是太謝謝你了! 我好像看懂了!

若程式碼為: f[x_]:=Block[{A},B ; C ; D ]

則 Block 的 "body" 是 B;C;D (還是只有 B?不過感覺是BCD都屬於Block的body)

而 {A} 是用來形容哪些變數是不受外界影響的。


然後,因為只輸出D的值,所以也就等同於 f[x_]=D ,而 B、C 只是用來幫助運算

不曉得這樣子理解有沒有錯…


--
我有到你的部落格留言喔~ :)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.123.137

2010年7月24日 星期六

[自動轉寄] (Passions) Re: [問題] mathematica 的block用法和三個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sat Jul 24 19:32:20 2010


※ 引述《Passions (passion)》之銘言:
: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : {r,n,t,y}是區域變數,只有在f這個函數才有作用,一旦跳出f它什麼都不是
: : 舉個例子
: : g[x_]:=Block[{w=10,xx=x},2xx+w]
: : 執行一下
: : g[10]
: : {ww,xx}
: : g[10]=30
: : {ww,xx}={ww,xx}
: : 不過為了怕之前L,G,K這些變數已經有定義過,建議改成這樣
: : f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{LL=L,GG=G,KK=K,r,n,t,y},
: : {r}=NDSolve[{包含n,t,LL,GG的微分方程式,n[0]==K},n,{t,0,10}];
: : y=n[a] /. r;Plus @@ ((b-y)^2)]
: : @@=Apply,Plus @@ ((b-y)^2)] =>把加法套用在((b-y)^2)上
: 謝謝你的回信!
: 不過仍然有幾個問題:
: 一、關於 Block 的用法,仍有一點不清楚。
: 原式中的 Block[{A},B ; C ; D ]
: 分號; 在 mathematica 中,應該是代表指令結束,
: 但在這邊還是被包在 Block 裡面,這真的是非常奇怪,不知道語法是什麼。

忘了說,;在mathematica表示指令結束但不輸出,
不加分號就是指令結束而且輸出!
qq=(a+b)^2;ss=(a+b)^2
qq
ss

但這個在Block、Modual、With裡面就不行
指令動作之前一定要加分號

有問題在到我blog留言討論吧∼


--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.58

[自動轉寄] (Passions) Re: [問題] mathematica 的block用法和三個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sat Jul 24 19:17:36 2010

※ 引述《Passions (passion)》之銘言:
: ※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: : {r,n,t,y}是區域變數,只有在f這個函數才有作用,一旦跳出f它什麼都不是
: : 舉個例子
: : g[x_]:=Block[{w=10,xx=x},2xx+w]
: : 執行一下
: : g[10]
: : {ww,xx}
: : g[10]=30
: : {ww,xx}={ww,xx}
: : 不過為了怕之前L,G,K這些變數已經有定義過,建議改成這樣
: : f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{LL=L,GG=G,KK=K,r,n,t,y},
: : {r}=NDSolve[{包含n,t,LL,GG的微分方程式,n[0]==K},n,{t,0,10}];
: : y=n[a] /. r;Plus @@ ((b-y)^2)]
: : @@=Apply,Plus @@ ((b-y)^2)] =>把加法套用在((b-y)^2)上
: 謝謝你的回信!
: 不過仍然有幾個問題:
: 一、關於 Block 的用法,仍有一點不清楚。
: 原式中的 Block[{A},B ; C ; D ]
: 分號; 在 mathematica 中,應該是代表指令結束,

執行B->執行C->最後輸出D
你就當成你在寫程式就好了∼∼

: 但在這邊還是被包在 Block 裡面,這真的是非常奇怪,不知道語法是什麼。
: 二、Plus @@ ((b-y)^2)]
: 這個跑出來的結果會是 2 + b - y
: 這真的是非常奇怪,直接把它當2看,這樣不就把平方的意義給弄掉了嗎

這個一點都不奇怪,因為在Mathematica裡面
如果你把((b-y)^2)當成一個List,那第一個元素是b,第二個元素是-y,
第三個元素2,你把加法套到這三個元素當然是2+b-y

: 不過又回到第一個問題來,還是他在Block 裡能表現出特別的意義來?
: 三、舉的這個例子我能看懂
: 跑 g[x_]:=Block[{w=10,xx=x},2xx+w]
: g[10] 會得到30。
: 但是例子中的 {ww,xx}和 {ww,xx}={ww,xx}
: : g[10]
: : {ww,xx}
: : g[10]=30
: : {ww,xx}={ww,xx}
: 是什麼意思呢?
ww,xx都是區域變數,所以跳出g以外那根本沒有被定義
所以還是只傳回ww,xx

: 不好意思問題蠻多的 ><
: 如果能抽空幫忙回答的話,我會非常感激的
: 感謝!


--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.58

[自動轉寄] Re: [問題] mathematica 的block用法和三個問題

作者: Passions (passion)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sat Jul 24 15:24:23 2010

※ 引述《chungyuandye (養花種魚數月亮賞星星)》之銘言:
: ※ 引述《Passions (passion)》之銘言:
: : 想請問 Block 的用法是什麼?
: : 這一段程式碼我看了好久,也有找 help 來看,但一直都看不懂
: : 可以請高手幫我解答一下嗎:
: : f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{r,n,t,y},
: : {r}=NDSolve[{包含n,t,L,G的微分方程式,n[0]==K},n,{t,0,10}];
: : y=n[a] /. r;Plus @@ ((b-y)^2)]
: : ...
: : 最後目的是對 f 這個自訂函數找 FindMinimum.
: : 我的問題是:
: : 一、Block 是不是用來創造出一個環境是使得裡面的數值不受外界影響,
: : 然後指定不受影響的數為 r,n,t,y。不太能了解用在這邊的意義為何?
: : 二、思考流程是什麼?是先從 NDSolve解出數值,再丟給 Block
: : 做不知道什麼的用途,之後再傳給 f 函數?@@
: : 三、Plus @@ 這個用法是怎麼去做計算的呢,我開新頁去測試,仍然理不出頭緒
: : 請問有沒有大大能夠幫忙回答的呢?因為還蠻急的,找了不少人問都沒有結果。
: : 感謝!
: {r,n,t,y}是區域變數,只有在f這個函數才有作用,一旦跳出f它什麼都不是
: 舉個例子
: g[x_]:=Block[{w=10,xx=x},2xx+w]
: 執行一下
: g[10]
: {ww,xx}
: g[10]=30
: {ww,xx}={ww,xx}
: 不過為了怕之前L,G,K這些變數已經有定義過,建議改成這樣
: f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{LL=L,GG=G,KK=K,r,n,t,y},
: {r}=NDSolve[{包含n,t,LL,GG的微分方程式,n[0]==K},n,{t,0,10}];
: y=n[a] /. r;Plus @@ ((b-y)^2)]
: @@=Apply,Plus @@ ((b-y)^2)] =>把加法套用在((b-y)^2)上

謝謝你的回信!

不過仍然有幾個問題:

一、關於 Block 的用法,仍有一點不清楚。

原式中的 Block[{A},B ; C ; D ]

分號; 在 mathematica 中,應該是代表指令結束,

但在這邊還是被包在 Block 裡面,這真的是非常奇怪,不知道語法是什麼。

二、Plus @@ ((b-y)^2)]

這個跑出來的結果會是 2 + b - y

這真的是非常奇怪,直接把它當2看,這樣不就把平方的意義給弄掉了嗎

不過又回到第一個問題來,還是他在Block 裡能表現出特別的意義來?

三、舉的這個例子我能看懂

跑 g[x_]:=Block[{w=10,xx=x},2xx+w]

g[10] 會得到30。

但是例子中的 {ww,xx}和 {ww,xx}={ww,xx}

: g[10]
: {ww,xx}
: g[10]=30
: {ww,xx}={ww,xx}

是什麼意思呢?

不好意思問題蠻多的 ><

如果能抽空幫忙回答的話,我會非常感激的

感謝!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.82.160

2010年7月23日 星期五

[自動轉寄] (Passions) Re: [問題] mathematica 的block用法和三個問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [問題] mathematica 的block用法和三個問題
時間: Sat Jul 24 07:15:47 2010

※ 引述《Passions (passion)》之銘言:
: 想請問 Block 的用法是什麼?
: 這一段程式碼我看了好久,也有找 help 來看,但一直都看不懂
: 可以請高手幫我解答一下嗎:
: f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{r,n,t,y},
: {r}=NDSolve[{包含n,t,L,G的微分方程式,n[0]==K},n,{t,0,10}];
: y=n[a] /. r;Plus @@ ((b-y)^2)]
: ...
: 最後目的是對 f 這個自訂函數找 FindMinimum.
: 我的問題是:
: 一、Block 是不是用來創造出一個環境是使得裡面的數值不受外界影響,
: 然後指定不受影響的數為 r,n,t,y。不太能了解用在這邊的意義為何?
: 二、思考流程是什麼?是先從 NDSolve解出數值,再丟給 Block
: 做不知道什麼的用途,之後再傳給 f 函數?@@
: 三、Plus @@ 這個用法是怎麼去做計算的呢,我開新頁去測試,仍然理不出頭緒
: 請問有沒有大大能夠幫忙回答的呢?因為還蠻急的,找了不少人問都沒有結果。
: 感謝!

{r,n,t,y}是區域變數,只有在f這個函數才有作用,一旦跳出f它什麼都不是
舉個例子
g[x_]:=Block[{w=10,xx=x},2xx+w]
執行一下

g[10]
{ww,xx}

g[10]=30
{ww,xx}={ww,xx}

不過為了怕之前L,G,K這些變數已經有定義過,建議改成這樣
f[L_?NumberQ,G_?NumberQ,K_NumberQ]:=Block[{LL=L,GG=G,KK=K,r,n,t,y},
{r}=NDSolve[{包含n,t,LL,GG的微分方程式,n[0]==K},n,{t,0,10}];
y=n[a] /. r;Plus @@ ((b-y)^2)]

@@=Apply,Plus @@ ((b-y)^2)] =>把加法套用在((b-y)^2)上


--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.58

2010年7月18日 星期日

Re: [問題] SPSS曲線迴歸繪圖

作者: chungyuandye (養花種魚數月亮看星星) 看板: Statistics
標題: Re: [問題] SPSS曲線迴歸繪圖
時間: Sun May 18 14:38:32 2008

※ 引述《pigchang (300餘敗a象棋肉腳)》之銘言:
: 我用SPSS(v.13) 的curve estimate做曲線回歸 (Quadradic)
: 已分別求出VAR1, VAR2, VAR3 對 依變數Y 的迴歸線
: 但output是三個分開的圖...
: 我想觀察三條迴歸線之間的交點
: 不知該如何將這三條迴歸線畫在同一張圖??
: (i.e. 將三張圖重疊在一起的意思)
: 謝謝指點!

SCATTER PLOT => Overlay
這樣就可以∼∼

不然直接下語法

GRAPH
/SCATTERPLOT(OVERLAY)=y WITH var1 var2 vae3 (PAIR)
/MISSING=LISTWISE.

--
養花種魚數月亮賞星星

http://chungyuandye.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.189.101

Re: [問題] 殘差分析中的缺適性檢定

作者: chungyuandye (養花種魚數月亮看星星) 看板: Statistics
標題: Re: [問題] 殘差分析中的缺適性檢定
時間: Sun Apr 13 12:05:54 2008

※ 引述《annie7853 (妮妮)》之銘言:
: 缺適性檢定這部分
: 老師上課的時候在這部分講的不是很詳細
: 課本上又只有一個變數x和y
: 但是 根據學長姐考古題出現了3個變數
: 那這樣缺適性檢定是否要一個一個做呢?
: 題目如下:
: model y=Bo+B1X1+B2X2+B3X3+e
: y: 5 4 5 3 2 1
: X1: 1 0 1 0 -1 -1
: X2: 1 1 1 -1 -1 -1
: X3: 1 1 0 0 -1 -1
: 就上列資料 求Lack Of Fit Test alfa=0.05
: 麻煩大家幫我解答一下 謝謝

SPSS要計算Lack Of Fit似乎只能用GLM來計算!

把Y當依變數,X1~X3當共變數!

在選項中勾選lack of fit

Tests of Between-Subjects Effects
Dependent Variable:y
|---------------|-----------------------|--|-----------|-------|----|
|Source |Type III Sum of Squares|df|Mean Square|F |Sig.|
|---------------|-----------------------|--|-----------|-------|----|
|Corrected Model|12.800a |3 |4.267 |16.000 |.059|
|---------------|-----------------------|--|-----------|-------|----|
|Intercept |66.667 |1 |66.667 |250.000|.004|
|---------------|-----------------------|--|-----------|-------|----|
|x1 |1.800 |1 |1.800 |6.750 |.122|
|---------------|-----------------------|--|-----------|-------|----|
|x2 |.229 |1 |.229 |.857 |.452|
|---------------|-----------------------|--|-----------|-------|----|
|x3 |.050 |1 |.050 |.188 |.707|
|---------------|-----------------------|--|-----------|-------|----|
|Error |.533 |2 |.267 | | |
|---------------|-----------------------|--|-----------|-------|----|
|Total |80.000 |6 | | | |
|---------------|-----------------------|--|-----------|-------|----|
|Corrected Total|13.333 |5 | | | |
|---------------|-----------------------|--|-----------|-------|----|
a. R Squared = .960 (Adjusted R Squared = .900)

Lack of Fit Tests
Dependent Variable:y
|-----------|--------------|--|-----------|----|----|
|Source |Sum of Squares|df|Mean Square|F |Sig.|
|-----------|--------------|--|-----------|----|----|
|Lack of Fit|.033 |1 |.033 |.067|.839|
|-----------|--------------|--|-----------|----|----|
|Pure Error |.500 |1 |.500 | | |
|-----------|--------------|--|-----------|----|----|

--
養花種魚數月亮賞星星

http://chungyuandye.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.189.101

Re: [問題] 為 SPSS 的 scatter plot 加上直線

作者: chungyuandye (養花種魚數月亮看星星) 看板: Statistics
標題: Re: [問題] 為 SPSS 的 scatter plot 加上直線
時間: Mon May 12 17:29:34 2008

※ 引述《magicfx (去南半球度假)》之銘言:
: SPSS 16.0
: Graph > Scatter / Dot... > Simple Scatter > Define
: 畫出圖以後
: 我想另外加直線在這張圖上
: 方程已知
: 請要如何另外加上去呢?

圖形按兩下進入編輯模式∼

滑鼠右鍵=>Add a reference line from Equation

在Custom Equation的地方自己打上方程式


--
養花種魚數月亮賞星星

http://chungyuandye.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.189.101

Re: [問題] SPSS-dummy variables的設定

作者: chungyuandye (養花種魚數月亮看星星) 站內: Statistics
標題: Re: [問題] SPSS-dummy variables的設定
時間: Tue Apr 15 12:01:02 2008

※ 引述《p78 (一根稻草換千袋米)》之銘言:
: 想請問Multiple Regression SPSS 15.0 version設定的問題
: 分析統計數據方面我可以處理,但是不知道怎麼設定dummy variables
: 我對於SAS比較熟,不了解SPSS設定的方式
: gender (2個) 和 ethnicity (5個) 是dummy variables.
: 有試過用GLM,2 Way ANOVA 就不用改dummy variables
: 但是我有13 dependent variables,想一次把全部數據跑出來.

以SPSS內部範例檔Cars.sav為例

Step 1. 使用GLM中的多變量分析

Step 2. 依變數選擇mpg, engine, horse
固定因子選擇 origin, cylinder

Ste3. 在模式中選擇自訂,並將主效果移入模式。
若要考慮交互作用,則同時選擇兩個主效果在移入模式中。


Step 4. 選擇參數估計值,這樣報表中會輸出參數估計值。

圖文版
http://chungyuandye.twbbs.org/2008/04/ptt-spss-dummy-variables.html

--
養花種魚數月亮賞星星

http://chungyuandye.twbbs.org

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.189.101
※ 編輯: chungyuandye 來自: 218.173.131.99 (06/28 07:53)

Re: [問題] [SPSS]如何畫 Chi-Square plot?

作者: chungyuandye (養花種魚數月亮看星星) 看板: Statistics
標題: Re: [問題] [SPSS]如何畫 Chi-Square plot?
時間: Sat Mar 22 13:32:52 2008

※ 引述《magicfx (去南半球度假)》之銘言:
: 找來找去
: 好像沒有這個選項
: 只有找到別人用 SAS 寫的 code
: 可是我想要用 SPSS 來畫 chi-square plot
: 請問有這類的 add-ons 可以下載嗎?

SET MXLOOP =99999.
MATRIX.
GET DATA/VARIABLES=X1 to Xp/MISSING=OMIT.
COMPUTE NR=NROW(DATA).
COMPUTE NC=NCOL(DATA).
COMPUTE MEAN=T(CSUM(DATA)/NR).
PRINT MEAN.
COMPUTE SIGMA=(SSCP(DATA)-NR*MEAN*T(MEAN))/(NR-1).
PRINT SIGMA.
COMPUTE MD=MAKE(NR,2,-999).
COMPUTE MDTEMP=MAKE(NR,1,-999).
LOOP I=1 TO NR.
- COMPUTE MD(I,1)=DATA(I,:)*INV(SIGMA)*T(DATA(I,:)).
END LOOP.
COMPUTE MD(:,2)=(RNKORDER(MD(:,1))-0.5)/NR.
SAVE MD /OUTFILE=*.
END MATRIX.
RENAME VARIABLES COL1= MD COL2= CHISQUARE.
GRAPH
/SCATTERPLOT(BIVAR)=MD WITH CHISQUARE /MISSING=LISTWISE
/TITLE= 'The chi-square plot of the ordered distances.'.

不知道有沒有錯,有錯請指教。

Reference:
http://ieeexplore.ieee.org/iel5/8766/27769/01237706.pdf?arnumber=1237706

--
養花種魚數月亮賞星星

http://www.google.com.tw/search?hl=zh-TW&q=spss+box+cox&btnG=Google


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.189.101
※ 編輯: chungyuandye 來自: 118.232.189.101 (03/22 13:39)
※ 編輯: chungyuandye 來自: 118.232.189.101 (03/22 13:56)
推 magicfx:喔謝謝 我今晚來研究一下  03/24 19:57

Re: [問題] 複選題轉成連續變項

作者: chungyuandye (養花種魚數月亮看星星) 看板: Statistics
標題: Re: [問題] 複選題轉成連續變項
時間: Fri Mar 21 12:32:31 2008

※ 引述《cansansiow (我)》之銘言:
: 問卷題目為:在這段期間,請問您有沒有去參加下列活動?(複選)
: 1、捐錢 2、穿紅衣 3、靜坐 4、915圍城 5、天下圍攻 6、遍地開花
: 92、沒有 95、拒答
: 今欲以此為多元迴歸之依變項,參加一項得一分,兩項得兩分...以此類推,請問眾
: 強者們,要如何將此名目變項轉換成連續變項?
: 謝謝~

Q1_1=捐錢, Q1_1=1:有選;Q1_1=0:沒選
其他的依此類推

開啟一個syntax檔,

IF (Q1_95 = 0) temp=Q1_1+Q1_2+Q1_3+.....Q1_92.
EXECUTE.

工具列=>Run=>All

--
養花種魚數月亮賞星星

http://chungyuandye.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.189.101
推 cansansiow:謝謝歐  03/21 21:13

[自動轉寄] Re: [問題] [SPSS]Q-Q plot 的 X/Y 軸如何對調?

作者: chungyuandye (養花種魚數月亮看星星) 看板: Statistics
標題: Re: [問題] [SPSS]Q-Q plot 的 X/Y 軸如何對調?
時間: Sun Mar 16 17:10:52 2008

※ 引述《magicfx (去南半球度假)》之銘言:
: 我想要把 SPSS 16 產生的 Q-Q plot 的 observed value 和 expected value 對調
: SPSS 預設把 Observed value 放在 x 軸
: expected value 放在 y 軸
: 但是我想要把 Observed value 改放在 y 軸
: expected value 放在 x 軸
: 請問該怎麼做呢?

不知道其他版本可不可以,SPSS 16是可以

Step 1. 先畫出Q-Q Plot

Step 2. 在Q-Q Plot上點兩下,進入圖形編輯

Step 3. 在Y軸上點兩下,選擇滑鼠右鍵

Step 4. Transpose Chart

只是這樣作,有什麼特別意義??

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.189.101
推 magicfx:只是要跟課本的表達方式一致罷了 , 3q  03/17 23:43

[自動轉寄] Re: [問題] 迴歸裡的多元共線

作者: chungyuandye (chungyuandye) 看板: Statistics
標題: Re: [問題] 迴歸裡的多元共線
時間: Sat Jan 28 10:58:19 2006

※ 引述《latique (Afro)》之銘言:
: ※ 引述《sevenkiller (惡狠很的一發)》之銘言:
: : 就是自變項間是否有高度相關
: : 如果自變項間高度相關的話 會影響到對迴歸係數之假設檢測
: : 實際上操作的話 SPSS所提供之collinearity的統計包括
: : Tolerance VIF和Condition Index等
: : 這些統計是有關連性的 如Tolerance與VIF就是互為倒數 如果是Tolerance越小
: : 就表示該自變項與其他自變項間之共線性越高
: : 總而言之 共線性在分析當中是低比較好 共線性一高 就代表你的迴歸有問題
: : 解釋起來就很麻煩了
: 所以當各自變項出現共線性的關係
: 表示之間有高度相關
: 對於解釋依變項也較沒有解釋力的意思嗎∼∼

Y=b0+b1*X1+b2*X2+....+bk*Xk

Xi=c0+c1*X1+c2*X2+..+c_{i-1}*X_{i-1}+c_{i+1}*X_{i+1}+..ck*Xk
這邊可以算出一個R^2

VIF_i=1/(1-R^2)

VIF_i值很大(通常以10為門檻), 表示該自變數能被其他自變數所取代,
所以它可以不需要列在解釋變數

B=Inverse(X^T*X)*X^T*Y
如果是完全共線性, 那個X^T*X這個矩陣裡至少有兩行的元素等比例
所以行列式值為0, 那麼Inverse就不存在, 因此估計出來的B也會沒意義

應該是這樣子, 有錯請指正


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 222.250.191.69

2010年7月4日 星期日

Fwd: how to tell Mathematica to display x^-1 as x^-1 and not as 1/x

---------- Forwarded message ----------
From: "Sjoerd C. de Vries" <sjoerd.c.devr...@gmail.com>
Date: 7月4日, 下午3時08分
Subject: how to tell Mathematica to display x^-1 as x^-1 and not as 1/
x
To: comp.soft-sys.math.mathematica


Hi Nasser,

I think the construction below should work. I don't have much
experience with this, but I couldn't find any side effect.

Unprotect[Power];
Power /: MakeBoxes[Power[x_, y_], StandardForm] :=
 RowBox[{MakeBoxes[x, StandardForm], "^", MakeBoxes[y, StandardForm]}]
Protect[Power];

Cheers -- Sjoerd

On Jul 3, 2:19 pm, "Nasser M. Abbasi" <n...@12000.org> wrote:

> Hello;

> When I type

> x^-1

> Mathematica replies

> 1/x

> Is there a way to tell Mathematica to *display* terms with negative
> powers as  x^-n  and not as 1/x^n ? (i.e keep the term just like it
> would appear on paper).

> Another example, suppose I type

> expr = a*x^-2 + b *x^-1 +

> The reason I want to do this, is just for display purposes. When I print
> the expression on the screen, I'd like it to look like x^-1 and not like
> 1/x (to better match how the expression look like in the textbook)

> I am trying to avoid having to convert everything to a string, and force
> the form to the way I want.  I tried Hold functions, and
> TraditionalForm, but can't get it to print as I want.

> I am hoping there is an easy trick to do this?

> thanks
> --Nasser

Fwd: Is it possible to query current plot range values (or have

---------- Forwarded message ----------
From: Bill Rowe <readn...@sbcglobal.net>
Date: 7月4日, 下午6時10分
Subject: Is it possible to query current plot range values (or have
To: comp.soft-sys.math.mathematica


On 7/4/10 at 3:10 AM, dnqu...@gmail.com (Leo Alekseyev) wrote:

>Some of my plots contain vertical lines for alignment.  To make sure
>the lines extend from the top to the bottom of the plot frame, I
>typically give those lines large values for +y and -y coordinates.
>This has an unfortunate side effect that the directive
>PlotRange->All now considers my line to be a part of the plot, and
>rescales the plot range to display it in its entirety.  Is there a
>way to (a) either make PlotRange->All ignore this line somehow or
>(b) set the +y and -y coordinates of the line to match the current
>plot range?..

Here are two ways to place a vertical line on a plot without using
large coordinate values for y:

Plot[Cosh[x], {x, -5, 5},
 Epilog -> {Red, Line@{Scaled@{.8, 0}, Scaled@{.8, 1}}}]

or

Plot[Cosh[x], {x, -5, 5}, GridLinesStyle -> Red,
 GridLines -> {{3}, None}]

(shihori) Re: [其他]mathematica計算問題

作者: chungyuandye (養花種魚數月亮賞星星)
標題: Re: [其他]mathematica計算問題
時間: Sun Jul 4 22:29:39 2010

※ 引述《shihori (^^)》之銘言:
: 1.題目:Find the maximum of the function
: f(x ; y) = y
: subject to the constraint 395x-100y = 20 ; x,y皆為整數
: ans: y=1169 x=296
Maximize[{y, 395 x - 100 y == 20, 200 < x < 300, y > 0,
Element[x | y, Integers]}, {x, y}]

Reduce[{395 x - 100 y == 20, 200 < x < 300, y > 0}, {x, y},
Integers] /. {x_ == z1_ -> z1, y_ == z2_ -> z2, And -> List,
Or -> List}

: 2.求 [x^2] - [x] - 6 < 0 ;[]為高斯函數
: ans: -1 ≦ x < 3

Reduce[{Floor[x^2] - Floor[x] - 6 < 0}, x, Reals]
答案應該有錯!
{Floor[x^2] - Floor[x] - 6 < 0} /. x -> 2.9

: 3.求y=ln(x) 中x的的定義域y的值域
: 想問一下程式要怎麼寫才能表示出來?
: 4.解不等式 sin(x- π/6) >cos(x) ;0≦x<2π
: 但答案是 π/3 < 4π/3 ,跟程式跑出來的答案π/3 < 2π有出入
Reduce[{Sin[x - \[Pi]/6] > Cos[x], 0 <= x < 2 Pi}, x]

--
養花種魚數月亮賞星星

http://cydye1069.blogspot.com

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.15

2010年6月30日 星期三

2010隼皓資訊第三季課程--全民健保資料庫整理與應用Stata, Ucinet, Minitab, Lisrel, IRT, EViews, R語言

如您不便收到此訊息,請回信至info@gavinfo.com,造成不便,敬請見諒。

 

您好:
 
 
隼皓資訊是一家專注於社會科學軟體教育訓練課程的軟體代理商,
我們提供平價的軟體並邀請國內外知名學者開設理論與軟體工具並重的研習課程,
今年暑假,我們將開設以下課程,歡迎您即早報名,享有最佳上課位置。
 

政治大學財政系 連賢明博士 講授『全民健康保險資料庫的整理與應用 2010/7/17-18(兩天課程)

 

台灣大學資管所 James Huang 講授『社會網絡分析軟體UCINET實作工作坊 2010/7/25(一天課程)

 

政治大學應用數學系 吳柏林教授  講授『市場調查研究之新技術 2010/7/31-8/1 (兩天課程)

 

銘傳大學 資訊管理系 蕭文龍博士 講授『SEM研究利器:SEM模式修訂、中介效果之驗證、調節效果之驗證 2010/8/12-13(兩天課程)
 
國家教育研究院 謝名娟博士 講授『試題反應理論進階課程 2010/8/14-15(兩天課程)
 
逢甲大學 劉炳麟博士 講授『EViews在風險管理上的應用 2010/8/21-22(兩天課程)
 
淡江大學 數學系 統計組 吳漢銘 博士 講授『R語言統計程式設計-進階班 2010/8/28-29(兩天課程)
 
隼皓資訊也懇請您將此訊息轉寄給需要的老師、同事與所屬碩博士班學生。
 
謝謝您∼
 
隼皓資訊敬上
隼皓資訊有限公司
電話:0937-338-256
傳真:02-8951-8116








--
隼皓資訊有限公司
電話:0937-338-256
傳真:02-8951-8116
統編:29112898
網址:www.gavinfo.com
E-MAIL:info@gavinfo.com
地址:台北縣新莊市化成路五五四巷十二號