Solving trigonometric equations in MATLAB

2 visualizaciones (últimos 30 días)
Kubilay AKPINAR
Kubilay AKPINAR el 24 de Mzo. de 2020
Comentada: Kubilay AKPINAR el 26 de Mzo. de 2020
Hi there,
I am trying to solve these two equations;
r1.cos(x1)=r2+r3.cos(x2)+r4.cos(x3)
r1.sin(x1)=r5+r3.sin(x2)+r4.sin(x3)
r1,r2,r3,r4,r5 and x1 are known, x2 and x3 are the unknowns. I need to obtain x2 and x3 values according to changing x1 value (between 100 and 126 degree).
I am a begginner for MATLAB, could you please help me out?
Thanks in advance.

Respuesta aceptada

Birdman
Birdman el 24 de Mzo. de 2020
Try the following code. It should help you:
r1=1;r2=2;r3=3;r4=4;r5=5;%random values
x1=100:1:126;
syms x2 x3
for i=1:numel(x1)
eq1=r1*cos(x1(i))==r2+r3*cos(x2)+r4*cos(x3);
eq2=r1*sin(x1(i))==r5+r3*sin(x2)+r4*sin(x3);
sol(i)=vpasolve([eq1 eq2],[x2 x3]);
end
The solutions are stored in sol variable. You can reach them by typing
sol(1).x2
sol(1).x3
sol(2).x2
sol(2).x3
.
.
and so on.
  12 comentarios
Kubilay AKPINAR
Kubilay AKPINAR el 26 de Mzo. de 2020
Editada: Kubilay AKPINAR el 26 de Mzo. de 2020
Hello again,
I am sorry for late response but your codes work perfectly, it was my fault, I have correct answers now. However, I am continuing to solve other problems just like the one I posted here by using your way but I am having another problem.
This is my code;
format short g
%Angle
ro2b=7.25; ro2d=1.85; ro4a=5.79; rab=1.43; ro4d=3.45;
th2=100:126;
syms x2 x3
th4=zeros(1,27);
th3=zeros(1,27);
for i=1:numel(th2)
eq1=ro2b*cosd(th2(i))==ro2d+ro4a*cosd(x2)+rab*cosd(x3);
eq4=ro2b*sind(th2(i))==ro4d+ro4a*sind(x2)+rab*sind(x3);
sol(i)=vpasolve([eq1 eq4],[x2 x3]);
end
for j=1:27
th4(1,j)=sol(j).x2;
th3(1,j)=sol(j).x3;
end
%Velocity
w2=4;
syms w3 w4
for t=1:numel(th2)
eq3=-ro2b*sind(th2(t))*w2==-ro4a*sind(th4(t,1))*w4-rab*sind(th3(t,1))*w3;
eq4=ro2b*cosd(th2(t))*w2==ro4a*cosd(th4(t,1))*w4+rab*cosd(th3(t,1))*w3;
sol(t)=vpasolve([eq3 eq4],[w3 w4]);%PROBLEM IS HERE
end
w3=zeros(27,1);
w4=zeros(27,1);
for a=1:27
w3(a,1)=sol(a).w3;
w4(a,1)=sol(a).w4;
end
I get correct results for theta2 theta3 and theta4 but when I try to solve another equation by using the same way I am having this error;
Subscripted assignment between dissimilar structures.
Error in Untitled2 (line 26)
sol(t)=vpasolve([eq3 eq4],[w3 w4]);
I did a search online but I couldn't understand answers, I think there's something different. Could you help me please?
Kubilay AKPINAR
Kubilay AKPINAR el 26 de Mzo. de 2020
I detected my mistake, I must use different names for this piece of code;
sol(i)=vpasolve([eq1 eq4],[x2 x3]);
sol(t)=vpasolve([eq3 eq4],[w3 w4]);
there are two "sol" matrices, that's the problem. I changed the second one as "solu" and the error disappeared. Thanks anyway.

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.

Community Treasure Hunt

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

Start Hunting!

Translated by