ehost 发表于 2007-1-22 09:51

请教大家一个问题

怎样用科尔布鲁克方程求损失系数?
我是这样编的
函数:
function value = colebrook(lambda,re,d,delta)
value = 1/sqrt(lambda)+2*log10( delta/(3.7*d)+2.51/(re*sqrt(lambda)));
程序:
options = optimset('display','off');
lambda = fzero('colebrook',),options,re,d,delta;
其中re=80000,d=8,delta=0.01都已经用input输入了,求lambda.
matlab老是提示
??? Error using ==> fzero
FZERO cannot continue because user supplied function ==> colebrook
failed with the error below.

Input argument 'delta' is undefined.

Error in ==> f:\MATLAB6p5\work\lost.m
On line 20==>             lambda = fzero('colebrook',),options,re,d,delta;


可是我的delta已经定义了,怎么样改一下,请教各位高手。

lxq 发表于 2007-1-22 10:20

lambda = fzero('colebrook',),options,re,d,delta;

这是什么格式呀?

xjzuo 发表于 2007-1-22 10:22

回复

基本的错误很多,请仔细检查你的代码.
fzero语句中" )," 明显不对.
另:我算了一下,按你给的参数,没有解.建议改参数.

ehost 发表于 2007-1-22 10:29

给个改法吧,我今天早上才开始学MATLAB,被逼做作业没办法呀

ehost 发表于 2007-1-22 11:13

呵呵,解决了,谢谢版主,确实是根的范围搞错了。
页: [1]
查看完整版本: 请教大家一个问题