Date: May 27, 2013 11:29 AM
Author: Matt J
Subject: Re: I have 51 linear equations, consisting of 51 unknowns. How to solve it in Matlab by using matrix?
"J K" wrote in message <knvthf$87h$1@newscl01ah.mathworks.com>...

> > What do you mean by "separate the equations"?

>

> Let say I have 3 equations with 3 unknowns.

> 1x1 + 2x2 + 3x3 = 100

> 4x1+ 5x2 + 6x3 = 200

> 7x1 + 8x2 + 9x3 = 300

>

> Normally in Matlab, you will do this command in order to solve x1,x2,x3

>

> p=[1 2 3; 4 5 7; 7 8 9]'

> q=[100 200 300]'

> x=inv(p)*q

No. Once again you would normally NOT use inv(). The more efficient way is to use backslash

x=p\q

Compare the following

>>A=rand(3000);

>> tic; inv(A)*A(:,1); toc

Elapsed time is 1.956851 seconds.

>> tic; A\A(:,1); toc

Elapsed time is 0.623370 seconds.

>>

> But let's say I don't want to use the method/way that I write. What other options that I have in order to solve for the 51 unknowns?

================

You could also do

x=linsolve(p,q);

If your equations have special structure, LINSOLVE can take advantage of this. See doc linsolve.