迭代法求一元三次方程
简介:本文讲解如何使用迭代法来解,一元三次方程。
题目:
设计精度函数:
#include<iostream>
#include<cmath>
using namespace std;
#define epsilon 1e-4 // 定义精度
int RealNe(double x, double y) // 判断一方是否大于另一方 在精度epsilon
// 的前提下
{
return x - y > epsilon || y - x > epsilon;
}
double Phi(double x) // 这个是由上面公式等价转换得到的
{
return (x * x * x + 14) / 15;
}
double Iterate(double x) // 迭代法
{
double x0, x1 = x;
do
{
x0 = x1;
x1 = Phi(x0);
}
while(RealNe(x0, x1));
return x1;
}
int main()
{
double x0, x;
cout << "x0 = ";
cin >> x0;
x = Iterate(x0);
cout << "x = " << x << endl;
return 0;
}
测试样例: