Solve fails to find a solution for trivial linear system
Mostrar comentarios más antiguos
I'm trying to find the value of G in the following set of equations by code:
clear all; clc;
syms R T S u yr y B A G
eq1 = R*u == T*yr - S*y;
eq2 = y == (B/A)*u;
eq3 = y == G*yr;
solve([eq1,eq2,eq3], G)
However, solve fails with an empty solution set, although this system has a trivial answer.
It's easy to see how it can be done, from eq1:
u == (T*yr - S*y)/R
From eq2:
y == (B/A)*(T*yr - S*y)/R
Thus:
y = yr*(B*T)/(A*R + B*S)
Finally, from eq3:
G = (B*T)/(A*R + B*S)
I can't understand why solve fails in this case. I appreciate any help I can get.
Respuesta aceptada
Más respuestas (1)
Star Strider
el 6 de Mzo. de 2016
Sometimes, you have to lead it gently by the hand:
syms R T S u yr y B A G
eq1 = R*u == T*yr - S*y;
eq2 = y == (B/A)*u;
eq3 = y == G*yr;
eq4 = solve(eq2, eq3);
yr = eq4.yr;
eq5 = subs(eq1, yr);
G_solved = solve(eq5, G)
G_solved =
-(B*S*u)/(A*(R*u - T*yr))
1 comentario
Daniel
el 6 de Mzo. de 2016
Categorías
Más información sobre Programming en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!