MATLAB Answers

Solving system of Nonlinear Equations

2 views (last 30 days)
Saumil
Saumil on 22 Jul 2011
Hi,
I might be missing something here: I am making use of the symbolic toolbox to solve the following system of equations. I have 3 equations of this kind:
f1 = Vs1 - Dpt2.*Z - V1;
f2 = Vs2 - Dpt5.*Z - V2;
f3 = Vs3 - Dpt7.*Z - V3;
Z, Vs1, Vs2 and Vs3 are simply integers/fractions
V1, V2, V3 are unknown and sym variables.
Dpt2, Dpt5 and Dpt7 are each functions of V1, V2 and V3. They are of the type: Sum terms of
((besselj(1,V1)).^2) .* ((besselj(0,V2)).^2) .* ((besselj(1,V3)).^2) + ........4 similar terms
and so on.
MATLAB solve() is not able to solve the equation. I have tried using Newton's method roughly by calculating the f1, f2 and f3 at some points and finding the change of f1, f2 and f3 w.r.t. V1, V2 and V3, but the inverse of the jacobian always goes to infinity.
Is there any another method to solve such equations?
Thanks a lot. I would appreciate any input. I can put the actual equations if required. I didn't put them yet because they are too long.

Accepted Answer

Yi Cao
Yi Cao on 22 Jul 2011
You can try fsolve.
  1 Comment
Saumil
Saumil on 22 Jul 2011
Thanks! It was tricky to use fsolve for symbolic equations, using subs(), but it seems to have done the trick. Thanks a lot!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by