Ошибка Matlab Dsolve с использованием параметров

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

    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.

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

1 ответ

Система ОДУ

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

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))
Другие вопросы по тегам