Computation problems of nonlinear algebraic simultaneous equations.
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello everyone. This is my first time posting a question. Perhaps a symbolic solution cannot be obtained because of the unknowns in the trigonometric functions. Still, I'm posting a question just in case. Thank you in advance for anyone who helps.
Below is a problem that is currently computed numerically, but not symbolically.
------------------------------------------------------------------------------------------------------------------------------------
syms g m1 m2 m3 m4 I1 S1 S2 theta1 theta2 theta3 theta4 theta5 mu1 mu2 mu3 mu4 mu5 mu6 r1 r2 r3 r4 N1 N2 N3 N4 N5 N5x N5z N6 N7 N8 N9 P2 alpha1 a1 a2 t Ur
eqn1 = N1==N3+mu3*N4+mu4*N6+mu5*N7+m2*a1;
eqn2 = N2==m3*g;
eqn3 = N3==N8*sin(theta2)+mu6*N8*cos(theta2);
eqn4 = N4==m4*g+S2;
eqn5 = N5x==P2*sin(theta1+theta3)+N1;
eqn6 = N5z==m1*g+P2*cos(theta1+theta3)+mu1*N1;
eqn7 = N6==-m2*g+mu1*N1-N2-N4;
eqn8 = N7==S1+mu2*N2+mu2*N3;
eqn9 = N8==(S1+mu2*N2+mu2*N3+m3*a2)/(cos(theta2)-mu6*sin(theta2));
eqn10 = N9==mu3*N4;
eqn11 = alpha1==(r1*P2*cos(theta3)-r3*m1*g*cos(theta1)-(r2-r4*cos(theta1))*(N1*sin(theta1)+mu1*N1*cos(theta1)))/I1;
eqn12 = a1==Ur*alpha1*r2*sin((Ur*alpha1*t^2)/2 + Ur*theta1) + Ur^2*alpha1^2*r2*t^2*cos((Ur*alpha1*t^2)/2 + Ur*theta1);
eqn13 = a2==a1*tan(theta2);
sol = solve([eqn1, eqn2, eqn3, eqn4, eqn5, eqn6, eqn7, eqn8, eqn9, eqn10, eqn11, eqn12, eqn13], [N1, N2, N3, N4, N5x, N5z, N6, N7, N8, N9, alpha1, a1, a2]);
SolN1 = simplify(sol.N1,'steps',1000)
------------------------------------------------------------------------------------------------------------------------------------
So I added or modified the command as below, but it still doesn't work.
------------------------------------------------------------------------------------------------------------------------------------
eqn1 = rewrite(eqn1,'log');
eqn2 = rewrite(eqn2,'log');
eqn3 = rewrite(eqn3,'log');
eqn4 = rewrite(eqn4,'log');
eqn5 = rewrite(eqn5,'log');
eqn6 = rewrite(eqn6,'log');
eqn7 = rewrite(eqn7,'log');
eqn8 = rewrite(eqn8,'log');
eqn9 = rewrite(eqn9,'log');
eqn10 = rewrite(eqn10,'log');
eqn11 = rewrite(eqn11,'log');
eqn12 = rewrite(eqn12,'log');
eqn13 = rewrite(eqn13,'log');
sol = solve([eqn1, eqn2, eqn3, eqn4, eqn5, eqn6, eqn7, eqn8, eqn9, eqn10, eqn11, eqn12, eqn13], [N1, N2, N3, N4, N5x, N5z, N6, N7, N8, N9, alpha1, a1, a2], 'IgnoreAnalyticConstraints',1);
------------------------------------------------------------------------------------------------------------------------------------
I wrote only the problematic parts of the command as shown below. Still not resolved. I think the problem is probably that I wrote "(Ur*alpha1*t^2)/2 + Ur*theta1" inside the trigonometric function.
------------------------------------------------------------------------------------------------------------------------------------
syms g m1 m2 m3 m4 I1 S1 S2 theta1 theta2 theta3 theta4 theta5 mu1 mu2 mu3 mu4 mu5 mu6 r1 r2 r3 r4 N1 N2 N3 N4 N5 N5x N5z N6 N7 N8 N9 P2 alpha1 a1 a2 t Ur
eqn1 = N1==N3+mu3*N4+mu4*N6+mu5*N7+m2*a1;
eqn11 = alpha1==(r1*P2*cos(theta3)-r3*m1*g*cos(theta1)-(r2-r4*cos(theta1))*(N1*sin(theta1)+mu1*N1*cos(theta1)))/I1;
eqn12 = a1==Ur*alpha1*r2*sin((Ur*alpha1*t^2)/2 + Ur*theta1) + Ur^2*alpha1^2*r2*t^2*cos((Ur*alpha1*t^2)/2 + Ur*theta1);
eqn1 = rewrite(eqn1,'log');
eqn11 = rewrite(eqn11,'log');
eqn12 = rewrite(eqn12,'log');
sol = solve([eqn1, eqn11, eqn12], [N1, alpha1, a1], 'IgnoreAnalyticConstraints',1);
Sol01 = simplify(sol.N1,'steps',1)
Sol02 = simplify(sol.alpha1,'steps',1)
Sol03 = simplify(sol.a1,'steps',1)
------------------------------------------------------------------------------------------------------------------------------------
As already mentioned, this problem can be solved numerically. Is it too complicated to solve symbolically?
댓글 수: 0
채택된 답변
Walter Roberson
2023년 10월 27일
Yes. It is too difficult to solve symbolically (at least according to Maple)
댓글 수: 3
John D'Errico
2023년 10월 27일
What @Walter Roberson said would be my exact response too. Computers are not all powerful (except on TV.)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear Algebra에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!