Solve 4 equations with 3 unknowns

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 Comment

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?

Sign in to comment.

 Accepted Answer

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 Comments

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.
yes i read it wrong.. works perfectly. Thanks!

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!