Solving inequalities without Symbolic Math Toolbox
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Andrik Rampun
le 8 Avr 2019
Commenté : Andrik Rampun
le 9 Avr 2019
Hi All,
I just realised that Matlab compiler does not support Symbolic Math Toolbox after running my executable file. Is there any alternative of solving inequalities without using Symbolic Math Toolbox?
Here's my source code
syms a b c
eq1 = a*xCoords(1)^2+b*xCoords(1)+c; % equation 1
eq2=a*xCoords(2)^2+b*xCoords(2)+c;% equation 2
eq3=a*xCoords(3)^2+b*xCoords(3)+c; % equation 3
final_eq = solve([eq1==yCoords(1), eq2==yCoords(2), eq3 == yCoords(3)]);
var_a = abs(final_eq.a);
var_b = (final_eq.b);
var_c = (final_eq.c);
It's a simple program to solve three quadratic equations (eventually to get three other variables). I wonder if my code can be rewriten without using Symbolic Math Toolbox?
Thanks a lot
0 commentaires
Réponse acceptée
David Goodmanson
le 9 Avr 2019
Hi Andrik,
I'm not sure why you are calling these equations 'inequalities', but if you are looking for a numerical solution to this, then you can use the backslash solution method that Matlab was basically founded on.
xCoords = [4 2 7]';
yCoords = [1 3 -4]';
syms a b c
eq1 = a*xCoords(1)^2+b*xCoords(1)+c; % equation 1
eq2=a*xCoords(2)^2+b*xCoords(2)+c;% equation 2
eq3=a*xCoords(3)^2+b*xCoords(3)+c; % equation 3
final_eq = solve([eq1==yCoords(1), eq2==yCoords(2), eq3 == yCoords(3)]);
var_a = abs(final_eq.a)
var_b = (final_eq.b)
var_c = (final_eq.c)
% numerical linalg solution
% form the vandermonde matrix (xCoords and yCoords are column vectors)
vander = [xCoords.^2 xCoords ones(size(xCoords))]
abc = vander\yCoords % abc(1) = var_a, etc.
The linalg solution gives the same result except in double precision rather than the fractions produced by sym. Also the sign of var_a is different because the linalg solution has not yet taken the absolute value of that variable.
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!