北航数值分析历年试题整理

合集下载

北航数值分析大作业 第一题 幂法与反幂法

北航数值分析大作业 第一题 幂法与反幂法

数 值 分 析(B ) 大 作 业(一)姓名: 学号: 电话:1、算法设计:①求1λ、501λ和s λ的值:s λ:s λ表示矩阵的按模最小特征值,为求得s λ直接对待求矩阵A 应用反幂法即可。

1λ、501λ:若矩阵A 的特征值满足关系 1n λλ<<且1n λλ≠,要求1λ、及501λ时,可按如下方法求解: a . 对矩阵A 用幂法,求得按模最大的特征值1m λ。

b . 按平移量1m λ对矩阵A 进行原点平移得矩阵1m BA I λ=+,对矩阵B 用反幂法求得B 的按模最小特征值2m λ。

c . 321m m m λλλ=-则:113min(,)m m λλλ=,13max(,)n m m λλλ=即为所求。

②求和A 的与数5011140k k λλμλ-=+最接近的特征值ik λ(k=0,1,…39):求矩阵A 的特征值中与P 最接近的特征值的大小,采用原点平移的方法:先求矩阵 B=A-PI 对应的按模最小特征值k β,则k β+P 即为矩阵A 与P 最接近的特征值。

在本次计算实习中则是先求平移矩阵k B A I μ=-,对该矩阵应用反幂法求得s λ,则与k μ最接近的A 的特征值为:s P λ+重复以上过程39次即可求得ik λ(k=0,1,…39)的值。

③求A 的(谱范数)条件数2cond()A 和行列式det A :在(1)中用反幂法求矩阵A 的按模最小特征值时,要用到Doolittle 分解方法,在Doolittle 分解完成后得到的两个矩阵分别为L 和U ,则A 的行列式可由U 阵求出,即:det(A)=det(U)。

求得det(A)不为0,因此A 为非奇异的实对称矩阵,则: max 2()scond A λλ=,max λ和s λ分别为模最大特征值与模最小特征值。

2、程序源代码:#include "Stdio.h"#include "Conio.h"#include "math.h"//****************************************************************************// // 在存储带状矩阵时,下面的几个量在程序中反复用到,为方便编程故把它们定义成宏.// // M :转换后的矩阵的行数,M=R+S+1。

北航数值分析实习题目第一题

北航数值分析实习题目第一题

《数值分析B》大作业一ZY1515105 樊雪松一.算法设计方案:1.矩阵A的存储与检索将带状线性矩阵A[501][501]转存为一个矩阵MatrixC[5][501] 。

在数组MatrixC[5][501]中检索A的带内元素a ij的方法是:A的带内元素a ij=C中的元素c i-j+2,j。

2.求解λ1,λ501,λs1、首先分别使用幂法和反幂法迭代求出矩阵按摸最大和最小的特征值λmax和λmin。

λmin即为λs;如果λ max>0,则λ501=λmax;如果λmax<0,则λ1=λmax。

2、使用带原点平移的幂法(mifa()函数),令平移量p=λmax,求出对应的按摸最大的特征值λ’max,如果λ max>0,则λ1=λ’max+p;如果λmax<0,则λ501=λ’max+p。

3、求解A的与数μk=λ1+k(λ501-λ1)/40 的最接近的特征值λik (k=1,2,…,39)。

使用带原点平移的反幂法,令平移量p=μk,即可求出与μk最接近的特征值λ ik。

4、求解A的(谱范数)条件数cond(A)2和行列式detA。

cond(A)2=|λ1/λn|,其中λ1和λn分别是矩阵A的模最大和最小特征值。

求解矩阵A的行列式,可先对矩阵A进行LU分解后,detA等于U所有对角线上元素的乘积。

