3 Variables in 3 Equations (nonlinear)

2 views (last 30 days)
Hi all.
I have to solve the following equations:
  • A1*X + A2*Y + A3*Z = A4 (a plane)
  • B1*X + B2*Y + B3*Z = B4 (a plane)
  • (X-T1)^2 + (Y-T2)^2 + (Z-T3)^2 = D^2 (a sphere)
,where A,B,T,D are known constants, and X Y Z are the solution that I am looking for.
There are exactly 2 possible solutions (intersection points between two planes and a sphere), and I know how to choose the right one (based on the signs of X Y Z).
The main problem is that I have to solve these equations in a for loop (millions of times), where each iteration A and B change, therefore I need to do it as efficiently as possible.
I tried using "fsolve", but it takes much longer than I can allow.
One possible way is to calculate the intersection line between the two planes, and look for a point on that line that satisfies the third equation.
Is there a simpler way you can think of to calculate X Y Z in a loop? Can I somehow get rid of the loops and calculate the entire set of points at once?
Thank you.

Accepted Answer

jeewan atwal
jeewan atwal on 21 Sep 2019
USE Multidimensional Newton-Raphson method to solve non-linear eqs.

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!