声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1458|回复: 4

[编程技巧] 新手求助—函数调用方面的问题

[复制链接]
发表于 2010-9-12 17:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
这是我主程序的一部分,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);
回复
分享到:

使用道具 举报

发表于 2010-9-12 20:36 | 显示全部楼层
建议你用匿名函数或者函数文件的形式构造dF
例如:

  1. f = @(x)x.^3-2*x-5;
  2. z = fzero(f,2)
  3. z =
  4.     2.0946
复制代码
发表于 2010-9-13 00:21 | 显示全部楼层
是df还是dF?? 大小写是不一样的!
 楼主| 发表于 2010-9-13 09:02 | 显示全部楼层
回复 qibbxxt 的帖子


    但是在这个程序中,我不会用匿名函数构造,因为是上一步中得到的,请指点!!谢谢!
 楼主| 发表于 2010-9-13 09:03 | 显示全部楼层
回复 Happy99 的帖子


    对不起,是书写错误,我昨天在各种试的过程的误写的,谢谢指正!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 18:58 , Processed in 0.059746 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表