新手求助—函数调用方面的问题
这是我主程序的一部分,x(:,1)是ode45求出来的一组数,t_T和t_0也都赋值了,运行过程中fzero调用df出错,但我不知道怎么改正,请求高手指点,谢谢!!x_1=poly2sym(x(:,1),'t');
TL=(t_T-t_0);
dF=0;
F=0;
for ni=1:5
syms t
ani=2.*int(x_1.*cos(2.*ni.*pi.*t./TL),t,-TL./2,TL./2)./TL;
bni=2.*int(x_1.*sin(2.*ni.*pi.*t./TL),t,-TL./2,TL./2)./TL;
dF=dF+(ani.*2.*ni.*pi./TL).*sin(2.*ni.*pi.*t./TL)+(bni.*2.*ni.*pi./TL).*cos(2.*ni.*pi.*t./TL);
F=F+ani.*cos(2.*ni.*pi.*t./TL)+bni.*sin(2.*ni.*pi.*t./TL);
end
t=fzero(df,tspan);
给出的错误是这样的:
??? Error using ==> error
When the first input is a message identifier, the second input
must be a string.
Error in ==> fzero at 157
error('MATLAB:fzero:InvalidFUN',msg)
Error in ==> shoot2 at 36
t=fzero(df,tspan);
建议你用匿名函数或者函数文件的形式构造dF
例如:
f = @(x)x.^3-2*x-5;
z = fzero(f,2)
z =
2.0946 是df还是dF?? 大小写是不一样的! 回复 qibbxxt 的帖子
但是在这个程序中,我不会用匿名函数构造,因为是上一步中得到的,请指点!!谢谢! 回复 Happy99 的帖子
对不起,是书写错误,我昨天在各种试的过程的误写的,谢谢指正!!
页:
[1]