二.源程序#include<stdio.h>#include<math.h>#include<conio.h>//定义A中元素double C[5][501];double a[501];double b;double c;//声明所有函数void YaSuoJZ(double C[5][501],double a[501],double b,double c) ;//压缩矩阵函数double mifa(double C[5][501]); //幂法函数void daizhuangLU(double A[5][501]); //带状矩阵的LU分解double fanmifa(double C[5][501]);//反幂法函数//最值函数int max2(int x,int y);int max3(int x,int y,int z);int min(int x,int y);//最值函数int max2(int x,int y) //求2个数的最大值{int z;z=x>y?x:y;return(z);}int max3(int x,int y,int z) //求3个数的最大值{int w;w = z > max2(x,y)? z:max2(x,y);return(w);}int min(int x,int y) //求2个数的最小值{int z;z=x>y?y:x;return(z);}//将矩阵A压缩存储在矩阵C中void YaSuoJZ(double C[5][501],double a[501],double b,double c) {int i;for(i=0;i<=500;i++){if(i>=2) C[0][i]=c;else C[0][i]=0;if(i>=1) C[1][i]=b;else C[1][i]=0;if(i<=499) C[3][i]=b;else C[3][i]=0;if(i<=498) C[4][i]=c;else C[4][i]=0;C[2][i]=a[i];}}//幂法函数:用幂法求矩阵模最大的特征值double mifa(double C[5][501]){double u[501];double y[501]={0},η=0;double β,βk=0;double ε=1;// ε为精度double sumu=0,sumAY=0;int i,j,k=1; //k为循环次数for (i=0;i<=500;i++) //取任一非零向量u0u[i] = 1.0;while(ε>=1e-12){for(i=0;i<=500;i++) //求u(k-1)的2范数ηsumu=sumu+u[i]*u[i];η=sqrt(sumu);sumu=0;for(i=0;i<=500;i++) //求y(k-1)y[i]=u[i]/η;for(i=0;i<=500;i++) //求u(k)的各分量u[i]{for(j=max2(0,i-2);j<=min(i+2,500);j++)sumAY=sumAY+C[i-j+2][j]*y[j];u[i]=sumAY;sumAY=0;}//求幂法中的βkβ=βk; //将β(k-1)放在β中βk=0;for(i=0;i<=500;i++) //求βkβk=βk+y[i]*u[i];if(k>=2)ε=fabs(βk-β)/fabs(βk);k++;}return(βk);}//带状矩阵的LU分解void daizhuangLU(double A[5][501]){int i,j,k,m,t;double sumukj=0,sumlik=0;for(k=0;k<=500;k++){for(j=k;j<=min(k+2,500);j++) //求ukj并存在A[k-j+2][j]中{for(t=max3(0,k-2,j-2);t<=k-1;t++)sumukj=sumukj+A[k-t+2][t]*A[t-j+2][j];A[k-j+2][j]=A[k-j+2][j]-sumukj;sumukj=0;}if(k<500)for(i=k+1;i<=min(k+2,500);i++) //求lik并存在A[i-k+2][k]中{for(m=max3(0,i-2,k-2);m<=k-1;m++)sumlik=sumlik+A[i-m+2][m]*A[m-k+2][k];A[i-k+2][k]=(A[i-k+2][k]-sumlik)/A[2][k];sumlik=0;}}}//反幂法函数:用反幂法求矩阵的模最小的特征值double fanmifa(double M[5][501]){double u[501];double y[501]={0},x[501],η=0;double fβ,fβk=0;double ε=1;double fsumu=0,sumLX=0,sumUu=0;int i,t,m,k=1;for(i=0;i<=500;i++) //任取一非零向量u0u[i]=1;daizhuangLU(M); //对A进行LU分解A=LU,Au(k)=y(k-1)等价于Uu(k)=x和Lx=y(k-1) while(ε>=1e-12){for(i=0;i<=500;i++) //求u(k-1)的2范数ηfsumu=fsumu+u[i]*u[i];η=sqrt(fsumu);fsumu=0;for(i=0;i<=500;i++) //求y(k-1)y[i]=u[i]/η;for(i=0;i<=500;i++) //求中间向量xx[i]=y[i];for(i=1;i<=500;i++){for(t=max2(0,i-2);t<=i-1;t++)sumLX=sumLX+M[i-t+2][t]*x[t];x[i]=x[i]-sumLX;sumLX=0;}u[500]=x[500]/C[2][500]; //求u(k)的各分量u[i]for(i=499;i>=0;i--){for(m=i+1;m<=min(i+2,500);m++)sumUu=sumUu+M[i-m+2][m]*u[m];u[i]=(x[i]-sumUu)/M[2][i];sumUu=0;}//求反幂法中的βkfβ=fβk; //将fβ(k-1)放在fβ中fβk=0;for(i=0;i<=500;i++) //求fβkfβk=fβk+y[i]*u[i];if(k>=2)ε=fabs(1/fβk-1/fβ)/fabs(1/fβk);k++;}return(1/fβk);}//主函数void main(){int i,j,k;double λ1,λ501,λm,λm1,λm2,λs,λ,p;double cond,detA=1;for(i=1;i<=501;i++)a[i-1]=(1.64-0.024*i)*sin(0.2*i)-0.64*exp(0.1/i);b=0.16;c=-0.064;YaSuoJZ(C,a,b, c); //将矩阵A中元素压缩存储在C中λm1=mifa(C); //对A用幂法求出模最大的特征值λm1λs=fanmifa(C); //对A用反幂法求出模最小的特征值λsYaSuoJZ(C,a,b, c); //还原矩阵A中元素并压缩存储在C中for(j=0;j<=500;j++) //对A进行平移,平移量为λm1,平移后矩阵元素压缩存储在C中C[2][j]=C[2][j]-λ?m1;λm=mifa(C);λm2=λm1+λm; //λm1与λm2是矩阵的最大最小特征值if(λm1>λm2) //判断A最大最小特征值{λ501=λm1;λ1=λm2;}else{λ501=λm2;λ1=λm1;}printf("数值分析计算实习第一题\n\n ZY1515105 樊雪松\n\n (1)A的最大最小以及模最小的特征值\n");printf("A的最小特征值λ1=%.13e\n",λ1);printf("A的最大特征值λ501=%.13e\n",λ501);printf("A的模最小特征值λs=%.13e\n",λs);printf("\n(2)与数μk最接近的特征值\n");printf("\t要求接近的值\t\t\t实际求得的特征值\n");YaSuoJZ(C,a,b, c); //还原矩阵A中元素并压缩存储在C中for(k=1;k<=39;k++){p=λ1+k*(λ501-λ1)/40;for(j=0;j<=501;j++)C[2][j]=C[2][j]-p;λ=fanmifa(C)+p;printf("μ%d=%.13e λ%d=%.13e\n",k,p,k,λ);YaSuoJZ(C,a,b, c); //还原矩阵A中元素并压缩存储在C中}printf("\n(3)计算A的条件数cond(A)和行列式detA\n");cond=λm1/λs;daizhuangLU(C);for(j=0;j<=500;j++)detA=detA*C[2][j];printf("A的条件数cond(A)=%.13e\n",cond);printf("A的行列式detA=%.13e\n",detA);getch();}三、运行结果数值分析计算实习第一题ZY1515105 樊雪松(1)A的最大最小以及模最小的特征值A的最小特征值λ1=-1.0700113615018e+001A的最大特征值λ501=9.7246340987773e+000A的模最小特征值λs=-5.5579107942295e-003(2)与数μk最接近的特征值要求接近的值实际求得的特征值μ1=-1.0189494922173e+001 λ1=-1.0182934033146e+001 μ2=-9.6788762293280e+000 λ2=-9.5857074250676e+000 μ3=-9.1682575364831e+000 λ3=-9.1726724239280e+000 μ4=-8.6576388436383e+000 λ4=-8.6522840078976e+000 μ5=-8.1470201507934e+000 λ5=-8.0934838086753e+000 μ6=-7.6364014579485e+000 λ6=-7.6594054076924e+000 μ7=-7.1257827651036e+000 λ7=-7.1196846486912e+000 μ8=-6.6151640722588e+000 λ8=-6.6117643393973e+000 μ9=-6.1045453794139e+000 λ9=-6.0661032265951e+000 μ10=-5.5939266865690e+000 λ10=-5.5851010526284e+000 μ11=-5.0833079937241e+000 λ11=-5.1140835298122e+000 μ12=-4.5726893008792e+000 λ12=-4.5788721768651e+000 μ13=-4.0620706080344e+000 λ13=-4.0964709262599e+000 μ14=-3.5514519151895e+000 λ14=-3.5542112157508e+000 μ15=-3.0408332223446e+000 λ15=-3.0410900181333e+000 μ16=-2.5302145294997e+000 λ16=-2.5339703111304e+000 μ17=-2.0195958366549e+000 λ17=-2.0032307695635e+000μ18=-1.5089771438100e+000 λ18=-1.5035576112274e+000μ19=-9.9835845096511e-001 λ19=-9.9355860600754e-001μ20=-4.8773975812023e-001 λ20=-4.8704267388496e-001μ21=2.2878934724645e-002 λ21=2.2317362495748e -002μ22=5.3349762756952e-001 λ22=5.3241747420686e -001μ23=1.0441163204144e+000 λ23=1.0528989626935e+000μ24=1.5547350132593e+000 λ24=1.5894458818809e+000μ25=2.0653537061042e+000 λ25=2.0603304602743e+000μ26=2.5759723989490e+000 λ26=2.5580755970728e+000μ27=3.0865910917939e+000 λ27=3.0802405093071e+000μ28=3.5972097846388e+000 λ28=3.6136208676923e+000μ29=4.1078284774837e+000 λ29=4.0913785104506e+000μ30=4.6184471703285e+000 λ30=4.6030353782791e+000μ31=5.1290658631734e+000 λ31=5.1329242838984e+000μ32=5.6396845560183e+000 λ32=5.5949063480833e+000μ33=6.1503032488632e+000 λ33=6.0809338570269e+000μ34=6.6609219417080e+000 λ34=6.6803540921116e+000μ35=7.1715406345529e+000 λ35=7.2938774481266e+000μ36=7.6821593273978e+000 λ36=7.7171117142356e+000μ37=8.1927780202427e+000 λ37=8.2252200140502e+000μ38=8.7033967130876e+000 λ38=8.6486660651935e+000μ39=9.2140154059324e+000 λ39=9.2542003445750e+000(3)计算A 的条件数cond(A)和行列式detAA 的条件数cond(A)=1.9252042739022e+003A 的行列式detA=2.7727861417521e+118四、结果分析设A 的n 个线性无关的特征向量为1x ,2x ,…,n x ,其相对应的特征值满足的关系为n λλλλ≥≥≥> 321。

