Solve a variable-size array of linear eqns

Hi,
I need to solve some (between 2 and 20, say) linear equations. Up til now I calculate the expressions in a loop, saving them in an array, e.g.
6
3 + 2*Y1
10 +0.5*Y1 - 3*Y2
and then I manually run:
A = solve('Y1=6','Y2=3+2*Y1','Y3=10+0.5*Y1-3*Y2','Y1','Y2','Y3')
I want to be able to save any number of these expressions and pass an array of them as input to the 'solve' function, so something like:
A = solve(Y)
Is this possible?
Thanks

 Respuesta aceptada

Andrew Newell
Andrew Newell el 22 de Jun. de 2011
It would be much faster to express this as a matrix equation, e.g.,
M = [1 0 0; -2 1 0; -0.5 3 1];
b = [6; 3; 10];
y = M\b % solve M*y = b
Or, if you prefer a symbolic solution,
M = sym([1 0 0; -2 1 0; -0.5 3 1]);
b = sym([6; 3; 10]);
y = M\b

1 comentario

eCon
eCon el 22 de Jun. de 2011
Thanks!
Embarrassed I didn't see this myself. I had to rework some of the earlier code to get it into a format where I could use your solution, but it's much easier than the route I was taking.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Mathematics en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Jun. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by