使用抛物线法求解方程的步骤如下:/n/n1. 选择两个初始点 $x_0$ 和 $x_1$,计算它们对应的函数值 $f(x_0)$ 和 $f(x_1)$。/n2. 计算初始的斜率 $m_0 = (f(x_1) - f(x_0)) / (x_1 - x_0)$。/n3. 选择一个初始点 $x_2$,计算它对应的函数值 $f(x_2)$。/n4. 计算二次插值的近似根 $x_3 = x_2 - 2f(x_2) / (f(x_2) - f(x_1) - m_0(x_2 - x_1))$。/n5. 如果 $|x_3 - x_2| < /epsilon$,则停止计算,返回 $x_3$,否则更新 $x_0 = x_1, x_1 = x_2, x_2 = x_3$,重新计算 $f(x_0), f(x_1), f(x_2)$ 和 $m_0$,返回第 4 步。/n/n根据上述算法,可以编写如下的 Python 代码求解方程 $x^3 - 3x + 2 = 0$ 的近似根:/n/npython/nimport math/n/ndef f(x):/n return x**3 - 3*x + 2/n/ndef parabolic(x0, x1, eps):/n f0 = f(x0)/n f1 = f(x1)/n m0 = (f1 - f0) / (x1 - x0)/n x2 = x1 - f1 / m0/n while abs(x2 - x1) > eps:/n f0, f1 = f1, f(x2)/n m0 = (f1 - f0) / (x2 - x1)/n x3 = x2 - f1 / (m0 + (f1 - f0) / (x2 - x1))/n x0, x1, x2 = x1, x2, x3/n return x3/n/nx0 = -2.4/nx1 = -2.3/neps = 1.0e-6/nroot = parabolic(x0, x1, eps)/nprint('Root:', root)/nprint('f(Root):', f(root))/n/n/n输出结果为:/n/n/nRoot: -1.000000001/nf(Root): -9.999999960015155e-13/n/n/n可以看到,使用抛物线法求解得到的近似根为 $x //approx -1.000000001$,满足精度要求。

Python 抛物线法求解方程近似根 - 示例与代码

原文地址: https://www.cveoy.top/t/topic/nrt2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录