Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-07-25, 10:29   #1
jimmy0jimmy
初级会员
 
注册日期: 2009-07-20
年龄: 31
帖子: 2
声望力: 0
jimmy0jimmy 正向着好的方向发展
默认 【求助】用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);
还有关于初值怎么设才合理?
jimmy0jimmy 当前离线   回复时引用此帖
旧 2009-07-25, 10:44   #2
jimmy0jimmy
初级会员
 
注册日期: 2009-07-20
年龄: 31
帖子: 2
声望力: 0
jimmy0jimmy 正向着好的方向发展
默认 回复: 【求助】用fsolve、solve解三角函数方程组

自己先回个吧!!好像是初值有问题!!!
jimmy0jimmy 当前离线   回复时引用此帖
旧 2009-07-30, 22:37   #3
q2w2s2a2
初级会员
 
注册日期: 2009-07-30
年龄: 40
帖子: 2
声望力: 0
q2w2s2a2 正向着好的方向发展
默认 回复: 【求助】用fsolve、solve解三角函数方程组

好好看看matlab的帮助文档里面有具体的例子

对于solve函数来说主要是用于求解符号方程或方程组的,在使用solve函数时,matlab调用的是Maple的内核,总所周知,Maple主要做符号运算,只能求解一些简单的数值问题。而且solve函数在求解时数值算法比较单一,具体的可以参考maple的帮助文件
q2w2s2a2 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 11:44


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.