Calculate a letter from equation with letters.

5 vues (au cours des 30 derniers jours)
Joji Mori
Joji Mori le 15 Juin 2020
Modifié(e) : Stephan le 15 Juin 2020
Hello.
I am just wondering that how I can calculate a letter from the equation with letters. For example here,
if I want to get cos1 and sin1 from these equation, how do I need to type the function??
syms Xe Ye a1 a2 cos1 cos2 sin1 sin2
Xe = a2*(cos1*cos2-sin1*sin2)+a1*cos1;
Ye = a2*(sin1*cos2)+a1*sin1;
Thank you in advance.

Réponse acceptée

KSSV
KSSV le 15 Juin 2020
syms Xe Ye a1 a2 cos1 cos2 sin1 sin2
eqn1=Xe == a2*(cos1*cos2-sin1*sin2)+a1*cos1;
eqn2=Ye == a2*(sin1*cos2)+a1*sin1;
sol = solve([eqn1, eqn2],cos1,sin1)
sol.sin1
sol.cos2
  1 commentaire
Joji Mori
Joji Mori le 15 Juin 2020
Thank you! That is what I want it!

Connectez-vous pour commenter.

Plus de réponses (2)

Walter Roberson
Walter Roberson le 15 Juin 2020
syms Xe Ye a1 a2 cos1 cos2 sin1 sin2
Xe = a2*(cos1*cos2-sin1*sin2)+a1*cos1;
Ye = a2*(sin1*cos2)+a1*sin1;
sol = solve([Xe,Ye],[sin1,cos1])
sol =
struct with fields:
sin1: [1×1 sym]
cos1: [1×1 sym]
>> sol.sin1
ans =
0
>> sol.cos1
ans =
0

Stephan
Stephan le 15 Juin 2020
Modifié(e) : Stephan le 15 Juin 2020
You might want to do this:
syms Xe Ye a1 a2 cos1 cos2 sin1 sin2
eq(1) = Xe == a2*(cos1*cos2-sin1*sin2)+a1*cos1;
eq(2) = Ye == a2*(sin1*cos2)+a1*sin1;
sin1_sol = isolate(eq(2),sin1);
cos1_sol = isolate(eq(1),cos1);
cos1_sol = subs(cos1_sol,sin1,rhs(sin1_sol));
pretty(sin1_sol)
pretty(cos1_sol)
results in:
Ye
sin1 == ------------
a1 + a2 cos2
Ye a2 sin2
Xe + ------------
a1 + a2 cos2
cos1 == -----------------
a1 + a2 cos2

Catégories

En savoir plus sur Get Started with Symbolic Math Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by