东南大学 数值分析上机题作业 MATLAB版
数值分析上机作业(MATLAB)
将系数矩阵 A 分解为:A=L+U+D
Ax=b
⇔ (D + L +U)x = b ⇔ Dx = −(L + U )x + b ⇔ x = −D −1(L + U )x + D −1b x(k +1) = −D −1 (L + U ) x(k ) + D −1b
输入 A,b 和初始向量 x
迭代矩阵 BJ , BG
否
ρ(B) < 1?
按雅各比方法进行迭代
否
|| x (k+1) − x(k) ||< ε ?
按高斯-塞德尔法进行迭代
否
|| x(k+1) − x (k ) ||< ε ?
输出迭代结果
图 1 雅各布和高斯-赛德尔算法程序流程图
1.2 问题求解
按图 1 所示的程序流程,用 MATLAB 编写程序代码,具体见附录 1。解上述三个问题 如下
16
-0.72723528355328
0.80813484897616
0.25249261987171
17
-0.72729617968010
0.80805513082418
0.25253982509100
18
-0.72726173942623
0.80809395746552
0.25251408253388
0.80756312717373
8
-0.72715363032573
0.80789064377799
9
-0.72718652854079
东南大学数值分析上机作业汇总
东南大学数值分析上机作业汇总-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII数值分析上机报告院系:学号:姓名:目录作业1、舍入误差与有效数 (1)1、函数文件cxdd.m (1)2、函数文件cddx.m (1)3、两种方法有效位数对比 (1)4、心得 (2)作业2、Newton迭代法 (2)1、通用程序函数文件 (3)2、局部收敛性 (4)(1)最大δ值文件 (4)(2)验证局部收敛性 (4)3、心得 (6)作业3、列主元素Gauss消去法 (7)1、列主元Gauss消去法的通用程序 (7)2、解题中线性方程组 (7)3、心得 (9)作业4、三次样条插值函数 (10)1、第一型三次样条插值函数通用程序: (10)2、数据输入及计算结果 (12)作业1、舍入误差与有效数设∑=-=Nj N j S 2211,其精确值为⎪⎭⎫ ⎝⎛---1112321N N . (1)编制按从小到大的顺序11131121222-⋅⋅⋅+-+-=N S N ,计算N S 的通用程序;(2)编制按从大到小的顺序()12111111222-⋅⋅⋅+--+-=N N S N ,计算N S 的通用程序;(3)按两种顺序分别计算642101010,,S S S ,并指出有效位数; (4)通过本上机你明白了什么? 程序:1、函数文件cxdd.mfunction S=cxdd(N) S=0; i=2.0;while (i<=N) S=S+1.0/(i*i-1); i=i+1;endscript 运行结果(省略>>):S=cxdd(80) S=0.7375772、函数文件cddx.mfunction S=cddx (N) S=0; for i=N:-1:2 S=S+1/(i*i-1); endscript 运行结果(省略>>): S=cddx(80) S=0.7375773、两种方法有效位数对比精确值函数:function S=jqz(N)S=0.5*(1.5-1.0/N-1.0/(N+1));script运行结果(省略>>)4、心得本题重点体现了数值计算中“大数吃小数”的问题,由于计算机计算的截断特点,从大到小的计算会导致小数的有效数被忽略掉。
Matlab上机作业部分参考答案.ppt
[rank(A), rank([A B])]
ans =
34 由得出的结果看,A, [A;B] 两个矩阵的秩不同,故方程是
矛盾方程,没有解。
5. 试求下面齐次方程的基础解系
7. 建立如下一个元胞数组,现在要求计算第一个元胞第4行第 2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元 胞的第二个元素。
a={pascal(4),'hello';17.3500,7:2:100}
解: >> a={pascal(4),'hello';17.3500,7:2:100} a=
[ 173/34, 151/34]
6. 求解方程组的通解
x1 2x2 4x3 6x4 3x5 2x6 4 2x1 4x2 4x3 5x4 x5 5x6 3
3x1 6x2 2x3 5x5 9x6 1 2x1 3x2 4x4 x6 8
4x2
5x3
2x4
x5
参考答案: (1) >> limit(sym('(tan(x) - sin(x))/(1cos(2*x))')) ans = 0 (2) >> y = sym('x^3 - 2*x^2 + sin(x)'); >> diff(y) ans = 3*x^2-4*x+cos(x) (3) >> f = x*y*log(x+y); >> fx = diff(f,x) fx = y*log(x+y)+x*y/(x+y)
东南大学数值分析上机题答案
东南⼤学数值分析上机题答案数值分析上机题第⼀章17.(上机题)舍⼊误差与有效数设∑=-=Nj N j S 2211,其精确值为)111-23(21+-N N 。
(1)编制按从⼤到⼩的顺序1-1···1-311-21222N S N +++=,计算N S 的通⽤程序;(2)编制按从⼩到⼤的顺序121···1)1(111222-++--+-=N N S N ,计算NS 的通⽤程序;(3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时⽤单精度);(4)通过本上机题,你明⽩了什么?解:程序:(1)从⼤到⼩的顺序计算1-1···1-311-21222N S N +++=:function sn1=fromlarge(n) %从⼤到⼩计算sn1format long ; sn1=single(0); for m=2:1:nsn1=sn1+1/(m^2-1); end end(2)从⼩到⼤计算121···1)1(111222-++--+-=N N S N function sn2=fromsmall(n) %从⼩到⼤计算sn2format long ; sn2=single(0); for m=n:-1:2sn2=sn2+1/(m^2-1); end end(3)总的编程程序为: function p203()clear allformat long;n=input('please enter a number as the n:') sn=1/2*(3/2-1/n-1/(n+1));%精确值为sn fprintf('精确值为%f\n',sn);sn1=fromlarge(n);fprintf('从⼤到⼩计算的值为%f\n',sn1);sn2=fromsmall(n);fprintf('从⼩到⼤计算的值为%f\n',sn2);function sn1=fromlarge(n) %从⼤到⼩计算sn1 format long;sn1=single(0);for m=2:1:nsn1=sn1+1/(m^2-1);endendfunction sn2=fromsmall(n) %从⼩到⼤计算sn2 format long;sn2=single(0);for m=n:-1:2sn2=sn2+1/(m^2-1);endendend运⾏结果:从⽽可以得到N值真值顺序值有效位数2 100.740050 从⼤到⼩0.740049 5从⼩到⼤0.740050 64 100.749900 从⼤到⼩0.749852 3从⼩到⼤0.749900 66 100.749999 从⼤到⼩0.749852 3从⼩到⼤0.749999 6(4)感想:通过本上机题,我明⽩了,从⼩到⼤计算数值的精确位数⽐较⾼⽽且与真值较为接近,⽽从⼤到⼩计算数值的精确位数⽐较低。
东南大学出版社第二版《数值分析》上机作业答案(前三章)
for (i=k+1;i<N;i++) // { lik=a[i][k]/a[k][k]; //实施消去过程,得到上三角系数增广矩阵 for (j=k;j<M;j++) // { a[i][j]=a[i][j]‐lik*a[k][j]; // } } } cout<<"经列主元高斯消去法得到的数组为:"<<endl; // for (b=0;b<N;b++) // { cout<<endl; //输出经过列主元消去法处理过的系数增广矩阵 for (c=0;c<M;c++) { cout<<setw(7)<<a[b][c]; // } } cout<<endl; double x[N]; // double s; int f,g; x[N‐1]=a[N‐1][M‐1]/a[N‐1][N‐1]; // for (f=N‐2;f>=0;f‐‐) // { s=0; for (g=f+1;g<N;g++) //由上三角形的系数增广矩阵求出方程组的解 { s=s+a[f][g]*x[g]; // } x[f]=(a[f][N]‐s)/a[f][f]; // } cout<<"方程组的解为:"<<endl; for (b=0;b<N;b++) //输出方程组的解 {
1
当 n=10000 时,s3=0.7499 Press any key to continue (分析 S1 的 6 位数字中,有效位数为 4 位; S2 的所有数字都是有效数字。 ) 当 n=1000000 时,s1=‐14.2546 当 n=1000000 时,s2=‐14.2551 当 n=1000000 时,s3=0.749999 Press any key to continue (分析: S1 的 6 位数字中,没有有效数字; S2 的 6 位数字中,没有有效数字。 ) 由运行结果可知,当精度比较低时,按从大数开始累加到小数的计算结果的精度低于按从小数 累加到大数的计算结果的精度。 至于当 n=1000000 时,S1 和 S2 得出了负数结果,可能是由于循环次数过多,导致数据溢出, 从而得出错误结果。 习题 2 20.程序如下: //给定误差限为:0.5e‐6 //经过试算得当 delta 最大取道 0.7745966 时,迭代得到的根都收敛于 0 #include <iostream.h> #include <math.h> void main () { double x,u; int count=0; u=10.0; cout<<"请输入 x 的初值"<<endl; cin>>x; for (count=0;abs(u)>5;count++) { x=x‐(x*x*x‐3*x)/(3*(x*x‐1)); u=10000000*x; if(count>5000) { cout<<"迭代结果不收敛于 0!"<<endl; break; } } cout<<"x="<<x<<endl<<endl;
数值分析上机题Matlab(东南大学)3
0.22 0.24 0.26 0.28 0.30 0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 0.62 0.64 0.66 0.68 0.70 0.72
152 139 128 119 110 103 96 90 85 80 76 72 68 65 62 59 56 53 51 49 47 45 43 41 39 38
========================================================================================================================
======================================================================================================================================================================== 习题 3_36 ======================================================================================================================================================================== Omega n x1 x2 x3 x4 x5 x6 x7 x8 x9
-0.71279 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281
matlab上机练习题答案(可编辑修改word版)
a ⎣ ⎦ 1. 计算 a = 5⎦ >> a=[6 9 3;2 7 5]; >> b=[2 4 1;4 6 8]; >> a.*b ans =⎣4 8⎦>> d=deconv([3 13 6 8],[1 4]) d =312⎡2 4 7 4⎤⎡8⎤1236 36 求欠定方程组⎢9 3 5 6⎥ x = ⎢5⎥ 的最小范数解84240⎡4 9 2⎤⎡37⎤⎣ >> a=[2 4 7 4;9 3 5 6]; >> b=[8 5]'; ⎦ ⎣ ⎦2. 对于 AX = B ,如果 A = ⎢7 6 4⎥ , B = ⎢26⎥ ,求解 X 。
>> x=pinv(a)*b⎢ ⎥ ⎢ ⎥x =>> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]’; >> X=A\B X =⎢⎣3 5 7⎥⎦ ⎢⎣28⎥⎦-0.2151 0.4459 0.7949 0.27077 用符号函数法求解方程 a t 2+b*t +c=0-0.5118 >> r=solve('a*t^2+b*t+c=0','t') 4.0427 r =1.3318[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] ⎡1 2 5 ⎤ ⎡8 - 7 4⎤ [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]3. a = ⎢3 6 - 4⎥ , b = ⎢3 6 2⎥ ,观察 a 与 b 之间的⎣ ⎦ ⎣ ⎦⎡a 11 a 12 ⎤六种关系运算的结果 >> a=[1 2 3;4 5 6];8 求矩阵 A = ⎢ ⎣ 21 ⎥ 的行列式值、逆和特征根a 22 ⎦>> b=[8 –7 4;3 6 2];>> syms a11 a12 a21 a22;>> a>b >> A=[a11,a12;a21,a22] ans =>> AD=det(A) % 行列式 0 1 0 >> AI=inv(A) % 逆 11>> AE=eig(A) % 特征值 >> a>=b ans =0 1 0 1 01>> a<b ans =1 0 1 0 1>> a<=b ans =1 0 1 010 A = [ a11, a12][ a21, a22] AD =a11*a22-a12*a21 AI =[ -a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21)] [ a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21)] AE = [1/2*a11+1/2*a22+1/2*(a11^2- 2*a11*a22+a22^2+4*a12*a21)^(1/2)] [1/2*a11+1/2*a22-1/2*(a11^2->> a==b2*a11*a22+a22^2+4*a12*a21)^(1/2)] ans =9 因式分解: x 4 - 5x 3 + 5x 2 + 5x - 60 0 0 >> syms x;0 00 >> f=x^4-5*x^3+5*x^2+5*x-6; >> a~=b ans =>> factor(f) ans =(x-1)*(x-2)*(x-3)*(x+1)4 计算多项式乘法(x 2+2x +2)(x 2+5x +4) ⎡10 f = ⎢ x 21 x ⎤⎥ ,用符号微分求 df/dx 。
Matlab上机练习一答案
Matlab上机练习⼀答案Matlab 上机练习⼀班级学号姓名按要求完成题⽬,并写下指令和运⾏结果。
(不需要画图)1、求下列联⽴⽅程的解=+-+-=-+=++-=--+41025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10];>> b=[4;4;9;4];>> c=a\bc =5.22264.45701.47181.59942、设 ??++=)1(sin 35.0cos 2x x x y ,把x=0-2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。
>> x=linspace(0,2*pi,101);>> y=cos(x)*(0.5+(1+x.^2)\3*sin(x));>> plot(x,y,'r')3、产⽣8×6阶的正态分布随机数矩阵R1, 求其各列的平均值、和、乘积。
并求该矩阵全体数的平均值。
(mean var )a=randn(8,6)mean(a)var(a)k=mean(a)k1=mean(k)i=ones(8,6)i1=i*k1i2=a-i1i3=i2.*i2g=mean(i3)g2=mean(g)或者u=reshape(a,1,48);p1=mean(u)p2=var(u)4、绘制)(222y x e x z +-=在定义域x=[-2,2],y=[-2,2]内的曲⾯。
(利⽤meshgrid )x=-2:2;y=x;[X,Y]= meshgrid(x,y);Z=X^2*exp(-(X^2+Y^2));mesh(X,Y,Z)5、求代数⽅程3x 5+4x 4+7x 3+2x 2+9x+12=0的所有根。
(利⽤roots 函数)p=[3 4 7 2 9 12];roots(p)6、把1开五次⽅,并求其全部五个根。
最新东南大学数值分析上机题matlab(前三章)
数值分析上机题第一章(17题)(1)从2依次累加到N的程序function sn = sum1( n )sn=0;sn=single(sn);for i=2:nai=1/(i^2-1);sn=sn+ai;endend(2)从N依次累加到2的程序function sn = sum2( n )sn=0;sn=single(sn);for i=n:-1:2ai=1/(i^2-1);sn=sn+ai;endend(3)编制求精确值的求和函数sum0function sn = sum0( n )sn=0;sn=single(sn);sn=1/2*(3/2-1/n-1/(n+1));end按第一种顺序得到的值及有效位数如下:N=100时sn0=sum0(100);sn=sum1(100)n=fix(-log10(2*abs(sn-sn0)))得到:sn =0.7400495 n =7N=10e4时sn0=sum0(10e4);sn=sum1(10e4)n=fix(-log10(2*abs(sn-sn0)))得到:sn =0.7498521 n =3N=10e6时sn0=sum0(10e6);sn=sum1(10e6)n=fix(-log10(2*abs(sn-sn0)))得到:sn =0.7498521 n =3按第二种顺序得到的值及有效位数如下:N=100时sn0=sum0(100);sn=sum2(100)n=fix(-log10(2*abs(sn-sn0)))得到:sn =0.7400495 n =7N=10e4时sn0=sum0(10e4);sn=sum2(10e4)n=fix(-log10(2*abs(sn-sn0)))得到:sn =0.7499900 n =7N=10e6时sn0=sum0(10e6);sn=sum2(10e6)n=fix(-log10(2*abs(sn-sn0)))得到:sn =0.7499999 n =7(4)通过这道上机题,我明白了,应用计算机进行求和运算时,求和的顺序不同对结果的精度是有影响的。
数值分析上机题 舍入误差与有效数
(5)通过上述分析可以看出:按从小到大的顺序计算所得的结果与真值接近,而按从大到小的顺序计算所得的结果与真值的误差较大,且有效位数较前者少。
原因:这是由于机器数在进行加法运算时,首先比较两数的阶码,将阶码较小的尾数向右移位,每移一位阶码加一,直至其阶码与另一数的阶码一致为止,且将移位后的尾数多于计算机字长的部分进行四舍五入,之后对尾数进行加减运算,最后将尾数写成规格化的形式,当从大到小的顺序进行计算式,由于越到后面数字越小,就会产生大数吃小数的情况,从而产生误差的累积,最后使计算结果的不准确。
解:(1)从大到小的matlab程序:
functions=myfun1(N)
formatlong;
k=2;
s=single(0);
fork=2:1:N
a=1/(k*k-1);
s=a+s;
end
end
(2)从小到大的matlab程序
functions=myfun2(N)
formatlong;
s=single(0);
fori=N:-1:2
a=1/(i*i-1);
s=a+s;
end
真值
有效位数
0.7400495
0.7400495
0.7400495
大小
7位
小大
7位
0.7498521
0.7499000
0.7499000
大小
4位
小大
7位
0.7498521
0.7499990
0.749999
大小
4位
小大
舍入误差与有效数
东南大学机械工程学院
设SN= ,其精确值为 )。
(1)编制按从大到小的顺序SN= + + +……+ ,计算SN通用的程序;
数值分析作业-matlab上机作业
数值分析———Matlab上机作业学院:班级:老师:姓名:学号:第二章解线性方程组的直接解法第14题【解】1、编写一个追赶法的函数输入a,b,c,d输出结果x,均为数组形式function x=Zhuiganfa(a,b,c,d)%首先说明:追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵。
%定义三对角矩阵A的各组成单元。
方程为Ax=d%b为A的对角线元素(1~n),a为-1对角线元素(2~n),c为+1对角线元素(1~n-1)。
% A=[2 -1 0 0% -1 3 -2 0% 0 -2 4 -3% 0 0 -3 5]% a=[-1 -2 -3];c=[-1 -2 -3];b=[2 3 4 5];d=[6 1 -2 1];n=length(b);u(1)=b(1);y(1)=d(1);for i=2:nl(i)=a(i-1)/u(i-1);%先求l(i)u(i)=b(i)-c(i-1)*l(i);%再求u(i)%A=LU,Ax=LUx=d,y=Ux,%Ly=d,由于L是下三角矩阵,对角线均为1,所以可求y(i)y(i)=d(i)-l(i)*y(i-1);endx(n)=y(n)/u(n);for i=(n-1):-1:1%Ux=y,由于U是上三角矩阵,所以可求x(i)x(i)=(y(i)-c(i)*x(i+1))/u(i);end2、输入已知参数>>a=[2 2 2 2 2 2 2];>>b=[2 5 5 5 5 5 5 5];>>c=[2 2 2 2 2 2 2];>>d=[220/27 0 0 0 0 0 0 0];3、按定义格式调用函数>>x=zhuiganfa(a,b,c,d)4、输出结果x=[8.147775166909105 -4.073701092835030 2.036477565178471 -1.017492820111148 0.507254485099400 -0.250643392637350 0.119353996493976 -0.047741598597591]第15题【解】1、编写一个程序生成题目条件生成线性方程组A x=b 的系数矩阵A 和右端项量b ,分别定义矩阵A 、B 、a 、b 分别表示系数矩阵,其中1(10.1;,1,2,...,)j ij i i a x x i i j n -==+=或1(,1,2,...,)1ij a i j n i j ==+-分别构成A 、B 对应右端项量分别a 、b 。
东南大学数值分析编程作业
数值分析编程作业******学号:******指导老师:***目录P20.第17题:舍入误差与有效数 (3)P56.第20题:Newton迭代法 (5)P126.第39题:列主元Gauss消去法 (13)P127.第40题:逐次超松弛迭代法 (16)P195.第37题:3次样条插值函数 (22)P256.第23题:重积分的计算 (24)P307.第23题:常微分方程初值问题数值解 (26)P346.第10题:抛物方程Crank-Nicolson格式 (31)注:源程序放在对应的文件夹里,如第一题放在“P20.第17题:舍入误差与有效数”文件夹里;P20.第17题:舍入误差与有效数设2211311,--122N N+1NN j S j ==-∑其精确值为()。
(1)编制按从小到大的顺序222111+++2-13-1N -1N S =⋅⋅⋅⋅⋅,计算N S 的通用程序; (2)编制按从小到大的顺序222111+++N -1N-1-12-1N S =⋅⋅⋅⋅⋅(),计算N S 的通用程序; (3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时用单精度); (4)通过本上机题你明白了什么?答 (1)(2)程序:程序放在computation.m, goon.m 文件里,运行程序时只需输入命令main(3)运行结果:N=100时,S1有6位有效数字,S2都是有效数字N=10000时,S1有4位有效数字,S2都是有效数字N=1000000时,S1有3位有效数字,S2都是有效数字(4)体会:当N从小到大变化时,SN的项从大到小,反之SN的项从小到大。
从运算结果可见,第一种计算结果总是比第2、3种计算结果小,这是由于大数吃小数的原因(计算机表示一个数值是用字节表示的,当程序进行计算时,先将第一项和第二项相加,然后再加第三项……所以加到后面会由于项的值很小,不能加到这个字节里,所以就被忽略了。
(整理)东南大学信息学院年matlab上机考试题及答案
MATLAB 上机测验题(考试时间:2:20----4:20)姓名 学号考试要求:1、要求独立完成不得与他人共享,答卷雷同将做不及格处理。
2、答卷用Word 文件递交,文件名为学号+姓名.doc ,试卷写上姓名及学号。
3、答卷内容包括:(1) 程序;(2) 运行结果及其分析;(3) 图也要粘贴在文档中。
上机考题: 一、系统传递函数为1121()10.81z H z z z---+=-+,按照以下要求求解: 1) 求其极零点图,判断系统的稳定性,画出系统的频谱特性;2) 当系统输入信号为:()[5cos(0.2)2sin(0.7)]x n n n ππ=++,050n ≤≤时,画出系统的输出。
(1) 代码如下:clcclearb=[1 1 0];a=[1,-1,0.81];sys=tf(b,a,-1);figurepzmap(sys);saveas(gcf,'p1_1','bmp');figurew=0:0.1:20;freqz(b,a,w);saveas(gcf,'p1_2','bmp');%第二问开始figure;n=0:50;x=5+cos(0.2*pi*n)+2*sin(0.7*pi*n); lsim(sys,x)saveas(gcf,'p1_3','bmp');运行结果如下:图1-1图1-2系统极零图如图1-1所示,通过该离散系统的极零图可以看出,极点全部都在单位圆内,所以系统是稳定的。
系统的频谱特性曲线如图1-2所示(2)运行结果如下图所示图1-3图1-3为系统在x(n)激励下的输出,其中灰色部分为输入信号,蓝色为输出信号。
二、系统传递函数为324321130()9459750s s sH ss s s s++=++++,1)画出系统的零极点图,判断稳定性;2)给定频率范围为[0,10],步长为0.1,画出其频率响应;3)画出系统的单位脉冲响应。
东南大学数值分析上机报告完整版
数值分析上机实验报告目录1.chapter1舍入误差及有效数 (2)2.chapter2Newton迭代法 (3)3.chapter3线性代数方程组数值解法-列主元Gauss消去法 (7)4.chapter3线性代数方程组数值解法-逐次超松弛迭代法 (9)5.chapter4多项式插值与函数最佳逼近 (10)1.chapter1舍入误差及有效数1.1题目设S N =∑1j 2−1N j=2,其精确值为)11123(21+--N N 。
(1)编制按从大到小的顺序11131121222-+⋯⋯+-+-=N S N ,计算S N 的通用程序。
(2)编制按从小到大的顺序1211)1(111222-+⋯⋯+--+-=N N S N ,计算S N 的通用程序。
(3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。
(编制程序时用单精度)(4)通过本次上机题,你明白了什么?1.2编写相应的matlab 程序clear;N=input('please input N:');AValue=((3/2-1/N-1/(N+1))/2);sn1=single(0);sn2=single(0);for i=2:Nsn1=sn1+1/(i*i-1); %从大到小相加的通用程序%endep1=abs(sn1-AValue);for j=N:-1:2sn2=sn2+1/(j*j-1); %从小到大相加的通用程序%endep2=abs(sn2-AValue);fprintf('精确值为:%f\n',AValue);fprintf('从大到小的顺序累加得sn=%f\n',sn1);fprintf('从大到小相加的误差ep1=%f\n',ep1);fprintf('从小到大的顺序累加得sn=%f\n',sn2);fprintf('从小到大相加的误差ep2=%f\n',ep2);disp('=================================');1.3matlab 运行程序结果>> chaper1please input N:100精确值为:0.740050从大到小的顺序累加得sn=0.740049从大到小相加的误差ep1=0.000001从小到大的顺序累加得sn=0.740050从小到大相加的误差ep2=0.000000>> chaper1please input N:10000精确值为:0.749900从大到小的顺序累加得sn=0.749852从大到小相加的误差ep1=0.000048从小到大的顺序累加得sn=0.749900从小到大相加的误差ep2=0.000000>> chaper1please input N:1000000精确值为:0.749999从大到小的顺序累加得sn=0.749852从大到小相加的误差ep1=0.000147从小到大的顺序累加得sn=0.749999从小到大相加的误差ep2=0.0000001.4结果分析以及感悟按照从大到小顺序相加的有效位数为:5,4,3。
东南大学 数值分析上机题作业 MATLAB版
东南大学数值分析上机题作业MATLAB版上机作业题报告1.Chapter 11.1题目设S N= Nj=2j2−1,其精确值为11311(-- 。
22N N +1(1)编制按从大到小的顺序S N =(2)编制按从小到大的顺序S N =111,计算S N 的通用程序。
++⋯⋯+22-132-1N 2-1111,计算S N 的通用程++⋯⋯+N 2-1(N -1 2-122-1序。
(3)按两种顺序分别计算S 102, S 104, S 106, 并指出有效位数。
(编制程序时用单精度)(4)通过本次上机题,你明白了什么?1.2程序 1.3运行结果1.4结果分析按从大到小的顺序,有效位数分别为:6,4,3。
按从小到大的顺序,有效位数分别为:5,6,6。
可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。
当采用从大到小的顺序累加的算法时,误差限随着N 的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。
因此,采取从小到大的顺序累加得到的结果更加精确。
2.Chapter 22.1题目(1)给定初值x 0及容许误差ε,编制牛顿法解方程f(x=0的通用程序。
3(2)给定方程f (x =x-x =0, 易知其有三个根x 1*=-3, x 2*=0, x 3*=○1由牛顿方法的局部收敛性可知存在δ>0, 当x 0∈(-δ, Newton 迭代序列收敛+δ 时,于根x2*。
试确定尽可能大的δ。
○2试取若干初始值,观察当x 0∈(-∞, -1, (-1, -δ, (-δ, +δ, (δ, 1, (1, +∞ 时Newton 序列的收敛性以及收敛于哪一个根。
(3)通过本上机题,你明白了什么?2.2程序2.3运行结果(1)寻找最大的δ值。
算法为:将初值x0在从0开始不断累加搜索精度eps ,带入Newton 迭代公式,直到求得的根不再收敛于0为止,此时的x0值即为最大的sigma 值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015.1.9 上机作业题报告
1.Chapter 1
1.1题目
设S N =∑1j 2−1
N j=2
,其精确值为
)1
1
123(21+--N N 。
(1)编制按从大到小的顺序1
1
131121222-+
⋯⋯+-+-=N S N ,计算S N 的通用程序。
(2)编制按从小到大的顺序1
21
1)1(111222-+
⋯⋯+--+-=
N N S N ,计算S N 的通用程序。
(3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。
(编制程序时用单精度) (4)通过本次上机题,你明白了什么?
1.2程序
1.3运行结果
1.4结果分析
按从大到小的顺序,有效位数分别为:6,4,3。
按从小到大的顺序,有效位数分别为:5,6,6。
可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。
当采用从大到小的顺序累加的算法时,误差限随着N 的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。
因此,采取从小到大的顺序累加得到的结果更加精确。
2.Chapter 2
2.1题目
(1)给定初值0x 及容许误差ε,编制牛顿法解方程f(x)=0的通用程序。
(2)给定方程03
)(3
=-=x x
x f ,易知其有三个根3,0,3321=
*=*-=*x x x
○1由牛顿方法的局部收敛性可知存在,0>δ当),(0δδ+-∈x 时,Newton 迭代序列收敛于根x2*。
试确定尽可能大的δ。
○2试取若干初始值,观察当),1(),1,(),,(),,1(),1,(0+∞+-----∞∈δδδδx 时Newton 序列的收敛性以及收敛于哪一个根。
(3)通过本上机题,你明白了什么?
2.2程序
2.3运行结果
(1)寻找最大的δ值。
算法为:将初值x0在从0开始不断累加搜索精度eps,带入Newton迭代公式,直到求得的根不再收敛于0为止,此时的x0值即为最大的sigma值。
运行Find.m,得到在不同的搜索精度下的最大sigma值。
可见,在(−∞,−1)区间内取初值,Newton序列收敛,且收敛于根−√3。
可见,在(−1,−δ)内取初值,Newton序列收敛,且收敛于根√3。
可见,在(−δ,δ)内取初值,Newton序列收敛,且收敛于根0。
可见,在(δ,1)内取初值,Newton序列收敛,且收敛于根−√3
可见,在(1,+∞)内取初值,Newton序列收敛,且收敛于根√3
3.Chapter 3
3.1题目
对于某电路的分析,归结为求解线性方程组RI=V,其中
31130
001000013359011000009311000000001079300009000305770500
0007473000000003041000
0005002720009000229R --⎛⎫ ⎪--- ⎪ ⎪-- ⎪--- ⎪ ⎪=--- ⎪
-- ⎪ ⎪- ⎪
-- ⎪ ⎪--⎝⎭
()15,27,23,0,20,12,7,7,10T
T V =----
(1)编制解n 阶线性方程组Ax =b 的列主元高斯消去法的通用程序;
(2)用所编程序线性方程组RI =V ,并打印出解向量,保留5位有效数字; (3)本题编程之中,你提高了哪些编程能力?
3.2程序
3.3运行结果
可看出,算得的该线性方程组的解向量为:
[-0.28923 0.34544 -0.71281 -0.22061 -0.4304 0.15431 -0.057823 0.20105 0.29023] 4.Chapter 4
4.1题目
(1)编制求第一型3次样条插值函数的通用程序;
(2)已知汽车门曲线型值点的数据如下:
端点条件为y010
S(i+0.5),i=0,1, (9)
4.2程序
4.3运行结果
5.Chapter 5
5.1题目
用Romberg求积法计算积分
∫
1
1+100x2
dx
1
−1的近似值,要求误差不超过0.5×10−7。
5.2程序
5.3运行结果
5.4结果分析
手动化简该定积分并最终求得的值为:0.294225534860747,误差限为:3.486×10−8,可见,程序完成了计算要求。
6.Chapter 6
6.1题目
常微分方程初值问题数值解
(1)编制RK4方法的通用程序;
(2)编制AB4方法的通用程序(由RK4提供初值);
(3)编制AB4-AM4预测校正方法通用程序(由RK4提供初值);
(4)编制带改进的AB4-AM4预测校正方法通用程序(由RK4提供初值);
(5)对于初值问题
{y ′=−x 2y 2y (0)=3
取步长h=0.1,应用(1)-(4)中的四种方法进行计算,并将计算结果和精确解y (x )=3/(1+x 3)作比较;
(6)通过本上机题,你能得到哪些结论?
6.2程序
6.3运行结果(1)RK4法
6.4结果分析
从每一种方法的计算误差可以看出,精度由高到低依次是:RK4法、改进的AB4-AM4法、AB4-AM4法、AB4法。