西京学院数学软件实验任务书2009~2010学年第2学期课程名称计算方法任课班级应用数学0701指导教师殷春武实验课题高斯消去法时间3月9号实验目的让学生通过程序的编写,了解高斯顺序消去法和高斯主元消去法的原理,尤其是最基础的高斯顺序消去法的具体实践过程。实验内容用C语言或matlab编写实现高斯顺序消元法和高斯主元消去法,并验证该算法。实验要求每一位学生独立完成。并提交用matlab或者用C语言等编写的高斯顺序消去法和高斯主元消去法的程序。教师意见签名:注:1、此表按课程填写,每门课一张,一式二份。2、本表(两份)经专家签章后于第一周内交实验室,经审批后一份发还各人,一份实验室留存cleara=input('输入一个系数矩阵\na=')b=input('输入一个自由项\nb=')n=length(b);fork=1:n-1fori=k+1:nl(i,k)=-a(i,k)/a(k,k);forj=k:na(i,j)=a(i,j)+l(i,k)*a(k,j);endb(i)=b(i)+l(i,k)*b(k);endendzengguang=[a,b]**x(n)=b(n)/a(n,n);fork=n-1:-1:1t=0;forj=k+1:nt=t+a(k,j)*x(j)endx(k)=(b(k)-t)/a(k,k);endx运算结果如下:输入一个系数矩阵a=[12-1;-312;3-21]a=12-1-3123-21输入一个自由项b=[1;2;3]b=123zengguang=1.00002.0000-1.00001.000007.0000-1.00005.0000002.85715.7143t=-2.0000t=2t=2.2204e-016x=1.00001.00002.0000西京学院数学软件实验任务书2009~2010学年第2学期课程名称计算方法任课班级应用数学0701指导教师殷春武实验课题矩阵的三角分解法时间3月16号实验目的让学生通过程序的编写,了解矩阵的三角分解法中直接三角分解法和平方根法的原理,尤其是直接三角分解法的具体实践过程。实验内容1.用C语言或matlab编写实现直接三角分解法和平方根法要求:数据输入项(函数参数)为:线性方程组的系数矩阵和自由项输出为所求线性方程组的解向量实验要求每一位学生独立完成。并提交用matlab或者用C语言等编写的三角分解法的通用程序。专家意见签名:注:1、此表按课程填写,每门课一张,一式二份。2、本表(两份)经专家签章后于第一周内交实验室,经审批后一份发还各人,一份实验室留存cleara=input('输入非奇异矩阵a=')b=input('输入自由项b=')n=length(a(1,:));forj=1:nU(1,j)=a(1,j);L(j,1)=a(j,1)/U(1,1);endfork=1:nforj=1:nt=0;form=1:k-1t=t+L(k,m)*U(m,j);endU(k,j)=a(k,j)-t;endfori=k+1:nt=0;form=1:k-1t=t+L(i,m)*U(m,k);endL(i,k)=a(i,k)-t;endendfori=1:nL(i,i)=1;endLU%%%%%%%%%%求yfori=1:nttt=0;fork=1:i-1ttt=ttt+L(i,k)*y(k);endy(i)=(b(i)-ttt)/L(i,i);end%%%%%%%%%%求xfori=n:-1:1tttt=0;fork=i+1:ntttt=tttt+L(k,i)*x(k);endx(i)=(y(i)-tttt)/L(i,i);endxy运算结果如下:输入非奇异矩阵a=[123;135;136]a=123135136输入自由项b=[2;3;4]b=234L=100110111U=123012001x=101y=211clearclca=input('输入对称正定矩阵a=')b=input('输入自由项b=')n=length(a(:,1));fork=1:nif(det(a(1:k,1:k))=0)input('矩阵不时正定矩阵,请重新运算程序')endend%%%%%%%%%%%分解A=L*L'fori=1:nt=0;fors=1:i-1t=t+L(i,s)^2;endL(i,i)=sqrt(a(i,i)-t);fork=i+1:ntt=0;fors=1:i-1tt=tt+L(i,s)*L(k,s);endL(k,i)=(a(k,i)-tt)/L(i,i);endend%%%%%%%%%%%%%%%分解AX=b为Ly=bLx=y%%%%%%%%%%求yfori=1:nttt=0;fork=1:i-1ttt=ttt+L(i,k)*y(k);endy(i)=(b(i)-ttt)/L(i,i);end%%%%%%%%%%求xfori=n:-1:1tttt=0;fork=i+1:ntttt=tttt+L(k,i)*x(k);endx(i)=(y(i)-tttt)/L(i,i);endx运算结果如下:输入对称正定矩阵a=[111;04-1;2-21]a=11104-12-21输入自由项b=[6;5;1]b=651矩阵不是正定矩阵,请重新运行程序输入对称正定矩阵a=[2-11;-121;113]a=2-11-121113输入自由项b=[2;2;5]b=225x=1.00001.00001.0000y=1.41422.44951.0000西京学院数学软件实验任务书2009~2010学年第2学期课程名称计算方法任课班级应用数学0701指导教师殷春武实验课题基本迭代法时间3月23号实验目的让学生通过程序的编写,了解基本迭代法的原理,尤其是雅克比迭代法、高斯-赛德尔迭代法和逐次超松弛迭代法的具体实践过程,并通过三种迭代方法的结果对比分析三种算法的优劣。实验内容2.用C语言或matlab编写实现雅克比迭代法、高斯-赛德尔迭代法和逐次超松弛迭代法。要求:数据输入项(函数参数)为:线性方程组的系数矩阵和自由项输出为所求线性方程组的解向量。实验要求每一位学生独立完成。并提交用matlab或者用C语言等编写的雅克比迭代法、高斯-赛德尔迭代法和逐次超松弛迭代法程序。专家意见签名:注:1、此表按课程填写,每门课一张,一式二份。2、本表(两份)经专家签章后于第一周内交实验室,经审批后一份发还各人,一份实验室留存%%%%%%%%%%%%%%%%%%%%%%%%¸亚克比迭代法¨clearclea=input('输入系数矩阵a=')b=input('输入自由项b=')x1=input('输入初始值x1=')n=length(b);ifsum(abs(x1))0x1=x1;elsex1=zeros(1,n);endt=2;¨while(t0.00001)fori=1:nq=0;forj=1:i-1q=q+a(i,j)*x1(j);endp=0;forj=i+1:np=p+a(i,j)*x1(j);endx2(i)=(b(i)-q-p)/a(i,i);endt=max(abs(x2-x1));x1=x2;endx2运算结果如下:输入系数矩阵a=[430;34-1;0-14]a=43034-10-14输入自由项b=[24;30;-24]b=2430-24输入初始值x1=[111]x1=111x2=3.00004.0000-5.0000x2=3.00004.0000-5.0000%%%%%%%%%%%%%%%%%%%%%%%%¸高斯赛德尔迭代法¨clearclca=input('输入系数矩阵a=')b=input('输入自由项b=')x1=input('输入初始值x1=')n=length(b);ifsum(abs(x1))0x1=x1;elsex1=zeros(1,n);endt=2;¨while(t0.00001)fori=1:nq=0;forj=1:i-1q=q+a(i,j)*x2(j);endp=0;forj=i+1:np=p+a(i,j)*x1(j);endx2(i)=(b(i)-q-p)/a(i,i);endt=max(abs(x2-x1));x1=x2;endx2运算结果如下:输入系数矩阵a=[430;34-1;0-14]a=43034-10-14输入自由项b=[24;30;-24]b=2430-24输入初始值x1=[0,0,0]x1=000x2=3.00004.0000-5.0000%%%%%%%%%%%%%%%%%%%%%%%%超松弛¸迭代法¨clearclca=input('输入系数矩阵a=')b=input('输入自由项b=')x1=input('输入初始值x1=')n=length(b);ifsum(abs(x1))0x1=x1;elsex1=zeros(1,n);endw=input('输入松弛因子(0w2)w=')ifw0w=w;elsew=0.5endwhile(t0.00001)fori=1:nq=0;forj=1:i-1q=q+a(i,j)*x2(j);endp=0;forj=i:np=p+a(i,j)*x1(j);endx2(i)=w*(b(i)-q-p)/a(i,i)+x1(i);endt=max(abs(x2-x1));x1=x2;endx运算结果如下:输入系数矩阵a=[-4111;1-411;11-41;111-4]a=-41111-41111-41111-4输入自由项b=[1;1;1;1]b=1111输入初始值x1=[0000]x1=0000输入松弛因子(0w2)w=1.3w=1.3000t=1x2=-1.0000-1.0000-1.0000-1.0000西京学院数学软件实验任务书2009~2010学年第2学期课程名称计算方法任课班级应用数学0701指导教师殷春武实验课题非线性方程不动点迭代法时间3月30实验目的让学生通过程序的编写,了解非线性方程求解中的不动点迭代法的原理。实验内容3.用C语言或matlab编写实现求解非线性方程的不动点迭代法。要求:数据输入项(函数参数)为:给定一个初值输出为所求方程的解。实验要求每一位学生独立完成。并提交用matlab或者用C语言等编写的不动点迭代法程序专家意见签名:注:1、此表按课程填写,每门课一张,一式二份。2、本表(两份)经专家签章后于第一周内交实验室,经审批后一份发还各人,一份实验室留存clearclcx1=input('输入迭代初值x1=')x2=input('输入迭代初值x2=')t=1;epuc=input('输入精度要求eupc=')ifepuc0epuc=epuc;elseepuc=0.000001endwhile(tepuc)x3=(1+x2-0.1*exp(x1))/4x4=(x1-x1^2/8)/4t=max(abs([x3-x1,x4-x2]));x1=x3;x2=x4;endx=[x3x4]运算结果如下:输入迭代初值x1=0.225x1=0.2250输入迭代初值x2=0x2=0输入精度要求eupc=0.000000001epuc=1.0000e-009x3=0.2187x4=0.0547x3=0.2326x4=0.0532x3=0.2317x4=0.0564x3=0.2326x4=0.0565x3=0.2325x4=0.0565x3=65西京学院数学软件实验任务书2009~2010学年第2学期课程名称计算方法任课班级应用数学0701指导教师殷春武实验课题非线性方程牛顿迭代法时间4月7号实验目的让学生通过程序的编写,了解牛顿迭代法的原理,尤其是最基础的单根情形的牛顿迭代法的具体实践过程。实验内容4.用C语言或matlab编写实现非线性方程牛顿迭代法要求:数据输入项(函数参数)为:迭代初值输出为所求方程的解实验要求每一位学生独立完成。并提交用matlab或者用C语言等编写的非线性方程牛顿迭代法程序,专家意见签名:注:1、此表按课程填写,每门课一张,一式二份。2、本表(两