我如何在 Scilab 中使用 Newton Raphson 方法找到函数的所有根?

How can i find all roots for a function using Newton Rapshon method in Scilab?

我需要找到这个函数 f(x)=-2x^4+x^3-2x+3 在给定区间 [-1.5 ; 内的所有根1.5],准确度 <0.0001。然后我必须绘制相对错误。 所以我得到了这段代码,但它不起作用。

deff('y=f(x)','y=-2x^4+x^3-2x+3')
a=input("Enter value of interval a:")
b=input("Enter value of interval b:")
n=input("Enter the number of iteration n:")
x0=(a+b)/2
for i=1:n
    disp([i,x0])
    x1=x0-f(x0)/z(x0)
    if abs(x1-x0)<0.00001 then
        disp("We get required accuracy")
        break;
    end
    x0=x1
end

你的代码中有2个pb;

  • f函数的定义必须是

    deff('y=f(x)','y=-2*x^4+x^3-2*x+3')

  • 您没有在代码中定义 z 函数。它应该计算 f 在 x

    处的导数

    deff('y=z(x)','y=-8*x^3+3*x^2-2')