Statistics 板


LINE

------------------------------------------------------------------------ [软体程式类别]: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
1F:推 chungyuandye:没有f的定义 07/30 10:54
※ 编辑: af2486 来自: 111.252.204.176 (07/30 23:00)
2F:→ af2486:已附上完整程式码 07/30 23:02







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP