ODE求解器的字符限制

时间:2013-09-03 17:56:03

标签: r

我正在尝试解决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中执行此操作。

0 个答案:

没有答案