1月北京航空航天大学数学分析期末试题答案

1月北京航空航天大学数学分析期末试题答案

北京航空航天大学2005-2006学年第一学期考试统一用答题册考试课程数学分析B班级成绩姓名学号20XX年1月数学分析(上)期终考试试题班级 学号 姓名 日期:2006.1.20一、填空题(每小题4分,共20分)1. sin 0tan 00limx →+⎰⎰= 12. 不定积分dx x ⎰sec = ln sec tan x x C ++3. 设()f x 有一阶连续导数,则'()d f x x ⎰=()f x C +,10'(2)d f x x ⎰=[]1(2)(0)2f f -。

4. 设函数()2xf x xe -=,则()f x 在0=x 处的5阶带Peano 余项的泰勒公式为()3551()2f x x x x o x =-++ 5. 111lim ......12n n n n n →∞⎛⎫+++⎪+++⎝⎭= ln 2 二、单项选择(每小题4分,共20分)1. 设()f x 连续, 220()()d x F x f t t =⎰, 则 '()F x 等于 【 C 】A. 4()f xB. 24()x f xC. 42()xf xD. 22()xf x2.下列命题中正确的是 【 B 】.A 若级数1n nn u v∞=∑收敛,则2211,nnn n uv∞∞==∑∑一定都收敛。

