我对matlab很新,并编写了以下函数在fsolve命令中使用。
function F = myfun(x)
F(1)=cos(phi3)+7*cos(x(2))-5*cos(x(5))+7*cos(x(1))-3*cos(phi2);
F(2)=sin(phi3)+7*sin(x(2))-5*sin(x(5))+7*sin(x(1))-3*sin(phi2)+4;
F(3)=2*cos(phi4)-14*cos(x(3))-5*cos(x(6))+7*cos(x(4))-2.5*cos(x(5))+7*cos(x(1))-3*cos(phi2);
F(4)=2*sin(phi4)-14*sin(x(3))-5*sin(x(6))+7*sin(x(4))-2.5*sin(x(5))+7*sin(x(1))-3*sin(phi2)+7;
F(5)=2*cos(phi4)-14*cos(x(3))-5*cos(x(6))+7*cos(x(4))+2.5*cos(x(5))-7*cos(x(2))-cos(phi3);
F(6)=2*sin(phi4)-14*sin(x(3))-5*sin(x(6))+7*sin(x(4))+2.5*sin(x(5))-7*sin(x(2))-sin(phi3)+3;`
我的问题的下一部分。我想使用关于x(1),x(2),... x(6)的F(1)到F(6)的导数 我想写一些代码,例如在命令窗口中,它可以为我完成这项工作,并生成带有衍生物的新功能。 (当然我可以轻松地手工完成,但这将是一个很好的实现)
我已经尝试过使用diff命令的各种选项,但似乎无法管理它。
我用这个函数作为 X = fsolve(@myfun,[α],选项) a是x(1)的初始值.. x(6) 现在我想从F(1)生成F(6)新函数G(1).. G(6)看起来像 G(1)= - SIN(phi3)dphi3 / DT-7sin(X(2))DX(2)/ dt的+ 5sin(X(5))DX(5)/ dt的... 在这个等式中,我将填充fsolve的结果,然后进一步使用它们来求解x(2)/ dt(角速度)