没有实际解释错误的错误

时间:2019-03-16 17:49:41

标签: matlab

好,所以我定义了函数MetBisectiei,它具有以下代码:

function [xaprox] = MetBisectiei(Fun,a,b,eps)

Fa = Fun(a);
Fb = Fun(b);
if Fa*Fb>0
    xaprox = ('Error: The function has the same sign at points a and b.');
else
    N=ceil((log10(b-a)-log10(eps))/log10(2));
    for i = 1:n
        xaprox = (a+b)/2;
        Fxaprox=Fun(xaprox);
        if(Fxaprox == 0)
            break
        end

        if Fa*Fxaprox<0
            b=Fxaprox;
        else
            a=xaprox;
            Fa=Fxaprox;
        end
    end
end

当我尝试实际使用该函数查找方程式的解时,出现以下错误,该错误实际上并不能解释问题所在:

Error in tema2_2 (line 8)
xaprox = MetBisectiei(f,0,1,eps);

找到方程式解的代码是这样的:

syms x
f = x^3-7*x^2+14*x-6;
f = matlabFunction(f);
x = 0:4;
y = f(x);
plot(x,y);
eps = 10^(-5);
xaprox = MetBisectiei(f,0,1,eps);

1 个答案:

答案 0 :(得分:1)

我在这里看到的错误很少。首先,您应该终止

end

使用if,在您的示例中可见的那个只需关闭n语句。第二个问题是N未定义,可能您错过了matlab区分大小写的情况,并且n不等于n=ceil((log10(b-a)-log10(eps))/log10(2)); 。所以你应该:

xaprox = 0.5210

如果您解决了这两个问题-您的代码完成无误,({{1}})已在Matlab R2017b上进行了测试。