B .若级数2211,nnn n uv∞∞==∑∑收敛,则1n nn u v∞=∑ 一定收敛 。

.C 若正项级数1n n u ∞=∑发散,则必有 1,1,2,3n u n n>= 。

.D 若1nn u∞=∑收敛,且,1,2,3,.....n n u v n ≥=,则1nn v∞=∑也收敛。

3. 设正项数列{}n a 单调递减 ,()11nn n a ∞=-∑发散,则级数111nn n a ∞=⎛⎫⎪+⎝⎭∑ 【 C 】A. 和等于1 B . 发散C . 收敛 D. 收敛性不能确定4. 设 1220011()d d 11xxF x t t t t =+++⎰⎰,则 【 B 】 A .()0F x ≡ B.()2F x π≡C. ()arctan F x x =D.()2arctan F x x =5. 设⎪⎩⎪⎨⎧=≠=0,00 ,1sin )(x x x x x f , 则⎰=x dt t f x F 0)()(在x = 0处 【 D 】A.不连续 B. 连续但不可导C.连续且可导 D . 导函数连续三、计算题(每小题6分,共24分)1.x x d arctan⎰1arctan 11arctan (1)x x dx x dx x xx C x C=-=+++=+=+⎰⎰ 2. 221d (1)(2)x x x x +++⎰ 2245112(1)24ln 15ln 21dx x x x x C x⎛⎫=-+ ⎪+++⎝⎭=--+++++⎰3.x x xd ln 12⎰∞+221111211ln -1ln 1d ln d d x 11d 1x x x x x x x x x x x +∞+∞+∞+∞+∞+∞⎛⎫==-+ ⎪⎝⎭==-=⎰⎰⎰⎰4. 设D 是由曲线 1sin +=x y 与三条直线 0,,0===y x x π 所围成的曲边梯形,求D 绕x 轴旋转一周所生成的旋转体的体积。

北航数值分析大作业三

北航数值分析大作业三

一、题目:关于x, y, t, u, v, w 的下列方程组0.5cos 2.670.5sin 1.070.5cos 3.740.5sin 0.79t u v w x t u v w y t u v w x t u v w y +++-=⎧⎪+++-=⎪⎨+++-=⎪⎪+++-=⎩1、试用数值方法求出f(x, y)在区域 {(,)|00.8,0.5 1.5}D x y x y =≤≤≤≤上的一个近似表达式,0(,)kr s rsr s p x y cx y ==∑要求(,)p x y 一最小的k 值达到以下的精度10202700((,)(,))10i j i j i j f x y p x y σ-===-≤∑∑其中,0.08,0.50.05i j x i y j ==+。

2、计算****(,),(,)i j i j f x y p x y (i = 1, 2, …,8;j = 1, 2,…,5)的值,以观察(,)p x y 逼近(,)f x y 的效果,其中,*i x =0.1i , *j y =0.5+0.2j 。

说明:1、用迭代方法求解非线性方程组时,要求近似解向量()k x 满足()(1)()12||||/||||10k k k x x x --∞∞-≤2、作二元插值时,要使用分片二次代数插值。

3、要由程序自动确定最小的k 值。

4、打印以下内容:●算法的设计方案。

●全部源程序(要求注明主程序和每个子程序的功能)。

●数表:,,i j x y (,)i j f x y (i = 0,1,2,…,10;j = 0,1,2,…,20)。

●选择过程的,k σ值。

●达到精度要求时的,k σ值以及(,)p x y 中的系数rs c (r = 0,1,…,k;s = 0,1,…,k )。

●数表:**,,i j x y ****(,),(,)i j i j f x y p x y (i = 1, 2, ...,8;j = 1, 2, (5)。

北航研究生数值分析试题

北航研究生数值分析试题

∗⎞ ⎟的 A1 ⎠
矩阵。
三、(12 分)试用高斯列主元素法求解线性方程组
⎡ 1 3 −2 −4 ⎤ ⎡ x1 ⎤ ⎡3 ⎤ ⎢ 2 6 −7 −10 ⎥ ⎢ x ⎥ ⎢ −2 ⎥ ⎢ ⎥⎢ 2⎥ = ⎢ ⎥ ⎢ −1 −1 5 9 ⎥ ⎢ x3 ⎥ ⎢14 ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ x4 ⎦ ⎥ ⎣ −6 ⎦ ⎣ −3 −5 0 15 ⎦ ⎣ 四、(12 分)利用矩阵 A 的三角分解 A = LU 求解下列方程组 ⎛ 1 2 1 ⎞ ⎛ x1 ⎞ ⎛ 0 ⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ 2 2 3 ⎟ ⎜ x2 ⎟ = ⎜ 3 ⎟ ⎜ −1 −3 0 ⎟ ⎜ x ⎟ ⎜ 2 ⎟ ⎝ ⎠⎝ 3 ⎠ ⎝ ⎠
第一章
1、近似数 x = 0.231 关于真值 x = 0.229 有( (1)1;(2)2;(3)3;(4)4。

绪论
一、选择题(四个选项中仅有一项符合题目要求,每小题 3 分,共计 15 分) )位有效数字。
2、取 3 ≈ 1.732 计算 x = ( 3 − 1) ,下列方法中哪种最好?(
4

Ax
∞和
A ∞ 的值分别为(

3
(1) 8 , 8 ;
(2) 8 , 7 ;
(3) 8 , 6 ;
(4) 7 , 7 。
5 、若解线性代数方程组的 Gauss 部分选主元方法第二步得到的系数矩阵的第三列向量为
(2
6 3 2 −5 4 2 ) ,则第三步主行是(
T
) (4) 第 6 行。
(1) 第 2 行;
1 − cos x , sin x
x ≠ 0且 x << 1 ;
(2)
1 1− x , − 1+ 2x 1+ x

北航数值分析大作业第一题幂法与反幂法

北航数值分析大作业第一题幂法与反幂法

《数值分析》计算实习题目第一题:1. 算法设计方案(1)1λ,501λ和s λ的值。

1)首先通过幂法求出按模最大的特征值λt1,然后根据λt1进行原点平移求出另一特征值λt2,比较两值大小,数值小的为所求最小特征值λ1,数值大的为是所求最大特征值λ501。

2)使用反幂法求λs ,其中需要解线性方程组。

因为A 为带状线性方程组,此处采用LU 分解法解带状方程组。

(2)与140k λλμλ-5011=+k 最接近的特征值λik 。

通过带有原点平移的反幂法求出与数k μ最接近的特征值 λik 。

(3)2cond(A)和det A 。

1)1=nλλ2cond(A),其中1λ和n λ分别是按模最大和最小特征值。

2)利用步骤(1)中分解矩阵A 得出的LU 矩阵,L 为单位下三角阵,U 为上三角阵,其中U 矩阵的主对角线元素之积即为det A 。

