数值分析上机题课后作业全部-东南大学

合集下载

数值分析课后习题答案

数值分析课后习题答案

0 1
0 10 1 1 0 0 0 1
0 0 12 1 1 2 0 0 0

1 2
0 0 0 1 1 0
1 2

1 2


1 2
1
0 0 0 1 0

1 2

1 2


0
1 2

1 2
0
0
0
341 1 1
2-5.对矩阵A进行LDLT分解和GGT分解,并求解方程组
Ax=b,其中
16 4 8
1
A 4 5 4 , b 2
8 4 22
3

16 A 4
4 5
84
44 11
2-3(1).对矩阵A进行LU分解,并求解方程组Ax=b,其中
2 1 1 A1 3 2
4 ,b6
1 2 2
5

2 A 1
1 3
1 2


2 11
22
1
5 2
1

3 21来自,所以 A12
1
2 1 1



5 3
2-2(1).用列主元Gauss消元法解方程组
3 2 6x1 4 10 7 0x2 7 5 1 5x3 6

3 2 6 4 10 7 0 7 10 7 0 7

r1r2
消元

10 7 0 7 3 2 6 4 0 0.1 6 6.1
r=0.5101-n/3.162…<0.5101-n/3<0.01% 因此只需n=5.即取101/2=3.1623

数值分析报告上机题课后作业全部-东南大学

数值分析报告上机题课后作业全部-东南大学

实用标准文案文档大全上机作业题报告2015.1.9 USER1.Chapter 11.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程序1.3运行结果1.4结果分析按从大到小的顺序,有效位数分别为:6,4,3。

按从小到大的顺序,有效位数分别为:5,6,6。

可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。

当采用从大到小的顺序累加的算法时,误差限随着N 的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。

因此,采取从小到大的顺序累加得到的结果更加精确。

2.Chapter 22.1题目(1)给定初值0x 及容许误差ε,编制牛顿法解方程f(x)=0的通用程序。

(2)给定方程03)(3=-=x xx 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值。

东南大学数值分析上机题答案

东南大学数值分析上机题答案

东南⼤学数值分析上机题答案数值分析上机题第⼀章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)感想:通过本上机题,我明⽩了,从⼩到⼤计算数值的精确位数⽐较⾼⽽且与真值较为接近,⽽从⼤到⼩计算数值的精确位数⽐较低。

东南大学数值分析上机练习后三章

东南大学数值分析上机练习后三章

