牛顿迭代法和二分法求方程的根
来源:互联网 发布:java 连接两个string 编辑:程序博客网 时间:2024/05/17 21:29
使用牛顿迭代法(在1.5附近)和二分法(在(-10,10)区间内)求2*x*x*x-4*x*x+3*x-6=0的根
牛顿迭代法:
算法分析:假设方程f(x)=0,在x0附近有一个根,那么用xn+1=xn-f(xn)/f’(xn)。依次计算x1,x2,x3,…………,那么这个序列无限逼近方程的根。原理是根据f(x)在x0附近的值和斜率,估计f(x)和x轴的交点。
#include<stdio.h>int main(){ double x=1.5; double fx,f1x,eps=0.00001; do { fx=2*x*x*x-4*x*x+3*x-6; f1x=6*x*x-8*x+3; x=x-fx/f1x; if(fx<0)fx=-fx; if(fx<eps)break; }while(1>0); printf("%lf",x); return 0;}
二分法:
算法分析:对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法。
#include<stdio.h>int main(){ double l=-10.0,h=10.0; //划定区间,默认函数在-10出取负值,在10处取正值 double m,fm,eps=0.000001; //规定逼近值eps do { m=(l+h)/2; //找到区间中点 fm=2*m*m*m-4*m*m+3*m-6; //计算区间中点函数值 if(fm<0)l=m; //如果区间中点函数值为负值,将区间最小端点赋为区间中点 else h=m; //如果区间中点函数值为正值,将区间最大端点赋为区间中点 if(fm<0)fm=-fm; //如果函数值为负值化为正值便于和eps比较,此处和上述任何一个步骤无关 if(fm<eps)break; //如果函数值趋近与eps,即得到根m }while(1); printf("%lf",m) return 0;}
阅读全文
0 0
- 牛顿迭代法和二分法求方程的根
- 用牛顿迭代法和二分法求方程的根【C语言】
- 牛顿迭代法求方程的根
- 牛顿迭代法求方程的根
- 牛顿迭代法求方程的根
- 牛顿迭代法求方程的根
- 方程求根(二分法和牛顿迭代法)
- 牛顿迭代法求方程根
- 牛顿迭代法求方程根
- 牛顿迭代法求方程根
- 求平方根的方法(牛顿迭代法和二分法)
- 3元一次方程(牛顿迭代法求方程的根)
- 1.6_牛顿迭代法求方程的根
- 刷清橙OJ--A1094.牛顿迭代法求方程的根
- Tsinsen A1094 牛顿迭代法求方程的根
- 清橙A1094. 牛顿迭代法求方程的根
- 计算方法之牛顿迭代法求方程根
- 牛顿迭代法求方程根--C语言
- Python实现图像平移、旋转、水平镜像等
- Linux网络编程基础API--socket地址API
- R语言聊天记录
- 众数
- 机器学习笔记——KNN与Digit Recognizer问题
- 牛顿迭代法和二分法求方程的根
- IIS发布网站localhost可以访问,绑定IP之后无法访问
- 巧用Anaconda Navigator创建虚拟环境
- HDU 2037今年暑假不AC
- 属性“$”的值为 null、未定义或不是 Function 对象
- Generating Names with a Character-Level RNN
- 莫尔斯码
- 欢迎使用CSDN-markdown编辑器
- Spring Boot 开发web 项目