资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数值分析实验报告实验实验名称名称线线性方程性方程组组的迭代法的迭代法班班 级级软软件件 0710学学 号号姓姓 名名日日 期期2009 年年 6 月月 18 日日成成 绩绩评评 阅阅 人人软件学院软件学院实验目的实验目的:1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较; 2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;3、体会上机计算时,终止步骤(予给的迭代次数) ,对迭代法)()1(kkxx敛散性的意义;4、体会初始解 x,松弛因子的选取,对计算结果的影响。)0(实验过程:实验过程:1、体会迭代法求解线性方程组,并能与消去法做以比较;2、分别对不同精度要求,如由迭代次数体会该迭代法的收敛快慢;54310,10,10 3、对方程组 2,3 使用 SOR 方法时,选取松弛因子=0.8,0.9,1,1.1,1.2 等,试看 对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者; 4、给出各种算法的设计程序和计算结果。实验环境:实验环境:操作系统:Windows xp 编程语言:visual C+ 6.0。实验源代码:实验源代码:Jacobi 迭代法的源代码 : #include “iostream.h“ void main()double A33=4,-1,2,-1,5,3,2,3,6;double b3=12,10,8;double x10=0,0,0,0;double x010=0,0,0,0;double R=1000.0;coute;int count=0;while(Re) double answer=0;for(int i=0;ie;int count=0;while(Re)double answer=0;for(int i=0;ie;while(w!=0)int count=0;coutw;if(w=0) break; double R1;R=0;for(int i=0;i=R) R=R1; R1=0;count+;if(R #include using namespace std; #define n 20/此为步长double f1(double x) double y; y=sqrt(4-sin(x)*sin(x); return y; double f2(double x) if(x=0) return 1; double y; y=sin(x)/x; return y; double f3(double x) double y; y=exp(x)/(4+x*x); return y; double f4(double x) double y; y=log(1+x)/(1+x*x); return y; int main() int j; double e=0.000001,h,F0,F1,F2,a,b,x,S; cout“利用复化 Simpson 公式求积分“endl; /1 a=0; b=0.25*3.141592; h=(b-a)/(2*n); F0=f1(a)+f1(b); F1=F2=0; for(j=1;j2*n;j+) x=a+j*h; if(j%2=0) F2=F2+f1(x); else F1=F1+f1(x); S=(F0+F1*4+F2*2)*h)/3; cout“第一个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendl; /2 a=0; b=1; h=(b-a)/(2*n); F0=f2(a)+f2(b); F1=F2=0; for(j=1;j2*n;j+) x=a+j*h; if(j%2=0) F2=F2+f2(x); else F1=F1+f2(x); S=(F0+F1*4+F2*2)*h/3;cout“第二个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendl; /3 a=0; b=1; h=(b-a)/(2*n); F0=f3(a)+f3(b); F1=F2=0; for(j=1;j2*n;j+) x=a+j*h; if(j%2=0) F2=F2+f3(x); else F1=F1+f3(x); S=(F0+F1*4+F2*2)*h/3; cout“第三个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendl; /4 a=0; b=1; h=(b-a)/(2*n); F0=f4(a)+f4(b); F1=F2=0; for(j=1;j2*n;j+) x=a+j*h; if(j%2=0) F2=F2+f4(x); else F1=F1+f4(x); S=(F0+F1*4+F2*2)*h/3; cout“第四个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendlendl;cout“利用复化梯形公式求积分“endl; /1 a=0; b=0.25*3.141592; h=(b-a)/n; F0=f1(a)+f1(b);F1=0; for(j=1;jn;j+) x=a+j*h; F1=F1+f1(x); S=(F0+F1*2)*h)/2; cout“第一个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendl; /2 a=0; b=1; h=(b-a)/n; F0=f2(a)+f2(b); F1=0; for(j=1;jn;j+) x=a+j*h; F1=F1+f2(x); S=(F0+F1*2)*h)/2; cout“第二个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendl; /3 a=0; b=1; h=(b-a)/n; F0=f3(a)+f3(b); F1=0; for(j=1;jn;j+) x=a+j*h; F1=F1+f3(x); S=(F0+F1*2)*h)/2; cout“第三个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendl; /4 a=0; b=1; h=(b-a)/n; F0=f4(a)+f4(b); F1=0; for(j=1;jn;j+) x=a+j*h; F1=F1+f4(x); S=(F0+F1*2)*h)/2; cout“第四个积分公式:端点 a 为“a“、b 为“b“,n 为“nendl“结果 为“Sendl return 0; 实验分析与总结:实验分析与总结:由程序运行的结果可知复合梯形公式没复合 Simpson 公式迭代精度高,步长越小的迭 代精度越高。 本实验基本完成了实验所要求的内容,同时达到了实验的目的,也就是通过编程进一步理 解复合梯形公式和复合 Simpson 公式求积分的方法。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号