Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB-正确定义函数和运行脚本_Matlab - Fatal编程技术网

MATLAB-正确定义函数和运行脚本

MATLAB-正确定义函数和运行脚本,matlab,Matlab,我试图为二分法编写一个程序,但我不完全理解如何正确定义函数和运行脚本。我搜索过谷歌,看过YouTube视频和MATLAB教程,但我就是不明白。我希望这里有人能帮助我,一旦我提出我的代码,我得到的错误消息,以及我应该看到的 代码: function [f] = Bisection(a,b,Nmax,TOL) f(x)= x^3 - x^2 + x; i=1; BisectA=f(a); while i <= Nmax p=a+(b-a)/2; BisectP=f(p);

我试图为二分法编写一个程序,但我不完全理解如何正确定义函数和运行脚本。我搜索过谷歌,看过YouTube视频和MATLAB教程,但我就是不明白。我希望这里有人能帮助我,一旦我提出我的代码,我得到的错误消息,以及我应该看到的

代码:

function [f] = Bisection(a,b,Nmax,TOL)
f(x)= x^3  - x^2 + x;
i=1;
BisectA=f(a);
while i <= Nmax
    p=a+(b-a)/2;
    BisectP=f(p);
    if BisectP == 0 || (b-a)/2 < TOL        
        disp('p');
    end
    i=i+1;
    if BisectA*BisectP > 0
        a=p;
        BisectA=BisectP;
    else
        b=p;
    end
end
disp('Method failed after num2str(Nmax) iterations, Nmax=', Nmax);
我不知道如何定义“x”??另外,我应该创建多个函数吗?我想把它们都放在一个文件里


谢谢。

发生错误是因为
x
确实未定义。如果您试图创建一个以
x
为参数的

f = @(x)x.^3-x.^2+x;

然后,您可以像稍后一样调用
f(a)
。另一个潜在问题是
二分法
函数返回
f
。您想让它返回函数句柄吗?

我不知道函数句柄是什么意思。你会建议我的函数不返回f.h.,还是不返回?
f = @(x)x.^3-x.^2+x;