【发布时间】:2015-12-18 09:07:28
【问题描述】:
我希望这是正确的区域。我正在尝试让这段代码在 MatLab 中工作。
function y=test(x)
y=-x+(B/(B-1))*(r-a)*p+(B/(B-1))*(r-a)*(b((1-(b/x)^(B-1))/r- a)+p* ((b/x)^B))/(1-(b/x)^B);
end
然后我跳转到命令值并输入:
B=3.0515;
b=1.18632*10^5;
a=.017;
r=.054;
p=5931617;
然后我尝试通过键入以下内容来查找第一个等式的零点,但出现错误:
solution=fzero(@test,5000000)
我收到以下错误:
错误:文件:test.m 行:5 列:1 此语句不是 在任何函数中。 (它跟随着 END 终止 函数“test”的定义。)
新错误
使用 fzero 时出错(第 289 行) FZERO 无法继续,因为用户提供了 function_handle ==> @(x) (测试(x,B,b,a,r,p)) 失败并出现以下错误。
下标索引必须是正整数或逻辑数。
【问题讨论】:
-
欢迎来到 SO,请编辑您的问题以包含您收到的逐字错误消息。始终包括您在问题中遇到的确切错误。而且,如果您在命令行中定义
B、b、a等,它们在您的函数test中将没有作用域。所以就test而言,它们基本上是未定义的。
标签: matlab