2016-12-01 2 views
0

Я пытаюсь решить набор дифференциальных уравнений на Matlab с помощью команды dsolve. У меня есть три уравнения, как определено ниже, но вместо числовых коэффициентов у меня есть общие параметры, такие как lambda1, lambda2 и т. Д., И я хочу получить результаты в терминах этих параметров. Код ниже:Ошибка Matlab Dsolve с использованием параметров

syms p0(s) p1(s) p2(s) lambda1 lambda2 mu1 mu2; 
    eqn1=diff(p0)-1==-lambda1*p0-lambda2*p0+mu1*lambda2*p0/(s+mu2)+mu2*lambda1*p0/(s+mu1); 
    eqn2=s*p1==lambda1*p0-mu2*p1; 
    eqn3=s*p2==lambda2*p0(s) - mu1*p2(s); 
    S = dsolve(eqn1, eqn2, eqn3) 

Я получаю следующее сообщение об ошибке:

Cannot reduce to the square system because the number of equations 
differs from the number of indeterminates. 

Я считаю, что надо делать что-то с параметрами. Что мне делать?

ответ

0

Система ОДЫ

Я думаю, что система дифференциальных уравнений не хватает два оды. Я сделал некоторую коррекцию только для того, чтобы догадаться о вашей реальной системе.

syms p0(s) p1(s) p2(s) lambda1 lambda2 mu1 mu2; 

eqn1=diff(p0,s)-1==-lambda1*p0-lambda2*p0+mu1*lambda2*p0/(s+mu2)+mu2*lambda1*p0/(s+mu1) 
eqn2=s*diff(p1,s)==lambda1*p0-mu2*p1; 
eqn3=s*diff(p2,s)==lambda2*p0 - mu1*p2 

Теперь с помощью dsolve, чтобы найти решение указанной системы

S = dsolve(eqn1, eqn2, eqn3) 

Чтобы получить доступ к решению, мы можем сделать что-то вроде этого

solpo(s) = S.p0 
solp1(s) = S.p1 
solp2(s) = S.p2 

или вы можете также назначить выходы к зависимым переменным

[poSol(s) p1Sol(s) p2Sol(s)] = dsolve(eqn1, eqn2, eqn3) 

Это вы искали?

ода + два алгебраических уравнений

Если вы планируете решить оду, а затем к югу, что решение двух алгебраических уравнений, то

syms p0(s) p1(s) p2(s) lambda1 lambda2 mu1 mu2; 
eqn1=diff(p0,s)-1==-lambda1*p0 lambda2*p0+mu1*lambda2*p0/(s+mu2)+mu2*lambda1*p0/(s+mu1); 
[p0(s)] = dsolve(eqn1) 
eqn2=subs(s*p1==lambda1*p0(s)-mu2*p1(s)) 
eqn3=subs(s*p2(s)==lambda2*p0(s) - mu1*p2(s)) 
Смежные вопросы