太原理工大学数值计算方法实验报告41281.pdf
《太原理工大学数值计算方法实验报告41281.pdf》由会员分享,可在线阅读,更多相关《太原理工大学数值计算方法实验报告41281.pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行 勉 楼 专业班级:*学号:*学生:*指导教师:誌 ,冬 华 2016 年 4 月 8 日 学生 实验成绩 实验名称 实验一 方程求根 实验容和要求 熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:f(x)=x3+4x2-10=0 在1,2的一个实根,且要求满足精度|x*-xn|0.510-5(1)了解非线性方程求根的常见方法,如二分法、牛顿法、割线法。(2)加深对方程求根方法的认识,掌握算
2、法。(3)会进行误差分析,并能对不同方法进行比较。实验原理 1.二分法:如果要求已知函数 f(x)=0 的根(x 的解),那先要找出一个区间 a,b,使得 f(a)与 f(b)异号。根据介值定理,这个区间一定包含着方程式的根。求该区间的中点 m=(a+b)/2,并找出 f(m)的值。若 f(m)与 f(a)正负号相同,则取 m,b 为新的区间,否则取 a,m。重复第 3 步和第 4 步,直到得到理想的精确度为止。2.割线法是利用牛顿迭代法的思想,在根的某个领域,函数有直至二阶的连续导数,并且不等于 0,则在领域选取初值 x0,x1,迭代均收敛。(1)在区间m,n输入初值 x0,x1.(2)计算
3、 x2。x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0)(3)x0=x1,x1=x2(4)判断是否达到精度,若是输出 x1,若否 执行(2)主要仪器设备 HP 计算机 实验记录 1.二分法 /方程求根(二分法).cpp:定义控制台应用程序的入口点。/#include stdafx.h#includeiostream using namespace std;class Text public:float x,y,a,b,c,n=0;void Getab()cout 请输入计算区间:(以空格隔开)a b;float GetY(float x)y=x*x*x+4*x*x-10;ret
4、urn y;float Calculate(float a,float b)c=(a+b)/2;n+;if(GetY(c)=0|(b-a)/2)0.000005)cout c 为方程的解 endl;return 0;if(GetY(a)*GetY(c)0)return Calculate(a,c);if(GetY(c)*GetY(b)0)return Calculate(c,b);int main()cout 方程组为:f(x)=x3+4x2-10=0 endl;float a,b;Text text;text.Getab();a=text.a;b=text.b;text.Calculate(
5、a,b);return 0;2.割线法:/方程求根(割线法).cpp:定义控制台应用程序的入口点。/#include stdafx.h#includeiostream using namespace std;class A public:float x0,x1,y;float GetY(float x)y=x*x*x+4*x*x-10;return y;void GetNumber()cout请输入两个初始近似值:(以空格隔开)x0;cin x1;void Calculate(float x0,float x1)float x2;x2=x1-(GetY(x1)/(GetY(x1)-GetY(x
6、0)*(x1-x0);if(x2=x1)cout x2为方程的解 endl;else cout x2 endl;return Calculate(x1,x2);int main()cout 方程组为:f(x)=x3+4x2-10=0 endl;float a,b;A text;text.GetNumber();a=text.x0;b=text.x1;text.Calculate(a,b);return 0;心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不
7、同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。13814142210321321xxx实验名称 实验二 线性方程组的直接求解 实验容和要求 合理选择利用 Gauss 消元法、主元素消元法、LU 分解法、追赶法求解下列方程组:(1)了解线性方程组常见的直接解法,如 Guass 消元法、LU 分解法、追赶法。(2)加深对线性方程组求解方法的认识,掌握算法。(3)会进行误差分析,并能对不同方法进行比较。实验原理 1.高斯分解法:将原方程组化为三角形方阵的方程组:lik=aik/akk aij=aij-lik*akj k=1,2,n-1 i
8、=k+1,k+2,n j=k+1,k+2,n+1 由回代过程求得原方程组的解:xn=ann+1/ann xk=(akn+1-akj xj)/akk (k=n-1,n-2,2,1)2.LU 分解法:将系数矩阵 A 转化为 A=L*U,L 为单位下三角矩阵,U 为普通上三角矩阵,然后通过解方程组 l*y=b,u*x=y,来求解 x.主要仪器设备 HP 计算机 实验记录 1.高斯消元法:#include stdio.h#include math.h#include double a56,a056;double l5,tmp;void Exchange(int i)int j,l,k;double m
9、ax=a0ii,temp;j=i;for(k=i;kmax)max=a0ki;j=k;for(l=i;l=4;l+)temp=a0il;a0il=a0jl;a0jl=temp;for(i=1;i=3;i+)for(j=1;j=4;j+)aij=a0ij;void displayA()int i,j;printf(n);for(j=1;j=3;j+)for(i=1;i=4;i+)printf(%lf ,aji);printf(n);void main()int i,j,k;for(i=1;i=3;i+)for(j=1;j=4;j+)scanf(%lf,&aij);a0ij=aij;display
10、A();printf(列主元素消元法如下);/消元过程 k=1;do Exchange(k);displayA();for(i=k+1;i=3;i+)li=a0ik/a0kk;printf(l%i%i=%lf,i,k,li);for(j=k;j=4;j+)aij=a0ij-li*a0kj;displayA();k+;if(k=3)break;for(j=1;j=3;j+)for(i=1;i=1;k-)tmp=0;for(j=k+1;j=3;j+)tmp+=akj*lj;lk=(ak4-tmp)/akk;for(i=1;i=3;i+)printf(x%i=%lfn,i,li);2.LU 分解法:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 太原 理工大学 数值 计算方法 实验 报告 41281
限制150内