由于A 的元素零元素较多,为节省储存量,将A 的元素存为6×501的数组中,程序中采用get_an_element()函数来从小数组中取出A 中的元素。

2.全部源程序#include <stdio.h>#include <math.h>void init_a();//初始化Adouble get_an_element(int,int);//取A 中的元素函数double powermethod(double);//原点平移的幂法double inversepowermethod(double);//原点平移的反幂法int presolve(double);//三角LU 分解int solve(double [],double []);//解方程组int max(int,int);int min(int,int);double (*u)[502]=new double[502][502];//上三角U 数组double (*l)[502]=new double[502][502];//单位下三角L 数组double a[6][502];//矩阵Aint main(){int i,k;double lambdat1,lambdat2,lambda1,lambda501,lambdas,mu[40],det;init_a();//初始化Alambdat1=powermethod(0);lambdat2=powermethod(lambdat1);lambda1=lambdat1<lambdat2?lambdat1:lambdat2;lambda501=lambdat1>lambdat2?lambdat1:lambdat2;presolve(0);lambdas=inversepowermethod(0);det=1;for(i=1;i<=501;i++)det=det*u[i][i];for (k=1;k<=39;k++){mu[k]=lambda1+k*(lambda501-lambda1)/40;presolve(mu[k]);lambda[k]=inversepowermethod(mu[k]);}printf("------------所有特征值如下------------\n");printf("λ=%1.11e λ=%1.11e\n",lambda1,lambda501);printf("λs=%1.11e\n",lambdas);printf("cond(A)=%1.11e\n",fabs(lambdat1/lambdas));printf("detA=%1.11e \n",det);for (k=1;k<=39;k++){printf("λi%d=%1.11e ",k,lambda[k]);if(k % 3==0) printf("\n");} delete []u;delete []l;//释放堆内存return 0;}void init_a()//初始化A{int i;for (i=3;i<=501;i++) a[1][i]=a[5][502-i]=-0.064;for (i=2;i<=501;i++) a[2][i]=a[4][502-i]=0.16;for (i=1;i<=501;i++) a[3][i]=(1.64-0.024*i)*sin(0.2*i)-0.64*exp(0.1/i); }double get_an_element(int i,int j)//从A中节省存储量的提取元素方法{if (fabs(i-j)<=2) return a[i-j+3][j];else return 0;}double powermethod(double offset)//幂法{int i,x1;double beta=0,prebeta=-1000,yita=0;for (i=1;i<=501;i++)u[i]=1,y[i]=0;//设置初始向量u[]for (int k=1;k<=10000;k++){yita=0;for (i=1;i<=501;i++) yita=sqrt(yita*yita+u[i]*u[i]);for (i=1;i<=501;i++) y[i]=u[i]/yita;for (x1=1;x1<=501;x1++){u[x1]=0;for (int x2=1;x2<=501;x2++)u[x1]=u[x1]+((x1==x2)?(get_an_element(x1,x2)-offset):get_an_element(x1,x2))*y[x2];} prebeta=beta;beta=0;for (i=1;i<=501;i++) beta=beta+ y[i]*u[i];if (fabs((prebeta-beta)/beta)<=1e-12) {printf("offset=%f lambda=%f err=%e k=%d\n",offset,(beta+offset),fabs((prebeta-beta)/beta),k);break;};//输出中间过程,包括偏移量,误差,迭代次数}return (beta+offset);}double inversepowermethod(double offset)//反幂法{int i;double u[502],y[502];double beta=0,prebeta=0,yita=0;for (i=1;i<=501;i++)u[i]=1,y[i]=0; //设置初始向量u[]for (int k=1;k<=10000;k++){yita=0;for (i=1;i<=501;i++) yita=sqrt(yita*yita+u[i]*u[i]);for (i=1;i<=501;i++) y[i]=u[i]/yita;solve(u,y);prebeta=beta;beta=0;for (i=1;i<=501;i++) beta=beta+ y[i]*u[i];beta=1/beta;if (fabs((prebeta-beta)/beta)<=1e-12) {printf("offset=%f lambda=%f err=%e k=%d\n",offset,(beta+offset),fabs((prebeta-beta)/beta),k);break;};//输出中间过程,包括偏移量,误差,迭代次数}return (beta+offset);}int presolve(double offset)//三角LU分解{int i,k,j,t;double sum;for (k=1;k<=501;k++)for (j=1;j<=501;j++){u[k][j]=l[k][j]=0;if (k==j) l[k][j]=1;} //初始化LU矩阵for (k=1;k<=501;k++){for (j=k;j<=min(k+2,501);j++){sum=0;for (t=max(1,max(k-2,j-2)) ; t<=(k-1) ; t++)sum=sum+l[k][t]*u[t][j];u[k][j]=((k==j)?(get_an_element(k,j)-offset):get_an_element(k,j))-sum;}if (k==501) continue;for (i=k+1;i<=min(k+2,501);i++){sum=0;for (t=max(1,max(i-2,k-2));t<=(k-1);t++)sum=sum+l[i][t]*u[t][k];l[i][k]=(((i==k)?(get_an_element(i,k)-offset):get_an_element(i,k))-sum)/u[k][k];}}return 0;}int solve(double x[],double b[])//解方程组{int i,t;double y[502];double sum;y[1]=b[1];for (i=2;i<=501;i++){sum=0;for (t=max(1,i-2);t<=i-1;t++)sum=sum+l[i][t]*y[t];y[i]=b[i]-sum;}x[501]=y[501]/u[501][501];for (i=500;i>=1;i--){sum=0;for (t=i+1;t<=min(i+2,501);t++)sum=sum+u[i][t]*x[t];x[i]=(y[i]-sum)/u[i][i];}return 0;}int max(int x,int y){return (x>y?x:y);}int min(int x,int y){return (x<y?x:y);}3.计算结果结果如下图所示:部分中间结果:给出了偏移量(offset),误差(err),迭代次数(k)4.讨论迭代初始向量的选取对计算结果的影响,并说明原因使用u[i]=1(i=1,2,...,501)作为初始向量进行迭代,可得出以上结果。

