Hi, I have the 4 equations mentioned below. I Ca,Cb,Cc are unknown. For a user input of Cd, I want to solve of the rest. The calculated numbers should ideally not be negative.
'Z' can be treated as different under inputs (they are not variables) Equations:
(Z-Z*Ca)/(Z) - Z*Ca*Cb=0
(Z-Z*Cb)/(Z) - (Z*Ca*Cb+Z*Cb*Cc) = 0
(-Z*Cc/Z) + Z*Ca*Cb-Z*Cb*Cc = 0
-Z*Cd/(Z) + Z*Cb*Cc = 0 (Cd is an input by the user too)
Need help with the matlab code

1 件のコメント

Ameer Hamza
Ameer Hamza 2018 年 5 月 3 日
Your system is Overdetermined, you will not get a solution unless one of the equations is linearly dependent on other equations (highly likely). Do you want a solution in the least square sense as done by @Torsten?

サインインしてコメントする。

 採用された回答

Torsten
Torsten 2018 年 5 月 3 日

0 投票

Cd=...;
Z=...;
fun=@(x)[1-x(1)-Z*x(1)*x(2);1-x(2)-Z*x(2)*(x(1)+x(3));-x(3)+Z*x(2)*(x(1)-x(3));-Cd+Z*x(2)*x(3)];
lb=[0 0 0];
ub=[Inf Inf Inf];
x0=[1 1 1];
x = lsqnonlin(fun,x0,lb,ub);
Ca = x(1)
Cb = x(2)
Cc = x(3)
Best wishes
Torsten.

2 件のコメント

Torsten
Torsten 2018 年 5 月 3 日
I just listed your four equations here where I set Ca=x(1), Cb=x(2) and Cc=x(3).
E.g.
(Z-Z*Ca)/(Z) - Z*Ca*Cb=0
-> 1-Ca-Z*Ca*Cb=0
-> 1-x(1)-Z*x(1)*x(2)=0
It should be easy for you to alter the line if the Z's are different.
Best wishes
Torsten.
Remston Martis
Remston Martis 2018 年 5 月 3 日
yes i read it wrong.. works perfectly. Thanks!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMathematics についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by