数学实验“对称三对角矩阵特征值的二分法”实验报告(内含matlab程序)
西京学院数学软件实验任务书
课程名称数学软件实验班级数0901学号0912020107姓名李亚强实验课题对称三对角矩阵特征值的二分法实验目的熟悉对称三对角矩阵特征值的二分法实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容对称三对角矩阵特征值的二分法成绩教师实验十四实验报告
实验名称:对称三对角矩阵特征值的二分法。
实验目的:熟悉对称三对角矩阵特征值的二分法。
实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成程序设计。
实验内容:
%对称三对角矩阵特征值的二分法
program ex0001integer nreal x1,x2,x,f1,f2,fx,epsreal,allocatable::d(,e( write(*,*) "Please enter n:"read(*,*) n allocate(d(n),e(n-1))????????
eps=1.0E-6fx=1.0do j=1,nd(j)=-2end dodo j=1,n-1e(j)=1end do!write(*,*) "Please enter array d and e:"???? !read(*,*) d,ea1=d(1)-e(1)a2=d(1)-2*e(1)a3=d(1)+e(1)a4=d(1)+2*e(2)y1=min(a1,a2)y2=max(a4,a3)y=(y2-y1)/nx1=y1x2=y1+ywrite(*,*)"矩阵的特征值为:"do m=1,ntemp=x210 if(abs(fx)>eps) thenx=(x1+x2)/2f1=MValue(x1,n,d,e)f2=MValue(x2,n,d,e)fx=MValue(x,n,d,e)if (fx*f1>0) thenx1=x else x2=xend ifgo to 10 end ifprint*,"--------------------"write(*,*) xx1=tempx2=temp+yz=(x1+x2)/2fx=MValue(z,n,d,e)end doprint*,"--------------------"containsreal function mValue(x,n,d,e)????Integer n,ireal xreal d(n),e(n-1),s(n)S(1)=x-d(1)S(2)=(x-d(1))*(x-d(2))-e(1)**2Do i=3,nS(i)=(x-d(i))*s(i-1)-e(i-1)**2*s(i-2)End domValue=s(n) returnEnd function mValueend
- 0 -