1 / 48
文档名称:

数值分析实验报告.doc

格式:doc   大小:527KB   页数:48页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析实验报告.doc

上传人:neryka98 2018/8/1 文件大小:527 KB

下载得到文件列表

数值分析实验报告.doc

文档介绍

文档介绍:学生学号
实验课成绩
学生实验报告书
实验课程名称
数值分析
开课学院
计算机科学与技术学院
指导教师姓名
熊盛武
学生姓名
学生专业班级
2013—— 2014学年第二学期
实验课程名称:数值分析
实验项目名称
方程求根的数值方法
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
第一部分:实验分析与设计
实验内容描述(包括实验目的)
实验目的:
(1)通过编程计算实践,体会和理解二分法,简单迭代法,Newton迭代法和弦截法的算法思想
(2)通过编程计算实践,熟练各种算法的计算流程。
(3)通过各种方法对同一题目的求解,体会各种方法的精度差异。
(4)通过编程计算实践,深入领会和掌握迭代算法的改进思路,提高对算法改进技巧的本质的认识以及算法流程的实际控制技术。

(实验基本原理与方法,,实验方案与技术路线等)
(1)分别画出二分法,简单迭代法,Newton迭代法和弦截法的算法流程图。
(2)分别用二分法和简单迭代法通过编程计算x*x*x-x-1=0在[1,2]内的近似根,,并给出二分和迭代的次数,分析和比较算法的效率差异和精度差异,最后与理论估计的二分和迭代次数作比较。
(3)用Aitken算法通过编程计算x*x*x-x-1=0在[1,2]内的近似根,,并分析算法精度和与二分法的结果进行比较。
(4)分别用Newton迭代法和弦截法通过编程计算x*x*x-x-1=0在[1,2],并分析算法精度及不同方法的计算量。然后将程序应用于以下方程求根:x=(2-e^x+x*x)/3,‚3*x*x-e^x=0。分析和比较算法的效率差异:收敛速度和总计算量等之间的关系。
(5)写出实****报告


联想Y400 PC机一台
第二部分:实验调试与结果分析(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题,实验结果等)
(1)二分法计算流程图:
b-a>e
b=x
a=x
f(a)f(x)<0
i++
x=(a+b)/2
t=(a+b)/2
输出近似根t,循环次数i
结束
方程x*x*x-x-1=0
开始
b-a>e
求根区间[a,b]循环次数i,i=0






(2)简单迭代法算法流程图:
开始
定义函数s(t)=t+1
方程x*x*x-x-1=0
输入迭代初始值x0,,i= 0
x1=pow(s(x0),);

fabs(x1-x0)>e

i++;
x1=pow(s(x0),);
x0=x1;
x1=pow(s(x0),);

输出近似根x,迭代次数i
结束
x=(x1+x0)/2
fabs(x1-x0)>ee


(3)牛顿迭代法流程图:
开始
定义函数s(t)=t-(t*t*t-t-1)/(3*t*t-1)
迭代初始值x0,控制精度e,迭代次数i,i=0
x1=x0
fabs(s(x1)-x1)>e
i++;
x2=s(x1);
x1=x2;
输出近似根x,迭代次数i
x=(x1+x2)/2;
结束
fabs(s(x1)-x1)>e




(4)弦截法算法程序流程图:
开始
定义函数s(t)= t*t*t-1
输入迭代初始值x0 x1,控制精度e,循环次数i,i=0
fabs(x1-x0)>e
i++;
x2=x1-s(x1)*(x1-x0)/(s(x1)-s(x0));
x0=x1;
x1=x2;
x=(x1+x2)/2;
输出近似根x迭代次数i
结束
fabs(x1-x0)>e




二分法程序源代码:
#include<iostream>
#include<cmath>
#define f(x) (x*x*x-x-1)
using namespace std;
int main()
{
int i;
float x,t,a,b,e;
cout<<"请输入求根区间a,b"<<"控制变量e"<<endl;
cin>>a>>b>>e; i=0;
while ((b-a)>e)
{
i++;
x=(a+b)/2;
if (f(a)*f(x)<0) b=x;
if (f(a)*f(x)>0) a=x;
}
t=(a+b)/2;
cout<<"在求根区间a,

最近更新