北航数值分析大作业3(学硕)

北航数值分析大作业3(学硕)

《数值分析》作业三院系:机械学院学号:SY1307145姓名:龙安林2013年11 月24 日1. 算法设计1) 开始;2) 计算数组[][]0.08,0.050.5,0,1,2,,10;0,1,2,,20x i i y j j i j ==+=⋯=⋯(); 3) 将点[][],0,1,2,,10;0,1,2,,20x i y j i j =⋯=⋯(),()带入非线性方程组: 0.5cos 2.670.5sin 1.070.5cos 3.740.5sin 0.79t u v w x t u v w y t u v w x t u v w y +++-=⎧⎪+++-=⎪⎨+++-=⎪⎪+++-=⎩ 得出相应的点,t u (); 4) 选择拉格朗日插值法,将,t u ()作为中间变量,在题目所给出的二维数表中进行二次代数插值,得到[][],)(z f x i y j =;5) 输出数表:[][][][]()()0,1,2,,10;0,1,2,,20,,,x i y j f x i y j i j =⋯=⋯; 6) 令k=0;7) 以()()(),,,0,1,r r r s x x y y r s ϕψ===…,k 为拟合基函数,将上述数表作为拟合条件,对于给定的k 值,得到矩阵B 、G 、U ;8) 令-1-1(),()T T T A B B B U C AG G G ==,用选主元的LU 分解法分别计算矩阵A 和C 的各列,最后得到系数矩阵C ;9) 以公式:()()()00,k ki j rs r i s j s r p x y C x y ϕψ===∑∑计算每个点的拟合值;10) 利用公式:()()()2102000,,i j i j i j f x y p x y σ===-∑∑计算拟合误差,当σ≤10-7时,循环结束,否则k=k+1,转(6);11) 令[][]()**0.10.50.2 1,2,81,2,5x i i y j j i j ==+=⋯=⋯;,;,;12) 计算()()()******,,,,,i j i j i jf x y p x y delta x y ,输出数表,观察逼近效果; 13) 结束。

