word
word
1 / 23
word
计算数值方法
实验报告
学院:计算机与软件学院
专业:计算机与科学技术
班级:计算机
学号:1111111111
:某某
word
word
2 / 23
word
理工大学学生实验报告
学院名称
计算机科学与技术
专业班级
计算机
学号
1111111111
学生
某某
实验日期
2011-6-13
成绩
课程名称
数值计算方法
实验题目
实验一 二分法
一、课题名称
方程求根:熟悉使用、迭代法、牛顿法、割线法等方法对给定的方程进展根的求解。选择上述方法中的两种方法求方程:二分法f(x)=x3+4x2-10=0在[1,2]的一个实根,且要求满足精度|x*-xn×10-5
二、目的和意义
〔1〕了解非线性方程求根的常见方法,如二分法、牛顿法、割线法。
〔2〕加深对方程求根方法的认识,掌握算法。
〔3〕会进展误差分析,并能对不同方法进展比拟。
三、计算公式
f(x)在区间〔x,y〕上连续
先找到a、b属于区间〔x,y〕,使f(a),f(b)异号,说明在区间(a,b)一定有零点,然后求f[(a+b)/2],
现在假设f(a)<0,f(b)>0,a<b
①如果f[(a+b)/2]=0,该点就是零点,
如果f[(a+b)/2]<0,如此在区间〔(a+b)/2,b)有零点,(a+b)/2=>a,从①开始继续使用
中点函数值判断。
如果f[(a+b)/2]>0,如此在区间(a,(a+b)/2)有零点,(a+b)/2<=b,从①开始继续使用
中点函数值判断。
这样就可以不断接近零点。
通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值
四、结构程序设计
#include <iostream>
#include <cmath>
using namespace std;
double f(double x)
{
return x*x*x + 4*x*x - 10;
}
word
word
3 / 23
word
int main()
{
double t1 = 1,t2 = 2;
double t = (t1+t2)/2;
while (fabs(f(t)) >= )
{
if(f(t1)*f(t)<=0)
{
t2=t;
t=(t1+t2)/2;
}
else if(f(t)*f(t2)<=0)
{
t1=t;
t=(t1+t2)/2;
}
}
cout<<t<<endl;
return 1;
}
结果:
五、结果讨论和分析
在编写这个程序的时候我感觉到了在编写的过程中的不易,在编写的过程中我改变初值然后运行,发现在初值的改变对运行时间的影响不大,结果没有影响。
在调试的过程中发现自己还是很粗心,容易犯很简单的错误。在今后的学习中应该做编写程序。
实验地点
综合楼六层606室
指导教师
王峥
word
word
4 / 23
word
学院名称
计算机科学与技术
专业班级
计算机
学号
1111111111
学生
某某
实验日期
2011-6-13
成绩
课程名称
数值计算方法
实验题目
实验二 线性方程组的直接解法
一、课题名称
线性方程组的直接解法
合理利用Gauss消元法、LU分解法、追赶法求解如下方程组:
①
②
③
④〔n=5,10,100………〕
二、目的和意义
〔1〕了解线性方程组常见的直接解法,如Guass消元法、LU分解法、追赶法。
〔2〕加深对线性方程组求解方法的认识,掌握算法。
〔3〕会进展误差分析,并能对不同方法进展比拟。
四、计算公式
高斯分解法:
⑴将原方程组化为三角形方阵的方程组:
lik=aik/akk
aij= aij- lik* akj k=1,2,…,n-1
i=k+1,k+2, …,n j=k+1,k+2, …,n+1
⑵由回代过程求得原方程组的解:
xn= ann+1/ ann
word
word
5 / 23
word
xk=( akn+1-∑akj xj)/ akk (k=n
计算数值方法实验报告材料 太原理工大学 来自淘豆网m.daumloan.com转载请标明出处.