MATLAB程序小问题
有方程1/f^0.5=4log10(re*f^0.5)-0.4在re从2500到12500的取值范围内,可以分别计算出f的值定义方程,用fzero,for,及flot画出...
有方程1/f^0.5=4log10(re*f^0.5)-0.4
在re从2500到12500的取值范围内,可以分别计算出f的值
定义方程,用fzero,for,及flot画出re与f的图像
我的程序如下
定义方程:
function y=vonkarman(f)
global re
y=4*log10(re*f^0.5)-0.4-1/(f^0.5);
end
画图:
for i=2500:12500
re(i)=i;
re=i;
f(i)=fzero(@vonkarman,0.01);
end
plot(re,f)
为什么总是出错呢?
??? Operands to the || and && operators must be convertible to logical scalar values.
Error in ==> fzero at 309
elseif ~isfinite(fx) || ~isreal(fx)
谢谢各位大侠了~ 展开
在re从2500到12500的取值范围内,可以分别计算出f的值
定义方程,用fzero,for,及flot画出re与f的图像
我的程序如下
定义方程:
function y=vonkarman(f)
global re
y=4*log10(re*f^0.5)-0.4-1/(f^0.5);
end
画图:
for i=2500:12500
re(i)=i;
re=i;
f(i)=fzero(@vonkarman,0.01);
end
plot(re,f)
为什么总是出错呢?
??? Operands to the || and && operators must be convertible to logical scalar values.
Error in ==> fzero at 309
elseif ~isfinite(fx) || ~isreal(fx)
谢谢各位大侠了~ 展开
展开全部
追问
作业要求函数必须写成M文件==
不过我定义function y=fun(re,f)时
会显示f没有定义,如果re在后面则re没有定义
追答
function y=vonkarman(re,f)
y=4*log10(re*f^0.5)-0.4-1/(f^0.5);
end
%以上内容写到函数文件vonkarman.m里面保存
%以下在命令行运行,或者在另外一个脚本m文件里保存运行
re=2500:12500;
f=zeros(size(re));
for i=1:length(re)
f(i)=fzero(@(f) vonkarman(re(i),f),0.01);
end
plot(re,f);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询