计算方法 实验二 非线性方程求根
来源:互联网 发布:js判断空字符串 编辑:程序博客网 时间:2024/05/17 04:47
一、问题提出
设方程f(x)=x^3-3x-1=0 有三个实根X1=18739,X2=-0.34727,X3=-1.53209,现采用下面六种不同计算格式,求f(x)=0的根X1,X2;
二、要求
1、编制一个程序进行运算,最后打印出每种迭代格式的敛散情况;
2、用事后误差估计|X(k+1)-Xk|<eps 来控制迭代次数,并且打印出迭代次数;
3、初始值的选取对迭代收敛有何影响;
4,分析迭代收敛和发散的原因;
三、目的和意义
1、通过实验进一步了解方程求根算法;
2、认识选择计算格式的重要性;
3,掌握迭代算法和精度控制;
4,明确迭代收敛性与初值选取的关系;
四、代码
#include <iostream>#include <cstdio>#include <algorithm>#include <math.h>using namespace std;const int maxn=10000;#define eps 1e-10double g(double x){ //return (3*x+1)/pow(x,2); //return (pow(x,3)-1)/3; //return pow((3*x+1),1.0/3.0); //return 1/(x*x-3); //return sqrt(3+1/x); //return (x-((1.0/3.0)*((x*x*x-3*x-1)/(x*x-1))));}double abs(double x){ return x<0?-x:x;}int main(){ //freopen("in.txt","r",stdin); int cnt=0; double x1=-0.5,x2=2; while((fabs(x2-x1)>=eps)&&cnt<=maxn) { double temp=g(x1); x2=x1; x1=temp; cnt++; } if(cnt<maxn) { printf("%0.6lf\n",x2); printf("收敛并且迭代了%d次\n",cnt); } else { printf("发散\n"); } return 0;}
阅读全文
0 0
- 计算方法 实验二 非线性方程求根
- 计算方法实验二实验报告 非线性方程求根
- Matlab非线性方程求根
- 非线性方程求根
- 非线性方程求根迭代法
- solve it--非线性方程求根
- (matlab系列)非线性方程求根
- 数值分析4 非线性方程求根
- matlab-非线性方程求根函数及函数曲线绘制
- 工程计算2——非线性方程求根
- 二分法 一元非线性方程求根 C语言实现
- 不动点迭代法 一元非线性方程求根 C语言实现
- 牛顿迭代法 一元非线性方程求根 C语言实现
- 弦截法 一元非线性方程求根 C语言实现
- 方程求根
- 方程求根!
- 计算方法-C/C++牛顿迭代法求非线性方程近似根
- 算法竞赛入门经典:第八章 高效算法设计 8.12非线性方程求根
- 11.13 学习心得
- linux了解
- Android Material Design系列之夜间模式
- 笔记
- Java Web笔记(六)
- 计算方法 实验二 非线性方程求根
- arcgis10.5 无法启动许可
- 王怡牧师:基督徒能不能看奥运
- 面试中单例模式有几种写法
- Mavenx项目导入新workspace里出现 java.lang.ClassNotFoundException
- 如何压缩 HTTP 请求正文
- 网络结构---从alexnet到resnet, rcnn 到mask rcnn
- 鑫大神之前端见解
- cygwin + swoole 安装