0

我正在尝试解决 R 中的一些 ODE。

目前我正在使用包 deSolve,但遇到了问题,因为方程的长度似乎有字符限制,错误告诉我有一个意外的符号。

最初,我通过将有问题的方程的一半存储在另一个向量中然后组合来解决这个问题……理想情况下,我不想对每个方程都这样做。

有谁知道绕过这个包的字符限制的方法,或者 R 中没有字符限制的 ODE 求解器?

根据要求,这是一个导致错误意外符号的方程式:

dyx31 <- -c_2*yx14*(-6*c_6^2*y_0 + 4*c_6^2 - 12*c_6*y_0^2 + 4*c_6*y_0 + 4*c_6*yx16 + c_6 - 6*y_0^3)/(c_6^3 + 3*c_6^2*y_0 + 3*c_6*y_0^2 + y_0^3) + c_2*yx29*(-4*c_6^3*y_0 + 6*c_6^3 - 12*c_6^2*y_0^2 + 12*c_6^2*y_0 + 4*c_6^2 - 12*c_6*y_0^3 + 6*c_6*y_0^2 + 4*c_6*y_0 + 4*c_6*yx16 + c_6 - 4*y_0^4)/(c_6^4 + 4*c_6^3*y_0 + 6*c_6^2*y_0^2 + 4*c_6*y_0^3 + y_0^4) - c_2*yx4*(4*c_6*y_0 - 4*c_6*yx16 - c_6 + 4*y_0^2)/(c_6^2 + 2*c_6*y_0 + y_0^2) + yx16*(4*c_0*c_6^4 + 16*c_0*c_6^3*y_0 + 24*c_0*c_6^2*y_0^2 + 16*c_0*c_6*y_0^3 + 4*c_0*y_0^4 - 4*c_1*c_6^4*y_0 + 6*c_1*c_6^4 - 16*c_1*c_6^3*y_0^2 + 24*c_1*c_6^3*y_0 - 24*c_1*c_6^2*y_0^3 + 36*c_1*c_6^2*y_0^2 - 16*c_1*c_6*y_0^4 + 24*c_1*c_6*y_0^3 - 4*c_1*y_0^5 + 6*c_1*y_0^4 - 4*c_2*c_6^3*y_0*y_2 + 6*c_2*c_6^3*y_2 - 12*c_2*c_6^2*y_0^2*y_2 + 12*c_2*c_6^2*y_0*y_2 + 4*c_2*c_6^2*y_2 - 12*c_2*c_6*y_0^3*y_2 + 6*c_2*c_6*y_0^2*y_2 + 4*c_2*c_6*y_0*y_2 + 4*c_2*c_6*y_2*yx16 + c_2*c_6*y_2 - 4*c_2*y_0^4*y_2)/(c_6^4 + 4*c_6^3*y_0 + 6*c_6^2*y_0^2 + 4*c_6*y_0^3 + y_0^4) - yx31*(4*c_1*c_6^5 + 20*c_1*c_6^4*y_0 + 40*c_1*c_6^3*y_0^2 + 40*c_1*c_6^2*y_0^3 + 20*c_1*c_6*y_0^4 + 4*c_1*y_0^5 + 4*c_2*c_6^4*y_2 + 12*c_2*c_6^3*y_0*y_2 + 6*c_2*c_6^3*y_2 + 12*c_2*c_6^2*y_0^2*y_2 + 12*c_2*c_6^2*y_0*y_2 + 4*c_2*c_6^2*y_2 + 4*c_2*c_6*y_0^3*y_2 + 6*c_2*c_6*y_0^2*y_2 + 4*c_2*c_6*y_0*y_2 + 4*c_2*c_6*y_2*yx16 + c_2*c_6*y_2)/(c_6^5 + 5*c_6^4*y_0 + 10*c_6^3*y_0^2 + 10*c_6^2*y_0^3 + 5*c_6*y_0^4 + y_0^5) + yx6*(6*c_0*c_6^3 + 18*c_0*c_6^2*y_0 + 18*c_0*c_6*y_0^2 + 6*c_0*y_0^3 + 6*c_1*c_6^3*y_0 - 4*c_1*c_6^3 + 18*c_1*c_6^2*y_0^2 - 12*c_1*c_6^2*y_0 + 18*c_1*c_6*y_0^3 - 12*c_1*c_6*y_0^2 + 6*c_1*y_0^4 - 4*c_1*y_0^3 + 6*c_2*c_6^2*y_0*y_2 - 4*c_2*c_6^2*y_2 + 12*c_2*c_6*y_0^2*y_2 - 4*c_2*c_6*y_0*y_2 - 4*c_2*c_6*y_2*yx16 - c_2*c_6*y_2 + 6*c_2*y_0^3*y_2)/(c_6^3 + 3*c_6^2*y_0 + 3*c_6*y_0^2 + y_0^3) + (-4*c_0*c_6*yx16 + c_0*c_6 - 4*c_0*y_0*yx16 + c_0*y_0 + 4*c_1*c_6*y_0*yx16 + c_1*c_6*y_0 + 4*c_1*y_0^2*yx16 + c_1*y_0^2 + 4*c_2*y_0*y_2*yx16 + c_2*y_0*y_2)/(c_6 + y_0) 

