Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-10-31, 14:28   #1
if_only
初级会员
 
注册日期: 2009-10-31
年龄: 37
帖子: 1
声望力: 0
if_only 正向着好的方向发展
默认 matlab中fsolve的问题

我编写了一个程序使用矩量法求解微分方程,代码如下
function juliangfa =juliangfa(E,P,I,L,M0,n,N)
% N is the terms of the thaler expansion %
global e4 e5 e6
alpha=P/(E*I);
k0=M0/(E*I); % k0 is the initial curvature %
syms c1 c2 c3 s
theta=c1*s+c2*s^2+c3*s^3; % the fitting funtion %
R2=2*c2+6*c3*s+alpha*n*sin0(N,theta)+alpha*cos0(N,theta); % sin0 and cos0 are the thaler expansion of sin and cos %
e1=c1+2*c2*L+3*c3*L^2-k0 % the boundary condition %
e2=int(R2,s,0,L) % e2 is one of the equations %
R21=s*R2;
e3=int(R21,s,0,L)
e4=subs(e1);
e5=subs(e2);
e6=subs(e3);
c=fsolve('fangcheng',[1,1,1]',optimset('display','off'));
end
其中cos0和sin0是我编写的一个泰勒展开式的生成程序,确定没错
子程序fangcheng的代码是:
function q=fangcheng(p)
global e4 e5 e6
c1=p(1);
c2=p(2);
c3=p(3);
q(1)=e4;
q(2)=e5;
q(3)=e6;
end
错误的提示是:
??? Undefined function or method 'full' for input arguments of type 'sym'.
Error in ==> trustnleqn at 28
Fvec = full(Fvec);
Error in ==> fsolve at 378
[x,FVAL,JACOB,EXITFLAG,OUTPUT,msg]=...
Error in ==> juliangfa at 16
c=fsolve('fangcheng',[1,1,1]',optimset('display','off'));
如果我把得到的方程直接复制来替换fangcheng中的e4,e5,e6,使用c=fsolve('fangcheng',[1,1,1]',optimset('display','off'));就能得到结果
但是用我的一上程序就出现错误,求高人指点!
if_only 当前离线   回复时引用此帖
 

主题工具
显示模式

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

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



所有时间均为北京时间。现在的时间是 14:57


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