数值分析上机练习(以VC++6.0为操作平台)第四章(4.38)程序如下:#include<iostream.h>void main(void){float x[11];//存放数组x[j]float y[11];//存放数组y[j]float h[11];//存放数组h[j]float u[11];//存放数组u[j]float v[11];//存放数组v[j]float d[11];//存放数组d[j]float M[11];//存放数组M[j]float b[11];// 存放数组b[j]float t[11],l[11],yy[11],s[4],aa1,aa2,aa3,aa4;float s1[10];int i,j,n;float xx;cout<<"请输入n的值:\n";cin>>n;cout<<"输入数组x:\n";for(i=0;i<=n;i++)cin>>x[i];cout<<"输入数组y:\n";for(i=0;i<=n;i++)cin>>y[i];//输入端点值float df[2];cout<<"输入两个端点值:\n";for(i=0;i<2;i++)cin>>df[i];//求出h[j]的值for(j=0;j<=n-1;j++){h[j]=x[j+1]-x[j];cout<<'h'<<'['<<j<<']'<<'='<<h[j]<<'\t';}cout<<endl;//求出u[j]和v[j]的初值v[0]=1;u[n]=1;for(j=1;j<=n-1;j++){u[j]=h[j-1]/(h[j-1]+h[j]);v[j]=h[j]/(h[j-1]+h[j]);}//求出d[j]的值for(j=1;j<n;j++){d[j]=6*((y[j+1]-y[j])/h[j]-(y[j]-y[j-1])/h[j-1])/(h[j]+h[j-1]);} d[0]=6*((y[1]-y[0])/h[0]-df[0])/h[0];d[n]=6*(df[1]-(y[n]-y[n-1])/h[n-1])/h[n-1];for(j=1;j<=n;j++){cout<<'u'<<'['<<j<<']'<<'='<<u[j]<<'\t';}cout<<endl;for(j=0;j<n;j++){cout<<'v'<<'['<<j<<']'<<'='<<v[j]<<'\t';}cout<<endl;for(j=0;j<=n;j++){cout<<'d'<<'['<<j<<']'<<'='<<d[j]<<'\t';}cout<<endl;//利用书本上的追赶法求解方程组for(i=0;i<=n;i++){b[i]=2;}cout<<endl;t[0]=b[0];yy[0]=d[0];//消元过程for(i=1;i<=n;i++){l[i]=u[i]/t[i-1];t[i]=b[i]-l[i]*v[i-1];yy[i]=d[i]-l[i]*yy[i-1];}//回代过程M[n]=yy[n]/t[n];for(i=n-1;i>=0;i--){M[i]=(yy[i]-v[i]*M[i+1])/t[i];}//将M[j]的值输出for(i=0;i<=n;i++){cout<<'M'<<'['<<i<<']'<<'='<<M[i]<<endl;}//输出插值多项式的系数for(j=0;j<n;j++){s[0]=y[j];s[1]=(y[j+1]-y[j])/h[j]-(M[j]/3+M[j+1]/6)*h[j];s[2]=M[j]/2;s[3]=(M[j+1]-M[j])/(6*h[j]);cout<<"当x的值在区间"<<'x'<<'['<<j<<']'<<"到"<<'x'<<'['<<(j+1)<<']'<<"时,输出插值多项式的系数:\n";for(int k=0;k<4;k++){cout<<'s'<<'['<<k<<']'<<'='<<s[k]<<'\t';}cout<<endl;}}程序结果:详见附图4.38jpg编制的程序求车门的3次样条插值函数S(x):x属于区间[0,1]时;S(x)=2.51+0.8(x)-0.0014861(x)(x)-0.00851395(x)(x)(x)x属于区间[1,2]时;S(x)=3.3+0.771486(x-1)-0.027028(x-1)(x-1)-0.00445799(x-1)(x-1)(x-1) x属于区间[2,3]时;S(x)=4.04+0.704056(x-2)-0.0404019(x-2)(x-2)-0.0036543(x-2)(x-2)(x-2) x属于区间[3,4]时;S(x)=4.7+0.612289(x-3)-0.0513648(x-3)(x-3)-0.0409245(x-3)(x-3)(x-3) x属于区间[4,5]时;S(x)=5.22+0.386786(x-4)-0.174138(x-4)(x-4)+0.107352(x-4)(x-4)(x-4) x属于区间[5,6]时;S(x)=5.54+0.360567(x-5)+0.147919(x-5)(x-5)-0.268485(x-5)(x-5)(x-5) x属于区间[6,7]时;S(x)=5.78-0.149051(x-6)-0.657537(x-6)(x-6)+0.426588(x-6)(x-6)(x-6) x属于区间[7,8]时;S(x)=5.4-0.184361(x-7)+0.622227(x-7)(x-7)-0.267865(x-7)(x-7)(x-7)x属于区间[8,9]时;S(x)=5.57+0.256496(x-8)-0.181369(x-8)(x-8)+0.0548728(x-8)(x-8)(x-8) x属于区间[9,10]时;S(x)=5.7+0.058376(x-9)-0.0167508(x-9)(x-9)+0.0583752(x-9)(x-9)(x-9) S(0.5)=2.90856 S(1.5)=3.67843 S (2.5)=4.38147S(3.5)=4.98819 S(4.5)=5.38328 S(5.5)=5.7237S(6.5)=5.59441 S(7.5)=5.42989 S(8.5)=5.65976S(9.5)=5.7323第六章(6.21)程序如下:#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include<math.h>ofstream outfile("data.txt");//此处定义函数f(x,y)的表达式//用户可以自己设定所需要求得函数表达式double f1(double x,double y){double f1;f1=(-1)*x*x*y*y;return f1;}//此处定义求函数精确解的函数表达式double f2(double x){double f2;f2=3/(1+x*x*x);return f2;}//此处为精确求函数解的通用程序void accurate(double a,double b,double h){double x[100],accurate[100];x[0]=a;int i=0;outfile<<"输出函数准确值的程序结果:\n";do{x[i]=x[0]+i*h;accurate[i]=f2(x[i]);outfile<<"accurate["<<i<<"]="<<accurate[i]<<'\n';i++;}while(i<(b-a)/h+1);}//此处为经典Runge-Kutta公式的通用程序void RK4(double a,double b,double h,double c){int i=0;double k1,k2,k3,k4;double x[100],y[100];y[0]=c;x[0]=a;outfile<<"输出经典Runge-Kutta公式的程序结果:\n";do{x[i]=x[0]+i*h;k1=f1(x[i],y[i]);k2=f1((x[i]+h/2),(y[i]+h*k1/2));k3=f1((x[i]+h/2),(y[i]+h*k2/2));k4=f1((x[i]+h),(y[i]+h*k3));y[i+1]=y[i]+h*(k1+2*k2+2*k3+k4)/6;outfile<<"y"<<"["<<i<<"]="<<y[i]<<'\n';i++;}while(i<(b-a)/h+1);}void AB4(double a,double b,double h,double c){double x[100],y[100],y1[100];double k1,k2,k3,k4;y[0]=c;x[0]=a;outfile<<"输出4阶Adams显式方法的程序结果:\n";for(int i=0;i<=2;i++){x[i]=x[0]+i*h;k1=f1(x[i],y[i]);k2=f1((x[i]+h/2),(y[i]+h*k1/2));k3=f1((x[i]+h/2),(y[i]+h*k2/2));k4=f1((x[i]+h),(y[i]+h*k3));y[i+1]=y[i]+h*(k1+2*k2+2*k3+k4)/6;}int j=3;y1[0]=y[0];y1[1]=y[1];y1[2]=y[2];y1[3]=y[3];do{x[j]=x[0]+j*h;y1[j+1]=y1[j]+(55*f1(x[j],y1[j])-59*f1(x[j-1],y1[j-1])+37*f1(x[j-2], y1[j-2])-9*f1(x[j-3],y1[j-3]))*h/24;outfile<<"y1"<<"["<<j<<"]="<<y1[j]<<'\n';j++;}while(j<(b-a)/h+1);}//主函数void main(void){double a,b,h,c;cout<<"输入上下区间、步长和初始值:\n";cin>>a>>b>>h>>c;accurate(a,b,h);RK4(a,b,h,c);AB4(a,b,h,c);}程序结果:经典Runge-Kutta公式得出的结果列在下面的表格中,以及精确由AB4方法得出的结果为:y1[0]=3 y1[1]=2.997 y1[2]=2.97619 y1[3]=2.92113y1[4]=2.81839 y1[5]=2.66467y1[6]=2.4652 y1[7]=2.23308y1[8]=1.98495y1[9]=1.73704y1[10]=1.5021 y1[11]=1.28876y1[12]=1.10072y1[13]=0.93871y1[14]=0.801135 y1[15]=0.685335通过本上机题我明白了各种求微分方程的数值方法,经典Runge-Kutta公式,AB4方法以及AB4-AM4预测校正方法求解公式的精度是不同的。