数值分析(秘籍考试必过个人整理)

数值分析(秘籍考试必过个人整理)

例1:构造求解下列方程组收敛的Gauss-Seidel 迭代格式(不计算),并说明收敛的理由。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----456401-1-51-1-1-6645116401151321321x x x x x x 同解变换为GS 迭代格式为⎪⎪⎪⎩⎪⎪⎪⎨⎧+=++=++=+++++141151511616111133********k k kk k kk k x x x x x x x x ,k=0,1,2,…其中)0(3)0(2)0(1,,x x x 为初值。

因为变换后的系数矩阵为严格对角占优阵,所以GS 迭代格式收敛。

公式:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+--=∑∑-≠=+=++111111i i j j ni j i k j ij k j ij ii k i b x a x a a x 收敛性:1.若A 主对角元占优,则收敛。

2.若A 对称正定,则收敛。

3.若1〈G ,则收敛 4.收敛1)(<⇔G ρ例2:用Doolittle (LU )分解法求解如下线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---203214511121321x x x 解:设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=203,214511121b A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡==332322131211323121111u u u u u u l l l LU A 公式n k i u u l a l n k k j u l a u kk sk k s is ik ik sj k s ks kj kj ,...,1,/)(,,...,1,,1111+=-=+=-=∑∑-=-= 由矩阵相等得:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=1263121,1374111U L由Ly=b ,解得:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡333321y y y ,由Ux=y, 解得:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡4/12/34/1321x x x注:Crout 分解:A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=111231312333231222111u u u l l l l l l LU ),...,1,(11n k k i u l a l tk k t it ik ik +=-=∑-=,),,...,2,1(,/)(11n k n k k j l u l a u kk k t tj kt kj kj <++=-=∑-=例3:用Euler 法求初值问题:⎩⎨⎧==≤≤-=1.0,0)0(5.00,,h y x y x y 解:1)Euler 公式:⎩⎨⎧=-=+=+001)(1,...,1,0),,(y x y n i y x hf y y i i i i公式:))(,()(,i i i x y x f x y =,对于[]))(,()(,,,x y x f x y b a x =∈∀ 这里ih x y x y x f h b a y n i =-======,),(,1.0,5.0,0,0,50 注:因为x 最大能取到0.5,步长h=0.1,所以n=5i y y i y y i i i i 01.09.0)1.0(1.01+=-+=+2)算得:=====54321,,,,y y y y y例4:(Householder)设Ta )4,3,1,0,7(-=求H 使5,)0,,1,0,7(±=-=σσTHa解:设T b )0,,1,0,7(σ-=(取σ=5,(σ符号的选取应使2b a -的值尽可能大,σ与1+m a 同号))T b a )4,8,0,0,0(-=-∴, 54)4(8222=-+=-baT b a b a V )1,2,0,0,0(512-=--=, ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=-=5/35/45/45/3235I VV I H T公式:设Ha=b ,计算T VV I H b a ba Vb a b a 2,,,22-=--=--( , ||m a x ||||111∑=≤≤=ni ij nj a A (列范数) 的最大特征值矩阵A A A T =2||||)例5:利用householder 把下列矩阵化为拟上三角矩阵。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京航空航天大学数值分析历年部分试题整理
(2001
2002
2003
2006
2008
2009)
2010年3月16日
北航数值分析2001年试题
北航数值分析2002年试题
北航数值分析2003年试题
北航数值分析2006年试题
北航数值分析2008年试题(版本一)
北航数值分析2008年试题(版本二)
北航数值分析2008年试题答案
一.选择题
1.C
2.A
3.D
4.D
5.A
6.D
二.填空题
1.错误!未找到引用源。

2.错误!未找到引用源。

3.错误!未找到引用源。

4.错误!未找到引用源。

5.0
6.0
7.错误!未找到引用源。

北航数值分析2009年试题
感谢手工抄写试卷的zhp、jhw、zby同学,以上试卷答案为本人和同学讨论所得,不保证正确性,请同学们参考使用,祝大家取得好成绩(^_^)
2010年3月16日。

相关文档
最新文档