P1024 一元三次方程求解

本文介绍了如何使用牛顿迭代法解决一元三次方程。通过构造三次函数并找到极值点,将x轴分为三个区间,然后运用牛顿迭代法不断逼近根的精确值。牛顿迭代法的迭代公式为Xn+1 = Xn - f(Xn) / f'(Xn),通过不断迭代得到更接近零点的解。
摘要由CSDN通过智能技术生成

在这里插入图片描述
思路:一元三次方程有3个不相同的根,说明曲线必然是下面俩种情况中的其中一种,

在这里插入图片描述
那我们的思路就很清晰了,构造一个三次函数,f(x) = ax^3 + bx^2 + cx + d,对这个三次函数进行求导,导数为0的所对应的点为极值点,然后我们只需要讲整个x轴分成三个区间[-∞, p1), [p1, p2], (p2, +∞), (p1:第一个极值点的横坐标,p2:第二个极值点的横坐标),然后可以选择用二分或者牛顿迭代法无限逼近,直到达到题目所需的精度,我这里主要介绍牛顿迭代法的解法

牛顿迭代法:首先选择一个接近函数f(x)的零点x0,计算相应的f(x0)和切线的斜率f’(x0)。然后我们计算穿过点(x0, f(x0))并且斜率为f’(x0)的直线和x轴的交点的坐标,也就是求以下方程的解
0 = (x - x0)*f’(x0) + f(x0)
我们讲新求得的点的x坐标命名为x1,通常x1会比x0更接近f(x) = 0的解,因此我们可以用x1进行下一轮的迭代。迭代公式可以化简成;
Xn+1 = Xn - f(Xn) / f’(Xn)
在这里插入图片描述
来源:维基百科——牛顿法

#include <iostream>
#include<cstdio>
#include<cmath>
using namespace std;

double a, b, c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值