东南大学出版社第二版《数值分析》上机作业答案(前三章)

东南大学出版社第二版《数值分析》上机作业答案(前三章)

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

数值分析上机题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

东南大学数值分析--精选上机作业汇总--精选.doc

东南大学数值分析--精选上机作业汇总--精选.doc
显然,迭代格式初值的选择对于迭代的收敛速度是至关重要的,当初值接近真实值的时候,迭代次数减少。
在x0∈(-1,
)区间,取以下初值,分别调用
newton.m函数文件,得到
结果如下:
X0
X1
迭代次数
-0.95
1.732051
9
-0.85
1.732051
6
-0.80
1.732051
10
-0.78
1.732051
0.0000005
由newton1.m的运行过程表明,在整个区间上均收敛于0,即根x*2。
在x0∈(,1)区间,取以下初值,分别调用newton.m函数文件,得到结果如下:
X0
X1
迭代次数
0.80
-1.732051
10
0.90
-1.732051
7
0.95
-1.732051
9
0.98
-1.732051
15
计算结果显示,迭代序列局部收敛于1.730251,即根x3*。
在x0∈(

)区间,取以下初值,分别调用
newton.m函数文件,得到
结果如下:
X0
X1
迭代次数
-0.70
0.000000
5
-0பைடு நூலகம்20
0.000000
3
-0.05
0.000000
3
4
0.05
0.20
0.70
0.0000003
0.0000003
1
32
1
N2
1
(2)编制按从大到小的顺序
SN
1
1
1
,计算SN的通用

