24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1947  |  回复: 4

小木虫:)

荣誉版主 (著名写手)

[交流] 【求助】请教一个关于Mathematica中计算小量的问题已有3人参与

小虫自从用上Mathematica之后发现非常不错,于是平时手算的内容很多都移给Mathematica了,最近小虫正在计算一些变分和微扰问题,这里面涉及一些0阶、一阶之类的问题,但是小虫发现用Mathematica很难处理这样的问题,小虫就想问问有没有什么命令或者思路可以求解一个方程的N阶近似呢?具体而言也就是

比如,如下一个问题



其中




这里的 都是小量

也就是



我希望求出F的零阶近似


和一阶近似


这个问题可能比较过分,但是小虫还是想问,电脑能不能做这样的工作?

[ Last edited by 小木虫 on 2011-1-20 at 22:51 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

霸道做事,厚道做人
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3): 谢谢分享经验! 2011-01-21 13:29:05
类似于微扰问题,mathematica应该能做,不过我也在找路的困惑中...
以前关于方程的零级解、一级解都是手推的,那个累就不说了,还怕错
现在的方法是我提供求解的方法,mathematica去推
说实话,这方法很笨,几乎没有通用性,但是起码不怕推错了,聊胜于无吧
2楼2011-01-20 14:19:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gsview

木虫 (小有名气)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3): 谢谢参与应助! 2011-01-21 13:29:23
对这个问题我可以给出一点小建议,通用性上还需要加强!聊胜于无!

A0 = Abar + x*dA;
B0 = Bbar + x*dB;
C0 = Cbar + x*dC;
F = A0*B0*C0;
F = Expand[F];
F = F /. {x^3 -> 0, x^2 -> 0};
F = F /. {x -> 1};
Print[F]
3楼2011-01-20 20:41:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫:)

荣誉版主 (著名写手)

谢谢两位大侠的回帖,我觉得gsview的方法很巧,可以实用,非常感谢,这下再算微扰问题可就容易了

程序可以这样编

A[x_]=A0+x*A1;
B[x_]=B0+x*B1;
H[x_]=H0+x*H1;
F=Expand[A[x]*B[x]*H[x]];
F0=F/.{x^3 -> 0, x^2 -> 0, x -> 0}
F1=F /. {x^3 -> 0, x^2 -> 0}

结果F0就是0级近似,F1就是1级近似。(这里我发现C[x]好象是个特殊字符,不宜使用,我用H替代了)

这个小程序应该很实用,可以减轻许多虫子计算的痛苦,谢谢咯
霸道做事,厚道做人
4楼2011-01-20 23:11:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫:)

荣誉版主 (著名写手)

★ ★
余泽成(金币+2): 鼓励交流,欢迎常来程序语言版! 2011-06-04 19:22:04
找到一个更好的方法了

A[x_]=A0+x*A1;
B[x_]=B0+x*B1;
H[x_]=H0+x*H1;
Fn=Normal[Series[A[x]*B[x]*H[x],{x,0,n}]];

Fn就是n级近似
霸道做事,厚道做人
5楼2011-06-03 11:17:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小木虫:) 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见