计算数值方法
实验报告
学院:软件学院
专业:软件工程
班级:软件1012班
学号:2010004719
姓名:乔婧峰
太原理工大学学生实验报告
学院名称
软件学院
专业班级
软件1012班
学号
2010004719
学生姓名
乔婧峰
实验日期
2012.4
成绩
课程名称
数值计算方法
实验题目
实验一 二分法
一、课题名称
方程求根:熟悉使用、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:二分法f(x)=x3+4x2-10=0在[1,2]内的一个实根,且要求满足精度|x*-xn|<×10-5
迭代法:用迭代公式x=f(x)进行迭代计算,直到满足|x*-xn|<×10-5 为止 。
割线法:x=x-f(x)/g(x),其中f(x)为给定的函数,g(x)为给定函数的导数,直到满足|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)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值
四、主要仪器设备
Vc2008,hp
五、结构程序设计
迭代法:
#include ""
#include""
#include""
#include"iostream"
using namespace std;
float main()
{
float a;
cin>>a;
float t, x;
x=a;
do{
x=sqrt((10-x*x*x)/4);
t=a;
a=x;
}while(fabs(a-t)>*1e-5);
printf("x=%f",a);
system("pause");
}
割线法:
#include ""
#include""
#include""
#include"iostream"
using namespace std;
float main()
{
float c,a=,b=;
//cin>>a>>b;
while(1)
{
c=b-(b*b*b+4*b*b-10)*(b-a)/(b*b*b+4*b*b-(a*a*a+4*a*a));
if(fabs(b-c)<*) break;
b=c;
}
cout<<c;
}
六、结果讨论和分析
割线法:
迭代法:
分析:使用不同的方法,可以不同程度的求得方程的解,不同的方法速度不同。
实验地点
ZSA401
指导教师
李志
学院名称
软件学院
专业班级
软件1012班
学号
2010004719
学生姓名
乔婧峰
实验日期
成绩
课程名称
数值计算方法
实验题目
实验二 线性方程组的直接解法
一、课题名称
线性方程组的直接解法
合理利用Gauss消元法、LU分解法、追赶法求解下列方程组:
①
②
③
④(n=5,10,100………)
二、目的和意义
(1)了解线
计算数值方法实验报告 太原理工大学 来自淘豆网m.daumloan.com转载请标明出处.