东南大学数值分析上机

东南大学数值分析上机

第一章一、题目设∑=-=Nj N j S 2211,其精确值为)11123(21+--N N 。

(1)编制按从大到小的顺序11131121222-+⋯⋯+-+-=N S N ,计算SN 的通用程序。

(2)编制按从小到大的顺序1211)1(111222-+⋯⋯+--+-=N N S N ,计算SN 的通用程序。

(3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。

(编制程序时用单精度) (4)通过本次上机题,你明白了什么? 二、MATLAB 程序N=input('请输入N(N>1):');AccurateValue=single((0-1/(N+1)-1/N+3/2)/2); %single 使其为单精度 Sn1=single(0); %从小到大的顺序 for a=2:N; Sn1=Sn1+1/(a^2-1); endSn2=single(0); %从大到小的顺序 for a=2:N; Sn2=Sn2+1/((N-a+2)^2-1); endfprintf('Sn 的值 (N=%d)\n',N);disp('____________________________________________________') fprintf('精确值 %f\n',AccurateValue); fprintf('从大到小计算的结果 %f\n',Sn1); fprintf('从小到大计算的结果 %f\n',Sn2);disp('____________________________________________________')三、结果请输入N(N>1):100Sn的值(N=100)____________________________________________________精确值0.740049从大到小计算的结果0.740049从小到大计算的结果0.740050____________________________________________________请输入N(N>1):10000Sn的值(N=10000)____________________________________________________精确值0.749900从大到小计算的结果0.749852从小到大计算的结果0.749900____________________________________________________请输入N(N>1):1000000Sn的值(N=1000000)____________________________________________________精确值0.749999从大到小计算的结果0.749852从小到大计算的结果0.749999____________________________________________________四、结果分析可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。

数值分析习题答案_东南大学研究生课程

数值分析习题答案_东南大学研究生课程

f ( x) = 1 − x ,求 f ( x1 ) 的绝对误差限和相对误差限。
解: x1 = 0.937
e( x1 ) ≤
1 × 10 − 3 2
1 × 10 − 3 e( x1 ) 2 = 0.534 × 10 − 3 er ( x1 ) = ≤ 0.937 x1
f ( x ) = 1 − x , f ′( x) = e( f ) ≈ f ′( x )e( x ) = −
1 1 1 1 1 ⋅ e( x1 ) ≤ × × × 10 − 3 2 1 − x1 2 1 − 0.937 2
er ( f ( x1 )) ≈
= 0.00397 = 3.97 × 10 −3 5. 取
2.01 ≈ 1.42 ,
2.00 ≈ 1.41 试 按 A = 2.01 − 2.00 和
A = 0.01 ( 2.01 + 2.00 ) 两种算法求 A 的值,并分别求出两种算法所
1 er ( R) ≤ × 10 − 2 3
7.有一圆柱,高为 25.00 cm,半径为 20.00 ± 0.05 cm。试求按所给数据计
算这个圆柱的体积和圆柱的侧面积所产生的相对误差限。 解:1) V ( R ) = πR 2 h
er (V ) ≈ V ′( R ) ⋅ R R er ( R ) = 2πhR ⋅ 2 er ( R ) = 2er ( R ) V πR h
(3) x1 = 2.747 e( x1 ) ≤
x2 = 6.83
x1 x2 = 18.76201,
1 1 × 10 − 3 , e( x2 ) ≤ × 10 − 2 2 2
e( x1 x2 ) ≈ x2 e( x1 ) + x1e( x2 ) ≤ x2 e( x1 ) + x1 e( x2 )

(完整版)数值分析课后习题答案

(完整版)数值分析课后习题答案

第一章绪论习题一1.设x>0,x*的相对误差为δ,求f(x)=ln x的误差限。

解:求lnx的误差极限就是求f(x)=lnx的误差限,由公式(1.2.4)有已知x*的相对误差满足,而,故即2.下列各数都是经过四舍五入得到的近似值,试指出它们有几位有效数字,并给出其误差限与相对误差限。

解:直接根据定义和式(1.2.2)(1.2.3)则得有5位有效数字,其误差限,相对误差限有2位有效数字,有5位有效数字,3.下列公式如何才比较准确?(1)(2)解:要使计算较准确,主要是避免两相近数相减,故应变换所给公式。

(1)(2)4.近似数x*=0.0310,是 3 位有数数字。

5.计算取,利用:式计算误差最小。

四个选项:第二、三章插值与函数逼近习题二、三1. 给定的数值表用线性插值与二次插值计算ln0.54的近似值并估计误差限. 解:仍可使用n=1及n=2的Lagrange插值或Newton插值,并应用误差估计(5.8)。

线性插值时,用0.5及0.6两点,用Newton插值误差限,因,故二次插值时,用0.5,0.6,0.7三点,作二次Newton插值误差限,故2. 在-4≤x≤4上给出的等距节点函数表,若用二次插值法求的近似值,要使误差不超过,函数表的步长h 应取多少?解:用误差估计式(5.8),令因得3. 若,求和.解:由均差与导数关系于是4. 若互异,求的值,这里p≤n+1.解:,由均差对称性可知当有而当P=n+1时于是得5. 求证.解:解:只要按差分定义直接展开得6. 已知的函数表求出三次Newton均差插值多项式,计算f(0.23)的近似值并用均差的余项表达式估计误差.解:根据给定函数表构造均差表由式(5.14)当n=3时得Newton均差插值多项式N3(x)=1.0067x+0.08367x(x-0.2)+0.17400x(x-0.2)(x-0.3) 由此可得f(0.23) N3(0.23)=0.23203由余项表达式(5.15)可得由于7. 给定f(x)=cosx的函数表用Newton等距插值公式计算cos 0.048及cos 0.566的近似值并估计误差解:先构造差分表计算,用n=4得Newton前插公式误差估计由公式(5.17)得其中计算时用Newton后插公式(5.18)误差估计由公式(5.19)得这里仍为0.5658.求一个次数不高于四次的多项式p(x),使它满足解:这种题目可以有很多方法去做,但应以简单为宜。

数值分析习题答案 东南大学研究生课程

数值分析习题答案 东南大学研究生课程

(3) x3* = 23.4213
x3 = 23.4604
x3* − x3
=
23.4213 − 23.4604
= 23.4604 − 23.4213 = 0.0391 ≤ 1 ×10−1 2
x3 具有 3 位有效数字, x3 → 23.4 (不能写为 23.5)
(4)
x4*
=
1 3
, x4 = 0.3333
e( x1 )
+
e(x2 )

e( x1 )
+
e(x2 )

1 2
× 10 − 4
+
1 2
× 10 − 3
=0.00055
x1* + x2* ∈[1.0532 − 0.00055,1.0532+0.00055]=[1.05265,1.05375]
(2) x1 =23.46, x2 = − 12.753
x7* = 0.96 ×10−3 x7* − x7 = 0
x7 精确
(8) x8* = −8700 x8 = −8700.3
x8* − x8
= 0.3 ≤ 1 ×100 2
x8 具有 4 位有效数字, x8 = −8700 精确
2.以下各数均为有效数字:
(1) 0.1062 + 0.947;
(2)23.46―12.753;
(5) x5* =23.496,
x5 =23.494;
(6) x6* =96×105 , (7) x7* =0.000 96,
x6 =96.1×105 ; x7 =0.96×10−3 ;
(8) x8* =-8 700,
x8 =-8 700.3。

东南大学出版社孙志忠版《数值分析》习题答案

东南大学出版社孙志忠版《数值分析》习题答案
* (5) x5 = 23.496, x5 = 23.494
1 2
1 * x5 − x5 = 23.496 − 23.494 = 0.002 < × 10 − 2 2
x5 具有 4 位有效数字, x5 → 23.50 (不能写为 23.49) x6 = 96.1 × 10 5 = 0.961 × 10 7
e( A1 ) 10 −2 =1 er ( A1 ) = ≤ 0.01 A1
不能肯定所得结果具有一位有效数字。
2 ) A* = 0.01 ( 2.01 + 2.00 ) ,
A2 = 0.01 (1.42 + 1.41) = 0.01 2.83 = 0.00353356 Λ
e( A2 ) = e(0.01
(2)23.46―12.753; (4)1.473 / 0.064 。
问经过上述运算后,准确结果所在的最小区间分别是什么? 解:(1) x1 =0.1062, x2 =0.947, x1 + x2 =1.0532
e( x1 ) ≤
1 1 × 10 − 4 , e( x2 ) ≤ × 10 − 3 2 2 1 1 × 10 − 4 + × 10 − 3 2 2
习题 1
1. 以下各表示的近似数,问具有几位有效数字?并将它舍入成有效数。
(1) x1 =451.023, (2) x 2 =-0.045 113, (3) x3 =23.421 3, (4) x 4 = , (5) x5 =23.496, (6) x6 =96×10 5 , (7) x7 =0.000 96, (8) x8 =-8 700, 解:(1) x1 = 451.023
e( A2 ) 0.12486 × 10 −4 = 0.3533547 × 10 − 2 er ( A2 ) = ≤ 0.00353356 A2

《数值分析报告》习题解答1东南大学

《数值分析报告》习题解答1东南大学

习题11. 以下各表示的近似数,问具有几位有效数字?并将它舍入成有效数。

(1)*1x =451., 1x =451.01; (2)*2x =-0. 113, 2x =-0. 18; (3)*3x =23.421 3, 3x =23.460 4;(4)*4x =31,4x =0.333 3;(5)*5x =23.496, 5x =23.494; (6)*6x =96×510, 6x =96.1×510; (7)*7x =0.000 96, 7x =0.96×310-; (8)*8x =-8 700, 8x =-8 700.3。

解:(1) =*1x 451. =1x 451.01=-1*1x x 0.01311021-⨯≤,1x 具有4位有效数字。

→1x 451.0(2) -=*2x 0. 113 -=2x 0. 18=-<⨯-2*241021x x 0. 18045113.0-=0.000 06731021-⨯<2x 具有2位有效数字,045.02-→x(3)=*3x 23.4213 =3x 23.4604=-3*3x x =-4604.234213.23=-4213.234604.23110210391.0-⨯≤3x 具有3位有效数字,4.233→x (不能写为23.5)(4) =*4x 31,=4x 0.3333=-4*4x x 41021000033.0-⨯<Λ ,4x 具有4位有效数字,=4x 0.3333(5) =*5x 23.496,=5x 23.494=-5*5x x =-494.23496.2321021002.0-⨯<5x 具有4位有效数字, →5x 23.50 (不能写为23.49)(6) =*6x 51096⨯71096.0⨯= =6x 5101.96⨯710961.0⨯==-6*6x x 710001.0-⨯72101021--⨯⨯≤6x 具有2位有效数字,57610961096.0⨯=⨯=x(7) =*7x 0.00096 371096.0-⨯=x 3*71096.0-⨯=x =-7*7x x 0 7x 精确 (8) 8700*8-=x 8x 3.8700-=8*8x x -010213.0⨯≤= 8x 具有4位有效数字,8x 8700-=精确 2.以下各数均为有效数字: (1) 0.1062 + 0.947; (3)2.747⨯6.83;(2)23.46―12.753; (4)1.473 / 0.064 。

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

2015.1.9
上机作业题报告
USER
1.Chapter 1
1.1题目
设S N =∑1
j 2−1
N j=2
,其精确值为
)1
1123(21+--N N 。

(1)编制按从大到小的顺序1
1
1311212
22-+⋯⋯+-+-=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法。

相关文档
最新文档