![]() |
【求助】用fsolve、solve解三角函数方程组
function [X2,Y2,q0,o]=Jimmy2(q3,D,a,r)
x0=[0.1,0,0,0]; x= fsolve(@myfun,x0); Y1=x(2); X1=x(1); X2=X1+sin(q3)*r; Y2=Y1+cos(q3)*r; o=simplify(q3+acos(X1./sqrt(X1.^2+X2.^2))+atan(r./sqrt(X1.^2+X2.^2))); q0=q3; function myfun T1=simplify(sqrt(x(1).^2+x(2).^2-r.^2)+sqrt((x(1)+sin(q3)*r-a).^2+(x(2)+cos(q3)*r).^2)+(q3+x(3)+x(4))*r-D); T2=simplify(x(2)+tan(q3)*(x(1)-a+r/cos(q3))); T3=simplify(sin(x(3))*sqrt(x(1).^2+x(2).^2)-r); T4=simplify(cos(x4)*sqrt(x(1).^2+x(2).^2)-x(1)); end end 运行时总是出错: >> [X2,Y2,q0,o]=Jimmy2(0.4,400,200,10) ??? Error using ==> Jimmy2>myfun Too many input arguments. Error in ==> fsolve at 180 fuser = feval(funfcn{3},x,varargin{:}); Error in ==> Jimmy2 at 3 x= fsolve(@myfun,x0); 哪位大侠指点一下啊!!急!!!谢谢了 这四个方程组可以合成一个方程但是用solve解不出来不知道为什么!! 合成方程如下: T1=simplify(sqrt(x(1).^2+(tan(q3)*(x(1)-a+r/sin(q3))).^2-r.^2)+sqrt((x(1)+sin(q3)*r-a).^2+(tan(q3)*(x(1)-a+r/sin(q3))+cos(q3)*r).^2)+(q3+acsc(sqrt(x(1).^2+(tan(q3)*(x(1)-a+r/sin(q3))).^2)/r)+asec(sqrt(x(1).^2+(tan(q3)*(x(1)-a+r/sin(q3))).^2)/x(1)))*r-D); 还有关于初值怎么设才合理? |
回复: 【求助】用fsolve、solve解三角函数方程组
自己先回个吧!!好像是初值有问题!!!
|
回复: 【求助】用fsolve、solve解三角函数方程组
好好看看matlab的帮助文档里面有具体的例子
对于solve函数来说主要是用于求解符号方程或方程组的,在使用solve函数时,matlab调用的是Maple的内核,总所周知,Maple主要做符号运算,只能求解一些简单的数值问题。而且solve函数在求解时数值算法比较单一,具体的可以参考maple的帮助文件 |
所有时间均为北京时间。现在的时间是 03:09。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.