查看单个帖子
旧 2009-04-11, 18:40   #2
hrt
初级会员
 
注册日期: 2009-03-11
年龄: 38
帖子: 9
声望力: 0
hrt 正向着好的方向发展
默认 回复: 急!请MATLAB高手帮我解这道隐函数方程

可利用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的选取,否则可能不收敛。
~ ~
hrt 当前离线   回复时引用此帖