У меня 10 нелинейных уравнений,
L1 + 1.3*3*(P1^0.3) + 2*P1 = 12
L2 + 1.2*5*(P2^0.2) + 3*P2 = 20
L3 + 1.15*6*(P3^0.15) + 5*P3 = 28
L4 - L1*0.9*0.4*(X1^-0.1) = 0
L4 - L2*0.8*0.5*(X2^-0.2) = 0
L4 - L3*0.7*0.6*(X3^-0.3) = 0
P1 - 0.4*(X1^0.9) = 0
P2 - 0.5*(X2^0.8) = 0
P3 - 0.6*(X3^0.7) = 0
X1 + X2 + X3 = 10
У меня нет никаких первоначальных догадок для решений, однако все переменные по существу неотрицательны, т. е.,
L1>0, L2>>0, L3>> > 0, L4>>> > 0, P1>>>> > 0, P2>>>>>>0, P3>>>>>>>0, X1>>>>>>>>0, X2>>>>>>>>>0, X3>>>>>>>>>>0
Я пытаюсь решить эти уравнения, выполнив следующую команду,
clear
clc
syms L1 L2 L3 L4 P1 P2 P3 X1 X2 X3
sol=solve([ L1 + 1.3*3*(P1^0.3) + 2*P1 == 12, L2 + 1.2*5*(P2^0.2) + 3*P2 == 20, L3 + 1.15*6*(P3^0.15) + 5*P3 == 28, ...
L4 - L1*0.9*0.4*(X1^-0.1) == 0, L4 - L2*0.8*0.5*(X2^-0.2) == 0, L4 - L3*0.7*0.6*(X3^-0.3) == 0, ...
P1 - 0.4*(X1^0.9) == 0, P2 - 0.5*(X2^0.8) == 0, P3 - 0.6*(X3^0.7) ==0, X1+X2 +X3 == 10, ...
L1>0, L2>0, L3>0, L4>0, P1>0, P2>0, P3>0, X1>0, X2>0, X3>0], [L1, L2, L3, L4, P1, P2, P3, X1, X2, X3]);
Но он показывает ошибку как
Warning: 32 equations in 11 variables.
> In C:Program FilesMATLABR2013atoolboxsymbolicsymbolicsymengine.p>symengine at 56
In mupadengine.mupadengine>mupadengine.evalin at 97
In mupadengine.mupadengine>mupadengine.feval at 150
In solve at 170
Warning: Explicit solution could not be found.
> In solve at 179
>>
Как решить эти нелинейные уравнения?
UPDATE: DIFF была на самом деле разница, которая будет числом, скажем
10, 20 или 30. Я удалил DIFF отсюда.
У вас есть 10 уравнений, но у вас есть 10 переменных.
Вы можете помочь вручную.
Уменьшить линейное уравнение:
и
тогда получаем 4 уравнения по 4 переменным:
и попытаться решить
Я пытаюсь решить ее, но у меня из памяти.
Оно хочет более умный метод.