作业帮 > 数学 > 作业

mathematic 或mablab 解微分方程组

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/28 13:46:51
mathematic 或mablab 解微分方程组
X1‘=-K1*X1
Xi'=Ki-1*Xi-1-Ki*Xi i=2,3……n
Xn'=Kn*Xn
Xi(0)=ξi
求X(t)
你这题面有些不清啊,我猜你第二行里的那个应该是K(i-1),(i-1)是脚标吧?这ξi是算已知数吧?x是t的函数吧?用mathematica试了一下,这个xi[t],要求某个确定项的解析式是做的到的,但这个有可能是没简单通项的.
因为mma似乎没有求解微分的递推方程的指令,我把你的方程拆了下,先解第一项(我直接贴mma代码了,你贴到软件里就能正常显示了,注意我把你的字母都变小写了):
a = DSolve[{Subscript[x,1]'[
t] == -Subscript[k,1] Subscript[x,1][t],
Subscript[x,1][0] == Subscript[\[Xi],1]},{Subscript[x,1][t]},
t]
再解i项:
b = DSolve[{Subscript[x,i][0] == Subscript[\[Xi],i],
Subscript[x,i]'[t] ==
Subscript[k,i - 1] Subscript[x,i - 1][t] -
Subscript[k,i] Subscript[x,i] [t]},{Subscript[x,i][t]},t]
再解n项:
c = DSolve[{Subscript[x,n]'[t] == Subscript[k,n] Subscript[x,n][t],
Subscript[x,n][0] == Subscript[\[Xi],n]},{Subscript[x,n][t]},
t]
以上就得到了非微分形式的递推式,结果里含了积分.试着扔进RSolve再解,果然还是不行.所以我试着算了你这个的头几项:
a1 = First[Subscript[x,1][t] /.a]
a2 = First@((Subscript[x,i][t] /.b) /.i -> 2) /.(
Subscript[x,1][K[1]] -> (a1 /.t -> K[1]))
a3 = First@((Subscript[x,i][t] /.b) /.i -> 3) /.(
Subscript[x,2][K[1]] -> (a2 /.t -> K[1]))
a4 = First@((Subscript[x,i][t] /.b) /.i -> 4) /.(
Subscript[x,3][K[1]] -> (a3 /.t -> K[1]))
你运行一下看看,很明显,随着项数的增加,式子的复杂度暴增(虽然说依旧是解析式),试着用FindSequenceFunction找了下,也找不到,所以我猜对于这个x,通式是不存在的.当然也可能是具有通式但mma找不到(mma的符号运算也不是万能的……).
最后,你的这个方程组,莫非是将某个微分方程离散产生的?如果是这样,那你还不如直接求解原式,DSolve或者NDSolve说不定还能帮你解出来……
再问: 好吧 牛人 很感谢你 但是我还是不知道怎么算 就这样吧 只能说美国人出题不考虑后果 这回作业我就放弃了 能写什么样是什么样吧 最后问一句 如果想求X10与t的关系式 应该怎么写呢
再答: 连续重复用 a4 = First@((Subscript[x, i][t] /. b) /. i -> 4) /. ( Subscript[x, 3][K[1]] -> (a3 /. t -> K[1])) 这个式子就可以了,注意相应的数字要改。(即a4改a5, i -> 4改 i -> 5,Subscript[x, 3]改Subscript[x, 4],a3改a4。) 当然应该还可以引入循环…嗯,可以,把前面那个a1改成Subscript[a, 1]运行下,然后 For[j = 2, j j) /. (Subscript[x, j - 1][ K[1]] -> (Subscript[a, j - 1] /. t -> K[1]))] Subscript[a,10] 这样就行了。(其实a2到a9现在也都能调用了。)不过运算之前请确保你的计算机有足够的内存……(我2G内存根本不够用。)