预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共21页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

计算数值方法实验报告本科实验报告课程名称:计算机数值方法实验项目:计算机数值方法实验实验地点:虎峪校区致远楼B401专业班级:软件学院1217班学号:201200xxxx学生姓名:xxx指导教师:xxx2014年5月21日太原理工大学学生实验报告学院名称软件学院专业班级1217班学号201200xxxx学生姓名xx实验日期2014.05.21成绩课程名称数值计算方法实验题目实验一方程求解一、实验目的和要求熟悉使用、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:二分法f(x)=x3+4x2-10=0在[1,2]内的一个实根,且要求满足精度|x*-xn|<0.5×10-5二、主要设备笔记本HPProBook6470b一台编译软件:VC++6.0三、实验内容和原理函数f(x)在区间(x,y)上连续,先在区间(x,y)确定a与b,若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)的零点所在区间收缩一半的方法,使区间内的两个端点逐步逼近函数零点,最终求得零点近似值。四、操作方法与实验步骤1.二分法:#include<stdio.h>#include<stdlib.h>#include<math.h>intmain(){doublea=1.0,b=2.0;doublex,s;printf("An\t\tBn\t\tF(Xn)\n");while(1){x=(a+b)/2;s=pow(x,3)+4*x*x-10;if(-0.000005<s&&s<0.000005){break;}elseif(s<0){a=x;}elseif(s>0){b=x;}printf("%f\t%f\t%f\n",a,b,s);}printf("X的值为:%f\n",x);printf("误差:\t%f\n",s);return0;}2.割线法:#include"stdio.h"#include"math.h"intmain(){floatc,a=1.0,b=2.0;printf("每次得到的X的近似值:\n");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)<0.5*0.00001)break;b=c;printf("%f\n",b);}printf("X的值为:%f\n",c);}五、实验结果与分析二分法割线法分析:由程序知,使用二分法和割线法均能计算出方程的根,但利用割线法要比二分法计算的次数少,并且能够较早的达到精度要求。相比之下,割线法程序代码量较少,精简明了。六、讨论、心得本次数值计算方法程序设计实验从习题练习中跳脱出来,直接面对实用性较强的程序代码编写。效果很好,不仅加深对二分法、割线法的理解,还加强了实际用运能力。将理论知识成功地转化成实践结果。实验地点虎峪校区致远楼B401指导教师xx太原理工大学学生实验报告学院名称软件学院专业班级1217班学号201200xxxx学生姓名xx实验日期2014.05.28成绩课程名称数值计算方法实验题目实验二线性方程组的直接解法一、实验目的和要求合理利用Gauss消元法、LU分解法、追赶法求解下列方程组:(n=5,10,100,…)二、主要设备笔记本HPProBook6470b一台编译软件:VC++6.0三、实验内容和原理高斯消元法:将原方程组化为三角形方阵的方程组:lik=aik/akkaij=aij-lik*akj(k=1,2,…,n-1i=k+1,k+2,…,nj=k+1,k+2,…,n+1)由回代过程求得原方程组的解:xn=ann+1/annxk=(akn+1-∑akjxj)/akkLU分解法:将系数矩阵A转化为A=L*U,L为单位下三角矩阵,U为普通上三角矩阵,然后通过解方程组l*y=b,u*x=y,来求解x。四、操作方法与实验步骤1.完全主元素消元法:#include<stdio.h>#include<iostream.h>#include"math.h"floata[100][101];floatx[10];intN;voidshuchu(){for(inti=1;i<=N;i++){for(intj=1;j<=N+1;j++){cout<<a[i][j]<<""<<"";}co