计算机数值计算实验报告1.doc_第1页
计算机数值计算实验报告1.doc_第2页
计算机数值计算实验报告1.doc_第3页
计算机数值计算实验报告1.doc_第4页
计算机数值计算实验报告1.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科实验报告课程名称: 计算机数值方法 实验项目:方程求根(迭代法、二分法、牛顿法、割线法) 实验地点: 110 机房 专业班级: 物联1403 学号: 2014002091 学生姓名: 赵羽龙 指导教师: 2016年 5月 10日实验名称:方程求根实验时间:2016/5/10实验目的和要求:1了解方程求根的基本方法、基本原理、误差估计;2能够按照工程实际要求,选择适当的算法;3. 通过编写程序,进行算法设计和数值求解。实验内容和原理:实验内容:1. 熟悉使用二分法、迭代法、牛顿法、割线法等方程求根的基本方法、基本原理、误差估计的相关理论。2. 选择方程求解方法中的两种方法求方程:f(x)=x3+4x2-10=0在1,2内的一个实根,且要求满足精度|x*-xn|0.510-5实验原理:1. 二分法二分法的基本思路是通过计算隔根区间的中点,逐步将隔根区间缩小,从而可得方程的近似根数列。f(x)在区间(x,y)上连续 先找到a、b属于区间(x,y),使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f(a+b)/2, 现在假设f(a)0,ab 如果f(a+b)/2=0,该点就是零点, 如果f(a+b)/2a,从开始继续使用 中点函数值判断。 如果f(a+b)/20,则在区间(a,(a+b)/2)内有零点,(a+b)/2=b,从开始继续使用 中点函数值判断。 样就可以不断接近零点。 通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值2. 迭代法 迭代法是数值计算中一类典型方法,不仅用于方程求根,而且用于方程组求解,矩阵求特征值等方面。迭代法的基本思想是一种逐次逼近的方法。首先取一个精糙的近似值,然后用同一个递推公式,反复校正这个初值,直到满足预先给定的精度要求为止。 对于迭代法,一般需要讨论的基本问题是:迭代法的构造、迭代序列的收敛性天收敛速度以及误差估计。这里,主要看看解方程迭代式的构造。 对方程对方程(1.1),在区间内,可改写成为: (2.1)取,用递推公式: (2.2)可得到序列: (2.3)当时,序列有极限,且在附近连续,则在式(2.2)两边极限,得, 即,为方程(2.1)的根。由于方式(1.1)和方程(2.1)等价,所以, 即, 式(2.2)称为迭代式,也称为迭代公式;可称为迭代函数。称求得的序列为迭代序列。3. 牛顿法设有非线性方程组F(x)=0其中:由偏导数作成的矩阵记为J(x)或称为F(x)的Jacobi矩阵为F(x)=0的解,且设,为的近似解,现利用多元函数 在点的泰勒公式有其中,在与x的所连的线段内。如果用泰勒公式中的线性函数近似代替,并将线性方程组的解作为的第k+1次近似解记为 将上述方程写成矩阵形式:如果为非奇异矩阵,则得到牛顿迭代公式:求解非线性方程组F(x)=0牛顿法或为用上式可知,每计算一步,需要:(1) 计算矩阵及;(2) 求解一个线性方程组:(3) 计算。4. 割线法牛顿迭代法的收敛速度快,但是每迭代一次,除需计算飞f(x)的值外,还要计算f(x)的值外。如果f(x)比较复杂,计算f(x)的工作量就可能很大。为了避免计算导数值,我们用差商来代替导数。设经过k次迭代后,与求xk-1。用f(x)在xk,两点的差商来代替牛顿迭代公式中的导数值f(xk主要仪器设备:笔记本电脑 处理器 intel Pentium(R) 4 G RAM 64位操作系统上机调试修改源程序:/二分法#include #include iomanip#includemath.h/* run this program using the console pauser or add your own getch, system(pause) or input loop */using namespace std;int main(int argc, char* argv) double a,b,x,f;int n;n = 1;a = 1.0;b = 2.0;cout left setw(15) n left setw(15) a left setw(15) b left setw(15) x left setw(15) f(x)= 0.000005) x = (a + b)/2;f = (x + 4)*x)*x - 10; cout left setw(15) n left setw(15) a left setw(15) b left setw(15) x left setw(15) f 0) b = x;elsea = x;n+;cout 共计算 n-1次endl近似值 x = xendl;return 0;/迭代法#include #include iomanip#includemath.h/* run this program using the console pauser or add your own getch, system(pause) or input loop */using namespace std;int main(int argc, char* argv) double x; int n; n = 0; x = 1.5; cout left setw(15) n left setw(15) x endl; while(n25) cout left setw(15) n left setw(15) x endl; x = 0.5*sqrt(10-x*x*x); n+;cout 共计算 n-1次endl近似值 x = xendl;return 0;/割线法#includestdio.h#includeiostream#includeiomanip#includemath.husing namespace std;int main () float x20;int n;x0 = 0.5; x1 = 0.2; n = 1;cout left setw(4)nleftsetw(15)xendl; cout left setw(4)0leftsetw(15)x00.0000005)cout left setw(4)nleftsetw(15)xnendl;xn+1 = xn - (xn*xn*xn-3*xn+1)/(xn*xn*xn-3*xn-xn-1*xn-1*xn-1+3*xn-1)*(xn - xn-1);n+;return 0;/牛顿法#includestdio.h#includeiostream#includeiomanip#includemath.husing namespace std;int main () float x20;int n;n = 0;x0 = 1.5; x1 = xn - (xn*xn*xn+4*xn*xn-10)/(3*xn*xn+8*xn); n+;cout left setw(4)nleftsetw(15)x0.000005)cout left set

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论