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内存根本不够用。)

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