How to solve a linear systems with 3 variables

5 visualizzazioni (ultimi 30 giorni)
Erick Tejada Compres
Erick Tejada Compres il 24 Mar 2022
Risposto: Raj il 1 Ott 2023
Hello everyone,
When I run my code, I'm having some issues in the line:
[theta1,theta2,theta3] = solve([X==x,Y==y,Z==z],[theta1 theta2 theta3])
The line is giving me a warning message (unable to find explicit solution) and the results are "Empty sym: 0-by-1"
How would I put this into matlab and solve it . Sorry for what is probably such a simple question, but I have days figuring out how to solve it. Thanks for your help.
La = 4;
Lb = 10;
Lc = 12;
syms theta1 theta2 theta3 X Y Z
assume(X, 'Real');
assume(Y, 'Real');
assume(Z, 'Real');
ParamAngular = [theta1 La 0 90; theta2 0 Lb 0; theta3 0 Lc 0];
ParamTableAngular = DHTable(eval(ParamAngular))
[theta1,theta2,theta3] = solve([X==x,Y==y,Z==z],[theta1 theta2 theta3])
function [ParameterTable] = DHTable(Matrix)
Matrix = string(Matrix);
Theta = Matrix(:,1);
d = Matrix(:,2);
a = Matrix(:,3);
Alpha = Matrix(:,4);
ParameterTable = table(Theta,d,a,Alpha);
end
function [X,Y,Z] = DHEquations(ParameterTable)
Temp = eye(4);
A =@(theta,d,a,alpha) [cosd(theta) -cosd(alpha)*sind(theta) sind(alpha)*sind(theta) a*cosd(theta);
sind(theta) cosd(alpha)*cosd(theta) -sind(alpha)*cosd(theta) a*sind(theta);
0 sind(alpha) cosd(alpha) d;
0 0 0 1];
[L,~] = size(ParameterTable);
for i = 1:L
theta = ParameterTable(i,1);
d = ParameterTable(i,2);
a = ParameterTable(i,3);
alpha = ParameterTable(i,4);
Temp = Temp * A(theta,d,a,alpha);
end
X = simplify(Temp(1,4));
Y = simplify(Temp(2,4));
Z = simplify(Temp(3,4));
end

Risposte (1)

Raj
Raj il 1 Ott 2023
Hi Erick,
I understand that you are facing issues to solve a linear system with 3 variables.
I tried reproducing the error through the code you sent and observed that the compiler is not able to recognize variables x,y,z. Maybe you should check and try rectifying this.
Additionally I would like to point out inside solve function
[y1,...,yN] = solve(eqns,vars)
The ‘eqns’ refers to the system of equations, specified as symbolic expressions or symbolic equations. If any elements of eqns are symbolic expressions (without the right side), solve equates the element to 0. Kindly verify the equation and match it with the equation you are trying to solve.
For more information on this refer the following:
  1. ‘solve’ function: https://www.mathworks.com/help/symbolic/sym.solve.html
  2. Solve system of Linear Equations: https://www.mathworks.com/help/symbolic/solve-a-system-of-linear-equations.html
I hope this resolves your query!

Categorie

Scopri di più su Symbolic Math Toolbox in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by