Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-03-11
年龄: 38
帖子: 9
声望力: 0 ![]() |
![]()
可利用fsolve函数求解;
先编写函数M文件,如下: function y=f(x,a) %x是数组,存储theta1、theta2,a是theta1的值 y(1)=x(1)-a; l1=0.7;l2=1.3;l3=0.9;l4=1.5; y(2)=l1*cos(x(1))+l2*sqrt(1-((l3*sin(x(2))-l1*sin(x(1)))/l2)^2)-l3*cos(x(2))-l4; 再在matlab命令行中输入: >> x0=[0,0.2]; >> [x,fv,ef]=fsolve(@f,x0,[],0) 即可得到: x = 0 1.4033 fv = 1.0e-007 * 0 0.5511 即:theta1=0时,theta2=1.4033(rad) 其它情况依此即可,要注意初值x0的选取,否则可能不收敛。 ~ ~ |
![]() |
![]() |