24小时热门版块排行榜    

查看: 960  |  回复: 3

jollage

银虫 (正式写手)

[求助] 如何让mathematica把这个程序运行快一点

我想试图求文件里的alpha_2。但是好像在那一个积分的步骤,程序运行很慢。我没有等到结果,哪位高手能不能看一下什么方法可以加快运行的速度。题目应该是对的。谢谢。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : xiaomuchong.nb
  • 2013-06-23 16:10:06, 2.83 K

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

★ ★ ★ ★ ★ ★
jollage(xzhdty代发): 金币+6, 代楼主发放金币 2013-06-25 07:15:09
数值结果 不知道对否
Clear["Global`*"];
a1 = 1/9 (7 - 12 \[Alpha]2);
a2 = 1/36 + (19 \[Alpha]2)/6;
\[Alpha]1 = 1/3 + 4 \[Alpha]2;
fint = (k - (2 a2*Sin[2 k] + 2 a1*Sin[k])/(1 + 2 \[Alpha]1*Cos[k] +
        2 \[Alpha]2*Cos[2 k]))^2;
temp = D[fint, \[Alpha]2];
test[\[Alpha]\[Alpha]2_?NumericQ] :=
  temp /. {\[Alpha]2 -> \[Alpha]\[Alpha]2};
test2[\[Alpha]\[Alpha]2_?NumericQ] :=
NIntegrate[test[\[Alpha]\[Alpha]2], {k, 0, Pi/2}]
FindRoot[test2[\[Alpha]2], {\[Alpha]2, 0.1}]
FindRoot[test2[\[Alpha]2], {\[Alpha]2, -0.1}]
2楼2013-06-23 21:11:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jollage

银虫 (正式写手)

引用回帖:
2楼: Originally posted by walk1997 at 2013-06-23 21:11:13
数值结果 不知道对否
Clear;
a1 = 1/9 (7 - 12 \2);
a2 = 1/36 + (19 \2)/6;
\1 = 1/3 + 4 \2;
fint = (k - (2 a2*Sin + 2 a1*Sin)/(1 + 2 \1*Cos +
        2 \2*Cos))^2;
temp = D;
test :=
  temp /. ...

好的,谢了,好像是对的,这个没有正确答案,但是和别的结果是吻合的。

是因为我其实是在用symbolic的方法去求所以求的很慢?我没有意识到这一点,用数值就快很多了。而且你把积分和微分的顺序换了,这样也令问题好解了一点。
谢了

你要这些金币吗?前面一个帖子里你也没有应助。
3楼2013-06-23 22:07:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

btx97

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
想速度快,除了尽量避免用符号运算,你还可以看看Compile这个函数。
4楼2013-06-24 17:02:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jollage 的主题更新
信息提示
请填处理意见