# How would I write a code to solve a system of equations?

17 views (last 30 days)

Show older comments

I need to solve a system of equations but I do not know the syntax for doing so. The equations are:

q1 = (1.53*10^-5)*t1^4 + (1.67*10^-2)*t1^3 + 6.85*t1^2 + 2746*t1 - 57793

q2 = 13.3*(t1-t2)

q3 = (1.53*10^-5)*t2^4 + (1.67*10^-2)*t2^3 + 6.85*t2^2 + 4846*t2 - 49161

also; q1=q2=q3

I'm new to MATLAB and not sure how to handle this many variables along with the scientific notation.

##### 2 Comments

### Answers (4)

sixwwwwww
on 20 Oct 2013

Edited: sixwwwwww
on 20 Oct 2013

Dear Omar, you can solve your system of equations using the following way:

t = sym('t%d', [1 2]);

q1 = 1.53e-5 * t(1)^4 + 1.67e-2 * t(1)^3 + 6.85 * t(1)^2 + 2746 * t(1) - 57793;

q2 = 13.3 * (t(1) - t(2));

q3 = 1.53e-5 * t(2)^4 + 1.67e-2 * t(2)^3 + 6.85 * t(2)^2 + 4846 * t(2) - 49161;

[solutions_t1, solutions_t2] = solve(q1 == q2 == q3, t(1), t(2))

Or

[solutions_t1, solutions_t2] = solve(q1 == q2, q2 == q3, t(1), t(2))

You can check which solutions are better because in first case you will get 4 solutions for both t1 and t2 and in second case you will get 16 solutions for both t1 and t2. I hope it helps. Good luck!

##### 25 Comments

Walter Roberson
on 20 Oct 2013

{q = 2003.839045, t1 = -819.5264017, t2 = -970.1909915},

{q = -10982.94224, t1 = -817.9943073, t2 = 7.790823431},

{q = 133.2164095, t1 = 20.04280634, t2 = 10.02653495},

{q = 13235.45859, t1 = 24.30348638, t2 = -970.8437757}

provided that you only want real-valued solutions.

This was done by substituting t1 for t(1) and t2 for t(2), and then plugging the three q equations into solve()

##### 0 Comments

David
on 21 Oct 2013

Edited: David
on 21 Oct 2013

In addition to the answers already posted, be sure to put sym() around each of your equations. That is to say, do the following:

syms t1 t2

q1 = sym( 1.53e-5*t(1)^4 + 1.67e-2*t(1)^3 + 6.85*t(1)^2 + 2746*t(1) - 57793 );

q2 = sym( 13.3*(t(1) - t(2)) );

q3 = sym( 1.53e-5*t(2)^4 + 1.67e-2*t(2)^3 + 6.85*t(2)^2 + 4846*t(2) - 49161 );

[solutions_t1, solutions_t2] = solve(q1 == q2, q2 == q3, t1, t2);

solve requires that your equations be symbolic objects which is guaranteed by using sym().

##### 2 Comments

Walter Roberson
on 21 Oct 2013

As long as anything in the equation is sym, the whole expression will be treated as sym. So

t = sym('t%d', [1 2]);

is enough to make the equations sufficiently sym() without requiring sym() around the equations.

David
on 22 Oct 2013

anjali wavhale
on 1 Dec 2020

how to do least square estimation for system with the prbs as input to it

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!