二分逼近/牛顿迭代——一元高次非线性方程求解
2016-08-29 15:15
337 查看
#include"iostream" #include"cstdio" #include"cstring" #include"cstdlib" #include"cmath" #define precision 0.00000001 using namespace std; int count=0; //一元多次方程求解 double function(double x) { return 2*x*x+3.2*x-1.8; } double binary(double x,double y) { double mid=(x+y)/2.0; while(fabs(x-y)>precision) { if(function(mid)==0) break; if(function(x)*function(mid)<0) y=mid; else x=mid; mid=(x+y)/2; count++; } return mid; } double function2(double x) //返回导数,高精度代倒数 { return (function(x+0.000005)-function(x-0.000005))/0.00001; } double newtown(double x) { double x1=x-function(x)/function2(x); while(fabs(x1-x)>precision) { if(function(x1)==0) break; x=x1; x1=x-function(x)/function2(x); count++; } return x1; } int main() { cout<<binary(-0.8,8.0)<<endl; cout<<count<<endl; count=0; cout<<newtown(8)<<endl; cout<<count<<endl; count=0; cout<<newtown(-8)<<endl; cout<<count<<endl; return 0; }
相关文章推荐
- 用牛顿方法解一元非线性方程的根
- 求方程解,牛顿迭代和二分
- 用牛顿方法解一元非线性方程的根(Matlab实现)
- 数值计算——一维非线性方程求解
- LA3485二分+求解积分方程+辛普森算法计算积分
- UVA - 12097 (pie 二分求解逼近值)
- nyoj 1178 && hdu 5105 Math Problem 求解一元二次三次方程
- MATLAB实例之对线性,非线性,超越方程的求解
- 一元两次方程求解
- 高斯牛顿迭代求解非线性回归问题
- hdoj 2899 Strange fuction【二分求解方程】
- 求解一元多次方程(迭代法)
- poj 3111 K Best ,二分,牛顿迭代
- 一元高次方程的求解
- 【牛顿迭代逼近】求根号2的快速方法
- ZJCOJ 朋友Z与方程(二分求解模板题)
- 多变量非线性方程求解问题(牛顿迭代法)
- 使用二分法求解一元N次方程的近似值
- 求解一元多次方程 牛顿迭代法
- 使用牛顿迭代方法(Newton’s method)来估计方程的解