mathematica解微分方程组含参数~

问题描述:

mathematica解微分方程组含参数~
Dsolve[{x1'[t] == -e100*x1[t] - e110*x2[t] - e120*x3[t] - e130*x4[t] -e140*x5[t],
x2'[t] == -e101*x1[t] - e111*x2[t] - e121*x3[t] - e131*x4[t] - e141*x5[t],
x3'[t] == -0.5*e102*x1[t] - 0.5*e112*x2[t] - 0.5*e122*x3[t] - 0.5*e132*x4[t] - 0.5*e142*x5[t],
x4'[t] == (-1/6)*e103*x1[t] + (-1/6)*e113*x2[t] + (-1/6)*e123*x3[t] + (-1/6)*e133*x4[t] + (-1/6)*e143*x5[t],
x5'[t] == (-1/24)*e104*x1[t] + (-1/24)*e114*x2[t] + (-1/24)*e124*x3[t] + (-1/24)*e134*x4[t] + (-1/24)*e144*x5[t],x1 (0) == 1,x2 (0) == 0,x3 (0) == 0,x4 (0) == 0,x5 (0) == 0},{x1[t],x2[t],
x3[t],x4[t],x5[t]},t]
方程五个 初始条件五个 求解x1[t],x2[t],x3[t],x4[t],x5[t]的表达式,e100,e110~e144 均为参数,运行后只是又把我的内容暑促了一遍
1个回答 分类:数学 2014-10-18

问题解答:

我来补答
……仔细一看,你写的是Dsolve啊喂,应该是DSolve,Mathematica是区分大小写的,边界条件里的中括号也错成小括号了.改完了再试试.
再问: 改好了,能解。但是解到后来就变成如图这种情况了 是太麻烦了吗?我换成4g内存的电脑还是这种情况,还是有什么错误?谢谢 麻烦您了
再答: 没有错误,就是内存不够了。带这么多符号系数的微分方程组,解起来耗内存也没什么奇怪的。找台内存更大的吧(顺便,就算内存足够,最后依旧原式返回的悲剧情况也是可能的)。 __ 经实验,换计算机的思路恐怕并不可取。反正32G内存是不够的。
再问: 嗯 我换成四元的也是不行!
再答: 所以说还是用NDSolve求特定参数再插值比较合适一些……
再问: 如果我指定参数的值,参数的值需要是变化的,例如e100的值是[0:0.1:1]的值,前面我需要怎么写,才能一次算出 同一时间下 每个不同的e100所对应的解呢?谢谢
再答: 用Table就行了。一个简单的例子:
sol = Table[NDSolve[{y'[x] == e y[x] Cos[x + y[x]], y[0] == 1}, y, {x, 0, 3}], {e, 1, 5, 1/2}]Plot[y[x] /. sol // Evaluate, {x, 0, 3}]

更多内容请参看Table的帮助。
 
 
展开全文阅读
剩余:2000
也许感兴趣的知识