проблемы с DSolve в Mathematica - PullRequest
       31

проблемы с DSolve в Mathematica

1 голос
/ 10 декабря 2011

Я хотел бы решить эту систему дифференциальных уравнений с Mathematica 7, но я обнаружил ошибку, которая говорит о том, что функция была указана вне зависимости от всех независимых переменных.Уравнения: enter image description here

Спасибо всем за помощь

Ответы [ 2 ]

2 голосов
/ 10 декабря 2011

У меня нет V7 под рукой, но помогает ли это?

DSolve[{D[x[t], t] == r1 - g1 x[t], 
  D[y[t], t] == k2 x[t]/(K + x[t]) g2 y[t]}, {x, y}, t]
0 голосов
/ 10 декабря 2011

Об ошибке, которую вы увидели, трудно сказать точно, что вы сделали неправильно, не увидев свой код.Но, надеюсь, приведенный ниже код поможет выяснить, какую ошибку вы допустили.


Теперь, чтобы решить систему DE.Сначала вы можете решить x DE:

In[1]:= xSoln = DSolve[{x'[t] == r1 - g1 x[t]}, x, t]

Out[1]= {{x -> Function[{t}, r1/g1 + E^(-g1 t) C[1]]}}

. Это можно заменить на y DE, чтобы получить линейное неоднородное дифференциальное уравнение 1-го порядка, которое можно решить с помощью интегрирующего множителя.

In[2]:= y'[t] == k2 x[t]/(k + x[t]) - g2 y[t] /. xSoln[[1]]

Out[2]= y'[t] == - g2 y[t]  
                 + (k2 (r1/g1 + E^(-g1 t) C[1]))/(k + r1/g1 + E^(-g1 t) C[1])

Назовите неоднородный беспорядок f[t], поэтому DE будет y'[t] == f[t] - g2 y[t].Mathematica может решить эту проблему:

In[3]:= y[t] /. DSolve[y'[t] == f[t] - g2 y[t], y, t][[1]]

Out[3]= C[1] E^(-g2 t) + E^(-g2 t) Integrate[E^(g2 K[1]) f[K[1]], {K[1], 1, t}]

Обратите внимание, что константа интегрирования C[1] не такая, как в решении x[t].Кроме того, что, когда вы подставляете в явном виде f[t], Mathematica не может делать интеграл в замкнутом виде.

Итак, лучшее, что мы можем сделать, это

x[t] == r1/g1 + E^(-g1 t) C[1]
y[t] == C[2] E^(-g2 t) + E^(-g2 t) Integrate[E^(g2 s) f[s], s]

, где

f[s] == k2 (r1 E^(g1 s) + g1 C[1])/((g1 k + r1)E^(g1 s) + g1 C[1])
...