2个回答
展开全部
使用 fsolve 具体如下
运行主文件,代码如下
x0 = [0.01;0.01;0.01]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfsolvefun,x0,options); % Call optimize
x
然后新建个m文件 命名为myfsolvefun.m(即定义这个函数)
myfsolvefun.m里的代码如下
function F = myfsolvefun(sita)
x=2;y=3;z=4;l0=5;l1=6;l2=7;l3=8; %这里我随便赋的值,根据你自己的要求修改
F=[cos(sita(1))*(l1*sin(sita(2))+l2*sin(sita(2)+sita(3))+l3)-x;...
sin(sita(1))*(l1*sin(sita(2))+l2*sin(sita(2)+sita(3))+l3)-y;...
l0+l1*cos(sita(2))+l2*cos(sita(2)+sita(3))-z];
最后X为输出结果
运行主文件,代码如下
x0 = [0.01;0.01;0.01]; % Make a starting guess at the solution
options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfsolvefun,x0,options); % Call optimize
x
然后新建个m文件 命名为myfsolvefun.m(即定义这个函数)
myfsolvefun.m里的代码如下
function F = myfsolvefun(sita)
x=2;y=3;z=4;l0=5;l1=6;l2=7;l3=8; %这里我随便赋的值,根据你自己的要求修改
F=[cos(sita(1))*(l1*sin(sita(2))+l2*sin(sita(2)+sita(3))+l3)-x;...
sin(sita(1))*(l1*sin(sita(2))+l2*sin(sita(2)+sita(3))+l3)-y;...
l0+l1*cos(sita(2))+l2*cos(sita(2)+sita(3))-z];
最后X为输出结果
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
解复杂的非线性方程组请参看fsolve函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询