这是问题的临时解决方案

temp <- 4*c_2*c_6*y_0^2*y_2*yx31 + 4*c_2*c_6*y_0^2*yx16*yx29 + c_2*c_6*y_0^2*yx29 - 4*c_2*c_6*y_0*y_2*yx16*yx31 - c_2*c_6*y_0*y_2*yx31 + 4*c_2*c_6*y_2*yx6^3*(20*y_0^2 + 24*yx6) + 6*c_2*c_6*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0 + 4*c_2*c_6*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0^2 + 4*c_2*c_6*y_2*yx16*yx6^3*(20*y_0^2 + 24*yx6)/y_0^3 + c_2*c_6*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0^3 + 6*c_2*y_0^6*y_2*yx6 + c_2*y_0^6*y_2 + 6*c_2*y_0^6*yx14 - 4*c_2*y_0^6*yx29 - 4*c_2*y_0^6*yx4

dyx31 <- (6*c_0*c_6^6*yx6 + c_0*c_6^6 + 36*c_0*c_6^5*y_0*yx6 + 6*c_0*c_6^5*y_0 + 90*c_0*c_6^4*y_0^2*yx6 + 15*c_0*c_6^4*y_0^2 + 120*c_0*c_6^3*y_0^3*yx6 + 20*c_0*c_6^3*y_0^3 + 90*c_0*c_6^2*y_0^4*yx6 + 15*c_0*c_6^2*y_0^4 + 36*c_0*c_6*y_0^5*yx6 + 6*c_0*c_6*y_0^5 + 6*c_0*y_0^6*yx6 + c_0*y_0^6 + 6*c_1*c_6^6*y_0*yx6 + c_1*c_6^6*y_0 + 6*c_1*c_6^6*yx16 - 4*c_1*c_6^6*yx31 - 4*c_1*c_6^6*yx6 + 36*c_1*c_6^5*y_0^2*yx6 + 6*c_1*c_6^5*y_0^2 + 36*c_1*c_6^5*y_0*yx16 - 24*c_1*c_6^5*y_0*yx31 - 24*c_1*c_6^5*y_0*yx6 + 90*c_1*c_6^4*y_0^3*yx6 + 15*c_1*c_6^4*y_0^3 + 90*c_1*c_6^4*y_0^2*yx16 - 60*c_1*c_6^4*y_0^2*yx31 - 60*c_1*c_6^4*y_0^2*yx6 + 120*c_1*c_6^3*y_0^4*yx6 + 20*c_1*c_6^3*y_0^4 + 120*c_1*c_6^3*y_0^3*yx16 - 80*c_1*c_6^3*y_0^3*yx31 - 80*c_1*c_6^3*y_0^3*yx6 + 90*c_1*c_6^2*y_0^5*yx6 + 15*c_1*c_6^2*y_0^5 + 90*c_1*c_6^2*y_0^4*yx16 - 60*c_1*c_6^2*y_0^4*yx31 - 60*c_1*c_6^2*y_0^4*yx6 + 36*c_1*c_6*y_0^6*yx6 + 6*c_1*c_6*y_0^6 + 36*c_1*c_6*y_0^5*yx16 - 24*c_1*c_6*y_0^5*yx31 - 24*c_1*c_6*y_0^5*yx6 + 6*c_1*y_0^7*yx6 + c_1*y_0^7 + 6*c_1*y_0^6*yx16 - 4*c_1*y_0^6*yx31 - 4*c_1*y_0^6*yx6 + 6*c_2*c_6^5*y_0*y_2*yx6 + c_2*c_6^5*y_0*y_2 + 6*c_2*c_6^5*y_0*yx14 - 4*c_2*c_6^5*y_0*yx29 - 4*c_2*c_6^5*y_0*yx4 + 6*c_2*c_6^5*y_2*yx16 - 4*c_2*c_6^5*y_2*yx31 - 4*c_2*c_6^5*y_2*yx6 - 4*c_2*c_6^5*yx14 + 4*c_2*c_6^5*yx16*yx4 + 6*c_2*c_6^5*yx29 + c_2*c_6^5*yx4 + 30*c_2*c_6^4*y_0^2*y_2*yx6 + 5*c_2*c_6^4*y_0^2*y_2 + 30*c_2*c_6^4*y_0^2*yx14 - 20*c_2*c_6^4*y_0^2*yx29 - 20*c_2*c_6^4*y_0^2*yx4 + 24*c_2*c_6^4*y_0*y_2*yx16 - 16*c_2*c_6^4*y_0*y_2*yx31 - 16*c_2*c_6^4*y_0*y_2*yx6 - 16*c_2*c_6^4*y_0*yx14 + 16*c_2*c_6^4*y_0*yx16*yx4 + 24*c_2*c_6^4*y_0*yx29 + 4*c_2*c_6^4*y_0*yx4 - 4*c_2*c_6^4*y_2*yx16*yx6 + 4*c_2*c_6^4*y_2*yx16 - 6*c_2*c_6^4*y_2*yx31 - c_2*c_6^4*y_2*yx6 - 4*c_2*c_6^4*yx14*yx16 - c_2*c_6^4*yx14 + 4*c_2*c_6^4*yx29 + 4*c_2*c_6^4*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0^3 + 60*c_2*c_6^3*y_0^3*y_2*yx6 + 10*c_2*c_6^3*y_0^3*y_2 + 60*c_2*c_6^3*y_0^3*yx14 - 40*c_2*c_6^3*y_0^3*yx29 - 40*c_2*c_6^3*y_0^3*yx4 + 36*c_2*c_6^3*y_0^2*y_2*yx16 - 24*c_2*c_6^3*y_0^2*y_2*yx31 - 24*c_2*c_6^3*y_0^2*y_2*yx6 - 24*c_2*c_6^3*y_0^2*yx14 + 24*c_2*c_6^3*y_0^2*yx16*yx4 + 36*c_2*c_6^3*y_0^2*yx29 + 6*c_2*c_6^3*y_0^2*yx4 - 12*c_2*c_6^3*y_0*y_2*yx16*yx6 + 12*c_2*c_6^3*y_0*y_2*yx16 - 18*c_2*c_6^3*y_0*y_2*yx31 - 3*c_2*c_6^3*y_0*y_2*yx6 - 12*c_2*c_6^3*y_0*yx14*yx16 - 3*c_2*c_6^3*y_0*yx14 + 12*c_2*c_6^3*y_0*yx29 + 4*c_2*c_6^3*y_2*yx16^2 + c_2*c_6^3*y_2*yx16 - 4*c_2*c_6^3*y_2*yx31 + 4*c_2*c_6^3*yx16*yx29 + c_2*c_6^3*yx29 + 12*c_2*c_6^3*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0^2 + 6*c_2*c_6^3*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0^3 + 60*c_2*c_6^2*y_0^4*y_2*yx6 + 10*c_2*c_6^2*y_0^4*y_2 + 60*c_2*c_6^2*y_0^4*yx14 - 40*c_2*c_6^2*y_0^4*yx29 - 40*c_2*c_6^2*y_0^4*yx4 + 24*c_2*c_6^2*y_0^3*y_2*yx16 - 16*c_2*c_6^2*y_0^3*y_2*yx31- 16*c_2*c_6^2*y_0^3*y_2*yx6 - 16*c_2*c_6^2*y_0^3*yx14 + 16*c_2*c_6^2*y_0^3*yx16*yx4 + 24*c_2*c_6^2*y_0^3*yx29 + 4*c_2*c_6^2*y_0^3*yx4 - 12*c_2*c_6^2*y_0^2*y_2*yx16*yx6 + 12*c_2*c_6^2*y_0^2*y_2*yx16 - 18*c_2*c_6^2*y_0^2*y_2*yx31 - 3*c_2*c_6^2*y_0^2*y_2*yx6 - 12*c_2*c_6^2*y_0^2*yx14*yx16 - 3*c_2*c_6^2*y_0^2*yx14 + 12*c_2*c_6^2*y_0^2*yx29 + 8*c_2*c_6^2*y_0*y_2*yx16^2 + 2*c_2*c_6^2*y_0*y_2*yx16 - 8*c_2*c_6^2*y_0*y_2*yx31 + 8*c_2*c_6^2*y_0*yx16*yx29 + 2*c_2*c_6^2*y_0*yx29 - 4*c_2*c_6^2*y_2*yx16*yx31 - c_2*c_6^2*y_2*yx31 + 12*c_2*c_6^2*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0 + 12*c_2*c_6^2*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0^2 + 4*c_2*c_6^2*y_2*yx6^3*(20*y_0^2 + 24*yx6)/y_0^3 + 30*c_2*c_6*y_0^5*y_2*yx6 + 5*c_2*c_6*y_0^5*y_2 + 30*c_2*c_6*y_0^5*yx14 - 20*c_2*c_6*y_0^5*yx29 - 20*c_2*c_6*y_0^5*yx4 + 6*c_2*c_6*y_0^4*y_2*yx16 - 4*c_2*c_6*y_0^4*y_2*yx31 - 4*c_2*c_6*y_0^4*y_2*yx6 - 4*c_2*c_6*y_0^4*yx14 + 4*c_2*c_6*y_0^4*yx16*yx4 + 6*c_2*c_6*y_0^4*yx29 + c_2*c_6*y_0^4*yx4 - 4*c_2*c_6*y_0^3*y_2*yx16*yx6 + 4*c_2*c_6*y_0^3*y_2*yx16 - 6*c_2*c_6*y_0^3*y_2*yx31 - c_2*c_6*y_0^3*y_2*yx6 - 4*c_2*c_6*y_0^3*yx14*yx16 - c_2*c_6*y_0^3*yx14 + 4*c_2*c_6*y_0^3*yx29 + 4*c_2*c_6*y_0^2*y_2*yx16^2 + c_2*c_6*y_0^2*y_2*yx16   - temp)/(c_6^6 + 6*c_6^5*y_0 + 15*c_6^4*y_0^2 + 20*c_6^3*y_0^3 + 15*c_6^2*y_0^4 + 6*c_6*y_0^5 + y_0^6)

它们变得更长更混乱,所以我想避免重复这样做。

目前我已经使用了一个名为 CVODE 的程序,但如果可能的话,我希望能够在 R 中做到这一点。

4

0 回答 0