24小时热门版块排行榜    

查看: 1913  |  回复: 9

wangyd13

银虫 (初入文坛)

[求助] mathematica求解微分方程组 已有1人参与

请问我用mathematica求解如下微分方程组,为什么不求解也不报错?用NDSolve也一样没有反应

mathematica求解微分方程组
2015-10-13 22:45:15 的屏幕截图.png
回复此楼

» 猜你喜欢

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

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

xzczd

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
wangyd13: 金币+100, ★★★很有帮助 2015-10-14 10:10:30
wangyd13: 金币+100, ★★★很有帮助 2015-10-14 10:22:25
NDSolve会没反应八成是你语法错了。试试这个:
CODE:
NDSolve[{I x'[t] == 3/10 x[t] - 4/10 Exp[I t/2] y[t],
  I y'[t] == -4/10 Exp[-I t/2] x[t] - 3/10 y[t], x@0 == 0, y@0 == 1}, {x, y}, {t, 0, 10}]
Plot[Abs[{x[t], y[t]}] /. nsol // Evaluate, {t, 0, 10}]

mathematica求解微分方程组-1

至于DSolve,截止10.2版,Mathematica的DSolve是有许多不尽如人意的地方的。(不过即将推出的10.3版似乎十分值得期待,关于这个可以看看目前已经可以预览的帮助:reference.wolfram.com/language/ref/DSolve.en.html),不过,即使是现在,你的这个问题也只要拐点弯也还是解得出符号解的:
CODE:
eqn = {I x'[t] == 3/10 x[t] - 4/10 Exp[I t/2] y[t],
   I y'[t] == -4/10 Exp[-I t/2] x[t] - 3/10 y[t], x@0 == 0, y@0 == 1};
representWithy = Solve[eqn[[2]], x[t]][[1, 1, -1]];
eqn[[{1, 3, 4}]] /. x -> (Function[t, #] &@representWithy)
ysol = DSolve[{%, eqn[[-1]]}, y, t];
(*y[t]=*)y[t] /. ysol
(*x[t]=*)representWithy /. ysol

结果比较长,不贴了。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
2楼2015-10-14 09:50:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

引用回帖:
2楼: Originally posted by xzczd at 2015-10-14 09:50:32
NDSolve会没反应八成是你语法错了。试试这个:

NDSolve
Plot[Abs /. nsol // Evaluate, {t, 0, 10}]



至于DSolve,截止10.2版,Mathematica的DSolve是有许多不尽如人意的地方的。(不过即将推出的10.3版似 ...

啊,ysol = DSolve[{%,eqn[[-1]]}, y, t]这行的eqn[[-1]]是多余的,不过这个不影响结果。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
3楼2015-10-14 09:52:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyd13

银虫 (初入文坛)

引用回帖:
2楼: Originally posted by xzczd at 2015-10-14 09:50:32
NDSolve会没反应八成是你语法错了。试试这个:

NDSolve
Plot[Abs /. nsol // Evaluate, {t, 0, 10}]



至于DSolve,截止10.2版,Mathematica的DSolve是有许多不尽如人意的地方的。(不过即将推出的10.3版似 ...

非常感谢!不过我复制了你的代码运行时却出现下面的问题,这时为什么呢?
mathematica求解微分方程组-2


mathematica求解微分方程组-3
2015-10-14 10:12:27 的屏幕截图.png

4楼2015-10-14 10:13:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyd13

银虫 (初入文坛)

引用回帖:
3楼: Originally posted by xzczd at 2015-10-14 09:52:54
啊,ysol = DSolve[{%,eqn这行的eqn[]是多余的,不过这个不影响结果。...

成功运行了,多谢你的帮助~~~
5楼2015-10-14 10:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

引用回帖:
4楼: Originally posted by wangyd13 at 2015-10-14 10:13:01
非常感谢!不过我复制了你的代码运行时却出现下面的问题,这时为什么呢?


2015-10-14 10:12:27 的屏幕截图.png
...

……我复制代码的时候复制漏了。NDSolve前面有个nsol=的。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
6楼2015-10-14 10:23:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyd13

银虫 (初入文坛)

引用回帖:
6楼: Originally posted by xzczd at 2015-10-14 10:23:34
……我复制代码的时候复制漏了。NDSolve前面有个nsol=的。...

嗯,这我知道了。不过我还有一个问题,为什么不取绝对值时图画不出来呢?
7楼2015-10-14 10:30:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
8楼2015-10-14 10:45:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

引用回帖:
7楼: Originally posted by wangyd13 at 2015-10-14 10:30:34
嗯,这我知道了。不过我还有一个问题,为什么不取绝对值时图画不出来呢?...

……因为Plot是用来画实数域的图像的,而你的方程里都含了虚数单位了,十有八九都是(事实上也确实是)在复数域上啊。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
9楼2015-10-14 10:52:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyd13

银虫 (初入文坛)

引用回帖:
9楼: Originally posted by xzczd at 2015-10-14 10:52:53
……因为Plot是用来画实数域的图像的,而你的方程里都含了虚数单位了,十有八九都是(事实上也确实是)在复数域上啊。...

原来是这样,多谢!
10楼2015-10-14 11:08:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wangyd13 的主题更新
信息提示
请填处理意见