Solving symbolic array.

8 visualizaciones (últimos 30 días)
Kristian Dimitrov
Kristian Dimitrov el 30 de Jun. de 2024
Editada: Torsten el 30 de Jun. de 2024
I am working with symbolic vector of 1xN size. The vector contains N eqations in the from of
X == a + b + c
Y == X*(d + e + f)
Z == Y + X
I am suing subs to substitute the coefficients a b c d e f with numeric values. The result is in the form of
X == g
Y ==X*h
Z == Y +X
It sould be quite straigh forward to solve for Z since all variables are numeric, but for crying out loud I cannot make matlab to solve for Z.
Any ideas?
  2 comentarios
Torsten
Torsten el 30 de Jun. de 2024
Please include your code so far.
Kristian Dimitrov
Kristian Dimitrov el 30 de Jun. de 2024
Editada: Kristian Dimitrov el 30 de Jun. de 2024
This are the type of inputs that i am using
syms a b c d e
eqn = transpose(str2sym("[X == a+b+c, Y == X*(d+e), Z == X+Y]"));
eqn_S = subs(eqn,{a,b,c,d,e},{[1 2 3 4 5]});
and the outout i am getting
eqn_S =
X == 6
Y == 9*X
Z == X + Y
I tried vpa solve etc. but cannot find syntaxis that works properly to solve for Z.
One way i tried to solve it to solve each row separately and substitute its value in the following equations, but there must be more elegant solution to the problem.

Iniciar sesión para comentar.

Respuesta aceptada

Kristian Dimitrov
Kristian Dimitrov el 30 de Jun. de 2024
vpasolve works perfetcly to solve it numerically.
syms a b c d e
eqn = transpose(str2sym("[X == a+b+c, Y == X*(d+e), Z == X+Y]"));
eqn_S = subs(eqn,{a,b,c,d,e},{[1 2 3 4 5]});
vpasolve(eqn_S)
  1 comentario
Torsten
Torsten el 30 de Jun. de 2024
Editada: Torsten el 30 de Jun. de 2024
syms a b c d e X Y Z
eqn = transpose(str2sym("[X == a+b+c, Y == X*(d+e), Z == X+Y]"))
eqn = 
sol = solve(eqn,[X,Y,Z]);
sol = struct with fields:
X: a + b + c Y: (d + e)*(a + b + c) Z: a + b + c + a*d + a*e + b*d + b*e + c*d + c*e
sol.Z = simplify(sol.Z)
sol = struct with fields:
X: a + b + c Y: (d + e)*(a + b + c) Z: (d + e + 1)*(a + b + c)
subs(sol,[a,b,c,d,e],[1,2,3,4,5])
ans = struct with fields:
X: 6 Y: 54 Z: 60

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by