文档库 最新最全的文档下载
当前位置:文档库 › 数值分析

数值分析

数值分析
数值分析

华北科技学院上机报告

系(部)基础部

专业、班级

姓名邓学号

课程名称数值分析

上机题目数值积分,解方程组

任课教师

指导教师

成绩(优、良、中、及格、不及格)

华北科技学院基础部

实验四 数值积分

1.目的与要求:

1) 通过实际计算体会各种方法的精确度; 2) 会编写用龙贝格算法求定积分的程序。

1.编写复化柯特斯求积公式的程序,并用复化辛卜生法计算积分 I=dx x

x 1

sin 。观察n 为多

少时与6位有效数字。

程序如下: #include "stdafx.h" #include #include #include void main() { int i,n=2; float s; float f(float);

//float Simpson(float(*)(float),float,float,int); float Cotes(float(*)(float),float,float,int); for(i=0;i<=2;i++) { //s=Simpson(f,0,1,n); s=Cotes(f,0,1,n);

printf("s(%d)=%10f\n",n,s); n*=2;

}

getch();

}

/*

float Simpson(float (*f)(float),float a,float b, int n) { int k;

float s,s1,s2=0.0; float h=(b-a)/n; s1=f(a+h/2); for(k=1;k<=n-1;k++) { s1+=f(a+k*h+h/2); s2+=f(a+k*h);

}

s=h/6*(f(a)+4*s1+2*s2+f(b));

return s; }*/

float Cotes(float (*f)(float),float a,float b,int n) { int k;

float t,s1,s2,s3,s4=0.0; float h=(b-a)/n; s1=f(a+h/4); s2=f(a+h/2); s3=f(a+3*h/4);

for(k=1;k<=n-1;k++) { s1+=f(a+k*h+h/4); s2+=f(a+k*h+h/2);

s3+=f(a+k*h+3*h/4);

s4+=f(a+k*h); }

t=h/90*(7*f(a)+32*s1+12*s2+32*s3+14*s4+7*f(b)); return t;

}

float f(float x) { if(x==0) return 1; else return sin(x)/x; }

结果:

运行了三次,当n=22=4时,就与n=1

2=2时有6位数字相同,所以说n 为2时有6位有效数字。

2.用龙贝格方法上机计算: 2

0.80

1)x dx e

-

?

#include "stdafx.h"

#include

#include

#include

float f(float x)

{

return exp(-x*x);

}

float Romberg(float a,float b,float (*f)(float),float epsilon)

{

int n=1,k;

float h=b-a,x,temp;

float T1,T2,S1,S2,C1,C2,R1,R2;

T1=(b-a)/2*((*f)(a)+(*f)(b));

while(1)

{

temp=0;

for(k=0;k<=n-1;k++)

{

x=a+k*h+h/2;

temp+=(*f)(x);

}

T2=(T1+temp*h)/2;

if(fabs(T2-T1)

return T2;

S2=T2+(T2-T1)/3.0;

if(n==1){T1=T2;S1=S2;h/=2;n*=2;continue;}

C2=S2+(S2-S1)/15;

if(n==2){C1=C2;T1=T2;S1=S2;h/=2;n*=2;continue;}

R2=C2+(C2-C1)/63;

if(n==4){R1=R2;C1=C2;T1=T2;S1=S2;h/=2;n*=2;continue;}

if(fabs(R2-R1)

return R2;

R1=R2;C1=C2;T1=T2;S1=S2;h/=2;n*=2;

}

}

void main()

{

float epsilon=5E-6;

printf("R=%f\n",Romberg(0,0.8,f,epsilon));

}

实验五 解线性方程组的直接法

1.目的与要求:

1)熟悉求解线性方程组的有关理论和方法;

2)会编制列主元消去法、LU 分解法、雅可比及高斯-塞德尔迭代法的程序; 3)通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。

1. 用列主元消去法解方程组:

1241234123412343421

1)333234

x x x x x x x x x x x x x x x ++=??

+-+=??

--+=-??-

++-=?

程序如下:

#include "stdafx.h" #include "conio.h" #include "malloc.h" #include "math.h" void main() { int i;

float *x;

float c[4][5]={1,1,0,3,4,2,1,-1,1,1,3,-1,-1,3,-3,-1,2,3,-1,4}; float *ColPivot(float *,int); x=ColPivot(c[0],4);

for(i=0;i<=3;i++) printf("x[%d]=%f\n",i,x[i]);

}

float *ColPivot(float *c,int n) {int i,j,t,k; float *x,p;

x=(float *)malloc(n*sizeof(float)); for(i=0;i<=n-2;i++)

{k=i;

for(j=i+1;j<=n-1;j++) if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i)))) k=j; if(k!=i)

for(j=i;j<=n;j++) {p=*(c+i*(n+1)+j);

*(c+i*(n+1)+j)=*(c+k*(n+1)+j);

*(c+k*(n+1)+j)=p;

}

for(j=i+1;j<=n-1;j++) { p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));

for(t=i;t<=n;t++) *(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));

}

}

for(i=n-1;i>=0;i--) { for(j=n-1;j>=i+1;j--) (*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j)); x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));

} return x; }

结果:

2. 用LU 分解法解方程组AX=b,其中 48240124242412124

,0620226

6

2

162A b --????

????-?

???==????-????--????

#include "stdafx.h"

#include"stdio.h"

#include"math.h"

#include"conio.h"

#include"malloc.h"

void main()

{

float *x;

int i;

float a[4][5]={48,-24,0,-12,4,-24,24,12,12,4,

0,6,20,2,-2,-6,6,2,16,-2};

float *DirectLU(float *,int);

x=DirectLU((float *)a,4);

for(i=0;i<=3;i++) printf("x[%d]=%f\n",i,x[i]);

}

float *DirectLU(float *u,int n)

{

int i,r,k;

float *x;

x=(float*)malloc(n*sizeof(float));

for(r=0;r<=n-1;r++)

{

for(i=r;i<=n;i++)

for(k=0;k<=r-1;k++)

*(u+i*(n+1)+i)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+i));

for(i=r+1;i<=n-1;i++)

{

for(k=0;k<=r-1;k++)

*(u+i*(n+1)+r)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+r));

*(u+i*(n+1)+r)/=*(u+r*(n+1)+r);

}

}

for(i=n-1;i>=0;i--)

{

for(r=n-1;r>=i+1;r--)

*(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r];

x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i));

}

return x;

}

3. 编写用改进的平方根法解方程组AX=b的程序,并解下列方程组:

1)

0.50.50000

0.5 1.50.50.250.250

00.5 1.50.250.250

00.250.25 1.50.50

00.250.250.5 1.50.5

00000.50.5

A

??

??

??

??

=??

??

??

??

??

-

---

--

--

---

-

,

1

b

-??

??

??

??

=??

??

??

??

??

#include "stdafx.h"

#include"stdio.h"

#include"math.h"

#include"conio.h"

#include"malloc.h"

void main()

{

float *x;

int i;

float a[6][7]={{0.5,-0.5,0,0,0,0,-1},

{-0.5,1.5,-0.5,-0.25,0.25,0,0},

{0,-0.5,1.5,0.25,-0.25,0,0},

{0,-0.25,0.25,1.5,-0.5,0,0},

{0,0.25,-0.25,-0.5,1.5,-0.5,0},

{0,0,0,0,-0.5,0.5,0}};

float *Direct(float *,int);

x=Direct((float *)a,6);

for(i=0;i<=5;i++) printf("x[%d]=%f\n",i,x[i]); }

float *Direct(float *u,int n)

{

int i,j,k;

float *x,*t,m[6][7];

x=(float*)malloc(n*sizeof(float));

t=(float*)malloc(n*sizeof(float));

for(i=0;i<=n-1;i++)

for(j=0;j<=n-1;j++)

m[i][j]=*(u+j*(n+1)+i);

for(i=0;i<=n-1;i++)

{

for(j=0;j<=i-1;j++)

for(k=0;k<=j-1;k++)

m[i][j]-=m[i][k]*(*(u+k*(n+1)+j));

for(j=0;j<=i-1;j++)

{

for(k=0;k<=j-1;k++)

*(u+j*(n+1)+i)-=m[i][k]*(*(u+k*(n+1)+j));

*(u+j*(n+1)+i)/=*(u+j*(n+1)+j);

}

for(k=0;k<=i-1;k++)

*(u+i*(n+1)+i)-=m[i][k]*(*(u+k*(n+1)+i));

}

t[0]=*(u+n);

for(i=1;i<=n-1;i++)

{

t[i]=*(u+i*(n+1)+n);

for(k=0;k<=i-1;k++)

t[i]-=*(u+k*(n+1)+i)*t[k];

};

x[n-1]=t[n-1]/(*(u+(n-1)*(n+1)+n-1));

for(i=n-2;i>=0;i--)

{

x[i]=t[i]/(*(u+i*(n+1)+i));

for(k=i+1;k<=n-1;k++)

x[i]-=*(u+i*(n+1)+k)*x[k];

};

return x;

}

4.编写用追赶法解三对角线性方程组的程序,并解下列方程组: 121232343425212

1)21121

x x x x x x x x x x -=??

-+-=-??

-+-=??

-+=-?

#include "stdafx.h" #include"stdio.h" #include"math.h" #include"conio.h" #include"malloc.h"

void main() { float *x;

int i;

float a[4][5]={{2,-1,0,0,5}, {-1,2,-1,0,-12}, {0,-1,2,-1,11},

{0,0,-1,2,-1}};

float *zhuigan(float *,int);

x=zhuigan((float *)a,4);

for(i=0;i<=3;i++) printf("x[%d]=%f\n",i,x[i]);

}

float *zhuigan(float *u,int n) { int i,j;

float *x,*y;

float t[4][4],m[4][4];

x=(float*)malloc(n*sizeof(float)); y=(float*)malloc(n*sizeof(float)); t[0][0]=*u;

m[0][1]=*(u+1)/t[0][0]; for(i=1;i<=n-2;i++) { t[i][i]=*(u+i*(n+1)+i)-*(u+i*(n+1)+i-1)*m[i-1][i];

m[i][i+1]=*(u+i*(n+1)+i+1)/t[i][i];

};

t[n-1][n-1]=*(u+(n-1)*(n+1)+n-1)-*(u+(n-1)*(n+1)+n-2)*m[n-2][n-1];

for(i=0;i<=n-2;i++)

t[i+1][i]=*(u+(i+1)*(n+1)+i);

for(i=0;i<=n-1;i++)

m[i][i]=1;

y[0]=(*u+n)/(*u);

for(i=1;i<=n-1;i++)

y[i]=(*(u+i*(n+1)+n)-*(u+i*(n+1)+i-1)*y[i-1])/(*(u+i*(n+1)+i)-*(u+i*(n+1)+i-1)*m[i-1][i]);

x[n-1]=y[n-1];

for(j=n-2;j>=0;j--)

x[j]=y[j]-m[j][j+1]*x[j+1];

return x;

}

数值计算方法学习心得

数值计算方法学习心得 ------一个代码的方法是很重要,一个算法的思想也很重要,但 在我看来,更重要的是解决问题的方法,就像爱因斯坦说的内容比 思维本身更重要。 我上去讲的那次其实做了挺充分的准备,程序的运行,pdf文档,算法公式的推导,程序伪代码,不过有一点缺陷的地方,很多细节 没有讲的很清楚吧,下来之后也是更清楚了这个问题。 然后一学期下来,总的来说,看其他同学的分享,我也学习到 许多东西,并非只是代码的方法,更多的是章胜同学的口才,攀忠 的排版,小冯的深入挖掘…都是对我而言比算法更加值得珍惜的东西,又骄傲地回想一下,曾同为一个项目组的我们也更加感到做项 目对自己发展的巨大帮助了。 同时从这些次的实验中我发现以前学到的很多知识都非常有用。 比如说,以前做项目的时候,项目导师一直要求对于要上传的 文件尽量用pdf格式,不管是ppt还是文档,这便算是对产权的一种 保护。 再比如代码分享,最基础的要求便是——其他人拿到你的代码 也能运行出来,其次是代码分享的规范性,像我们可以用轻量级Ubuntu Pastebin,以前做过一小段时间acm,集训队里对于代码的分享都是推荐用这个,像数值计算实验我觉得用这个也差不多了,其 次项目级代码还是推荐github(被微软收购了),它的又是可能更 多在于个人代码平台的搭建,当然像readme文档及必要的一些数据 集放在上面都更方便一些。

然后在实验中,发现debug能力的重要性,对于代码错误点的 正确分析,以及一些与他人交流的“正规”途径,讨论算法可能出 错的地方以及要注意的细节等,比如acm比赛都是以三人为一小组,讨论过后,讲了一遍会发现自己对算法理解更加深刻。 然后学习算法,做项目做算法一般的正常流程是看论文,尽量 看英文文献,一般就是第一手资料,然后根据论文对算法的描述, 就是如同课上的流程一样,对算法进一步理解,然后进行复现,最 后就是尝试自己改进。比如知网查询牛顿法相关论文,会找到大量 可以参考的文献。 最后的最后,想说一下,计算机专业的同学看这个数值分析, 不一定行云流水,但肯定不至于看不懂写不出来,所以我们还是要 提高自己的核心竞争力,就是利用我们的优势,对于这种算法方面 的编程,至少比他们用的更加熟练,至少面对一个问题,我们能思 考出对应问题的最佳算法是哪一个更合适解决问题。 附记: 对课程的一些小建议: 1. debug的能力不容忽视,比如给一个关于代码实现已知错误的代码给同学们,让同学们自己思考一下,然后分享各自的debug方法,一步一步的去修改代码,最后集全班的力量完成代码的debug,这往往更能提升同学们的代码能力。 2. 课堂上的效率其实是有点低的,可能会给学生带来一些负反馈,降低学习热情。 3. 总的来说还是从这门课程中学到许多东西。 数值分析学习心得体会

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

北京大学数值分析试题2015 经过订正

北京大学2014--2015学年第一学期 研究生期末考试试题A (闭卷考试) 课程名称:数值分析 注:计算题取小数点后四位 一、填空题(每空3分,共24分) (1) 设1 2A ?-=-?? ,则A 的奇异值为 。 (2) 设0.00013753x =为真值0.00013759T x =的近似值,则x 有 位有效数字。 (3) 设数据123,,x x x 的绝对误差为0.002,那么123x x x -+的绝对误差约为 ____ _。 (4) )x (l ,),x (l ),x (l n 10是以01,, ,,(2)n x x x n ≥为节点的拉格朗日插值基函数, 则 20 (2)()n k k k x l x =+=∑ 。 (5) 插值型求积公式 2 2 =≈∑? ()()n k k k x f x dx A f x 的求积系数之和0 n k k A ==∑ 。 其中2x 为权函数,1≥n 。 (6)已知(3,4),(0,1)T T x y ==,求Householder 阵H 使Hx ky =,其中k R ∈。 H= 。 (7) 数值求积公式 1 1 2()((0)3f x dx f f f -?? ≈ ++???? ? 的代数精度为___。 (8) 下面Matlab 程序所求解的数学问题是 。 (输入向量x , 输出S ) x =input('输入x :x ='); n=length(x ); S=x (1); for i=2:n if x (i)

数值分析心得体会

数值分析心得体会 篇一:学习数值分析的经验 数值分析实验的经验、感受、收获、建议班级:计算131 学号:XX014302 姓名:曾欢欢 数值分析实验主要就是学习MATLAB的使用以及对数值分析类容的应用,可以使学生更加理解和记忆数值分析学得类容,也巩固了MATLAB的学习,有利于以后这个软件我们的使用。在做实验中,我们需要具备较好的编程能力、明白MATLAB软件的使用以及掌握数值分析的思想,才能让我们独立自主的完成该作业,如果是上述能力有限的同学,需要借助MATLAB的书以及网络来完成实验。数值分析实验对于我来说还是有一定难度,所以我课下先复习了MATLAB的使用方法以及编写程序的基本类容,借助互联网和同学老师资源完成了数值分析得实验的内容。在实验书写中,我复习了各种知识,所以我认为这门课程是有必要且是有用处的,特别是需要处理大量实验数据的人员,很有必要深入了解学习它,这样在以后的工作学习里面就减少了很多计算问题也提高了实验结果的精确度。 学习数值分析的经验、感受、收获、建议数值分析的内容包括插值与逼近,数值微分与数值积分,非线性方程与线性方程组的数值解法,矩阵的特征值与特征向量计算,常微分方程数值解等。

首先我们必须明白数值分析的用途。通常所学的其他数学类学科都是由公式定理开始,从研究他们的定义,性质再到证明与应用。但实际上,尤其是工程,物理,化学等其它具体的学科。往往我们拿到 手的只是通过实验得到的数据。如果是验证性试验,需要代回到公式 进行分析,验证。但往往更多面对的是研究性或试探性试验,无具体 公式定理可代。那就必须通过插值,拟合等计算方法进行数据处理以得到一个相对可用的一般公式。还有许多计算公式理论上非常复杂,在工程中不实用,所以必须根据实际情况把它转化成多项式近似表 示。学习数值分析,不应盲目记公式,因为公事通常很长且很乏味。其次,应从公式所面临的问题以及用途出发。比如插值方法,就 是就是把实验所得的数据看成是公式的解,由这些解反推出一个近似公式,可以具有局部一般性。再比如说拟合,在插值的基础上考虑实 验误差,通过拟合能将误差尽可能缩小,之后目的也是得到一个具有 一定条件下的一般性的公式。。建议学习本门课程要结合知识与实际,比如在物理实验里面很多

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

东南大学 数值分析 考试要求

第一章绪论 误差的基本概念:了解误差的来源,理解绝对误差、相对误差和有效数的概念,熟练掌握数据误差对函数值影响的估计式。 机器数系:了解数的浮点表示法和机器数系的运算规则。 数值稳定性:理解算法数值稳定性的概念,掌握分析简单算例数值稳定性的方法,了解病态问题的定义,学习使用秦九韶算法。 第二章非线性方程解法 简单迭代法:熟练掌握迭代格式、几何表示以及收敛定理的内容,理解迭代格式收敛的定义、局部收敛的定义和局部收敛定理的内容。 牛顿迭代法:熟练掌握Newton迭代格式及其应用,掌握局部收敛性的证明和大范围收敛定理的内容,了解Newton法的变形和重根的处理方法。 第三章线性方程组数值解法 (1)Guass消去法:会应用高斯消去法和列主元Guass消去法求解线性方程组,掌握求解三对角方程组的追赶法。 (2)方程组的性态及条件数:理解向量范数和矩阵范数的定义、性质,会计算三种常用范数,掌握谱半径与2- 范数的关系,会计算条件数,掌握实用误差分析法。 (3)迭代法:熟练掌握Jacobi迭代法、Guass-Seidel迭代法及SOR方法,能够判断迭代格式的收敛性。 (4)幂法:掌握求矩阵按模最大和按模最小特征值的幂法。 第四章插值与逼近 (1)Lagrange插值:熟练掌握插值条件、Lagrange插值多项式的表达形式和插值余项。(2)Newton插值:理解差商的定义、性质,会应用差商表计算差商,熟练掌握Newton插值多项式的表达形式,了解Newton型插值余项的表达式。 (3)Hermite插值:掌握Newton型Hermite插值多项式的求法。 (4)高次插值的缺点和分段低次插值:了解高次插值的缺点和Runge现象,掌握分段线性插值的表达形式及误差分析过程。 (5)三次样条插值:理解三次样条插值的求解思路,会计算第一、二类边界条件下的三次样条插值函数,了解收敛定理的内容。 (6)最佳一致逼近:掌握赋范线性空间的定义和连续函数的范数,理解最佳一致逼近多项式的概念和特征定理,掌握最佳一致逼近多项式的求法。 (7)最佳平方逼近:理解内积空间的概念,掌握求离散数据的最佳平方逼近的方法,会求超定方程组的最小二乘解,掌握连续函数的最佳平方逼近的求法。

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

华南理工大学数值分析试题-14年下-C

华南理工大学研究生课程考试 《数值分析》试卷C (2015年1月9日) 1. 考前请将密封线内各项信息填写清楚; 所有答案请按要求填写在本试卷上; 课程代码:S0003004; 4. 考试形式:闭卷; 5. 考生类别:硕士研究生; 本试卷共八大题,满分100分,考试时间为150分钟。 一、(12分)解答下列问题: 1)设近似值0x >,x 的相对误差为δ,试证明ln x 的绝对误差近似为δ。 2)利用秦九韶算法求多项式 542()681p x x x x x =-+-+ 在3x =时的值(须写出计算形式),并统计乘法次数。 (12分)解答下列问题: 1)设()235f x x =+,求[]0,1,2f 和[]0,1,2,3f 。 2)利用插值方法推导出恒等式: 33220,0[]j j i i x j i x i j =≠=-=-∑∏ 。

(1)设{}∞ =0)(k k x q 是区间[]1,0上带权1=ρ而最高次项系数为1的正交多项式族,其中1)(0=x q ,求1()q x 和2()q x 。 (2)求形如2y a bx =+的经验公式,使它与下列数据拟合: 四、(14分)对积分()10I f x dx = ?,试 (1)构造一个以012113,,424 x x x ===为节点的插值型求积公式; (2)指出所构造公式的代数精度; (3)用所得数值求积公式计算积分1 203x dx ?的精确值; (4)指出所得公式与一般的Newton-Cotes 型公式在形式上的重要区别。

(1)设?? ????=4321A ,计算1A 、()Cond A ∞和()A ρ。 (2)用列主元Gauss 消去法解方程组: 12312315410030.112x x x ????????????=????????????-?????? 六、(13分)对2阶线性方程组 11112212112222 a x a x b a x a x b +=??+=? (11220a a ≠ ) (1)证明求解此方程组的Jacobi 迭代与Gauss-Seidel 迭代同时收敛或同时发散; (2)当同时收敛时,试比较它们的收敛速度。

数值分析 第一章 学习小结

数值分析 第1章绪论 --------学习小结 一、本章学习体会 通过本章的学习,让我初窥数学的又一个新领域。数值分析这门课,与我之前所学联系紧密,区别却也很大。在本章中,我学到的是对数据误差计算,对误差的分析,以及关于向量和矩阵的范数的相关内容。 误差的计算方法很多,对于不同的数据需要使用不同的方法,或直接计算,或用泰勒公式。而对于二元函数的误差计算亦有其独自的方法。无论是什么方法,其目的都是为了能够通过误差的计算,发现有效数字、计算方法等对误差的影响。 而对误差的分析,则是通过对大量数据进行分析,从而选择出相对适合的算法,尽可能减少误差。如果能够找到一个好的算法,不仅能够减少计算误差,同时也可以减少计算次数,提高计算效率。 对于向量和矩阵的范数,我是第一次接触,而且其概念略微抽象。因此学起来较为吃力,仅仅知道它是向量与矩阵“大小”的度量。故对这部分内容的困惑也相对较多。 本章的困惑主要有两方面。一方面是如何能够寻找一个可靠而高效的算法。虽然知道算法选择的原则,但对于很多未接触的问题,真正寻找一个好的算法还是很困难。另一方面困惑来源于范数,不明白范数的意义和用途究竟算什么。希望通过以后的学习能够渐渐解开自己的疑惑。 二、本章知识梳理

2.1 数值分析的研究对象 数值分析是计算数学的一个重要分支,研究各种数学问题的数值解法,包括方法的构造和求解过程的理论分析。它致力于研究如何用数值计算的方法求解各种基本数学问题以及在求解过程中出现的收敛性,数值稳定性和误差估计等内容。 2.2误差知识与算法知识 2.2.1误差来源 误差按来源分为模型误差、观测误差、截断误差、舍入误差与传播误差五种。其中模型误差与观测误差属于建模过程中产生的误差,而截断误差、舍入误差与传播误差属于研究数值方法过程中产生的误差。 2.2.2绝对误差、相对误差与有效数字 1.(1)绝对误差e指的是精确值与近似值的差值。 绝对误差:

数值分析试验一

数值分析第一次实验报告 姓名: 学号: 实验1: 1. 实验项目的性质和任务 通过上机实验,使学生对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。 2.教学内容和要求 1)对高阶多多项式 20 1()(1)(2)(20)()k p x x x x x k ==---=-∏ 编程求下面方程的解 19()0p x x ε+= 并绘图演示方程的解与扰动量ε的关系。(实验) 2)对2~20n =,生成对应的Hilbert 矩阵,计算矩阵的条件数;通过先确定解获得常向量b 的方法,确定方程组 n H x b = 最后,用矩阵分解方法求解方程组,并分析计算结果。(第三章,实验题4) 3)对函数 2 1()[1,1]125f x x x =∈-+ 的Chebyshev 点 (21)cos( ) 1,2,...,12(1) k k x k n n π -==++ 编程进行Lagrange 插值,并分析插值结果。(第四章 实验1)

项目涉及核心知识点 病态方程求解、矩阵分解和方程组求解、Lagrange插值。 重点与难点 算法设计和matlab编程。 1)a.实验方案: 先创建一个20*50的零矩阵X,然后利用Matlab中的roots()和poly()函数将50个不同的ess扰动值所产生的50个解向量分别存入X矩阵中。然后再将ess向量分别和X的20个行向量绘图。即可直观的看出充分小的扰动值会产生非常大的偏差。即证明了这个问题的病态性。 b.编写程序: >> X=zeros(20,50); >> ve=zeros(1,21); >> ess=linspace(0,,50);k=1; >> while k<=50 ve(2)=ess(k); X(1:20,k)=roots(poly(1:20)+ve); k=k+1; end >> m=1; >> while m<=20 figure(m),plot(ess,X(m,:));

数值分析学习心得体会.doc

数值分析学习感想 一个学期的数值分析,在老师的带领下,让我对这门课程有了深刻的理解和感悟。这门 课程是一个十分重视算法和原理的学科,同时它能够将人的思维引入数学思考的模式,在处 理问题的时候,可以合理适当的提出方案和假设。他的内容贴近实际,像数值分析,数值微 分,求解线性方程组的解等,使数学理论更加有实际意义。 数值分析在给我们的知识上,有很大一部分都对我有很大的帮助,让我的生活和学习有 了更加方便以及科学的方法。像第一章就讲的误差,在现实生活中,也许没有太过于注意误 差,所以对误差的看法有些轻视,但在学习了这一章之后,在老师的讲解下,了解到这些误 差看似小,实则影响很大,更如后面所讲的余项,那些差别总是让人很容易就出错,也许在 别的地方没有什么,但是在数学领域,一个小的误差,就很容易有不好的后果,而学习了数 值分析的内容,很容易就可以将误差锁定在一个很小的范围内,在这一范围内再逼近,得出 的近似值要准确的多,而在最开始的计算中,误差越小,对后面的影响越小,这无疑是好的。 数值分析不只在知识上传授了我很多,在思想上也对我有很大的影响,他给了我很多数 学思想,很多思考的角度,在看待问题的方面上,多方位的去思考,并从别的例子上举一反三。像其中所讲的插值法,在先学习了拉格朗日插值法后,对其理解透彻,了解了其中 的原理和思想,再学习之后的牛顿插值以及三次样条插值等等,都很容易的融会贯通,很容 易的就理解了其中所想,他们的中心思想并没有多大的变化,但是使用的方式却是不同的, 这不仅可以学习到其中心内容,还可以去学习他们的思考方式,每个不同的思考方式带来的 都是不同的算法。而在看待问题上,不同的思考方式总是可以快速的全方位的去看透彻问题, 从而知道如何去解决。 在不断的学习中,知识在不断的获取,能力在不断的提升,同时在老师的不懈讲解下, 我逐渐的发现数值分析所涵盖的知识面特别的广泛,而我所需要学习的地方也更加的多,自 己的不足也在不断的体现,我知道这只是我刚刚接触到了数学的那一角,在以后我还会接触 到更多,而这求知的欲望也在不停的驱赶我,学习的越多,对今后的生活才会有更大的帮助。 计算132 2013014923 张霖篇二:数值分析学习报告 数值分析学习心得报告 班级:11级软工一班 姓名: * * * 学号: 20117610*** 指导老师:* * * 学习数值分析的心得体会 无意中的一次选择,让我接触了数值分析。 作为这学期的选修课,我从内心深处来讲,数值分析真的有点难。感觉它是在高等数学 和线性代数的基础上,又加深了探讨。虽然这节课很难,我学的不是很好,但我依然对它比 较感兴趣。下面就具体说说我的学习体会,让那些感兴趣的同学有个参考。 学习数值分析,我们首先得知道一个软件——matlab。matrix laboratory,即矩阵实验 室,是math work公司推出的一套高效率的数值计算和可视化软件。它是当今科学界最具影 响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成计算机语言。它的优点是强 大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面、便捷的与其他程序和语 言接口。 根据上网搜集到的资料,你就会发现matlab有许多优点: 首先,编程简单使用方便。到目前为止,我已经学过c语言,机器语言,java语言,这

数值分析实验题目及解答

内容包括: 实验题目1:算法的数值稳定性实验 实验题目2:LU分解实验 实验题目3:三次样条插值外推样条实验 实验题目4:第二类Fredholm 积分方程实验实验题目5:M级显式R_K法

实验题目:算法的数值稳定性实验 实验内容:计算积分()1 0()d 1515n x I n x a x ==+? (n=1,2,…,20) 易得到下面递推公式 ()()1 1I n aI n n =--+ 并有估计式 ()() ()() 1 1 111I n a n a n << +++ 计算方法: 算法一:采用下面递推公式计算: ()()1 1I n aI n n =--+ ()1,2,,20 n = 取初值()116 0ln ln 15a I a +== 算法二: 采用下面递推公式计算: ()()111I n I n a n ??-= -+???? ()20,19,,1 n =

结果分析:(分析哪个好哪个不好,原因是什么) 我觉得算法二比较好, 原因一:根据式 ()() ()() 1 1 111I n a n a n << +++得知,I(n)不可能小于 零,而算法一的计算结果有部分结果小于零。原因二:对算法一记初始误差 ε0=/I 0-I(0)/>0; 则εn =/I n -I(n)/=a/I n-1-I(n-1)/=a n *ε0 由此可知,当n=20时, ε20把ε0放大了a 20倍,其结果造成严重的。 而对于算法二^ ^ 11n n a εε-= ,…, ^ ^ 01 n n a εε=,尽管有初始误差^ 20ε,但随着计算的进程,这个误差的影响不断减小。 附:源程序:(把源程序附上) 算法一程序: >> format long >> a=15;I=log(16/15); for n=1:20 n I=-a*I+1/n end 算法二程序: >> format long >> a=15;I=31/10080; >> for n=20:-1:1 n I I=1/a*(-I+1/n); End

数值分析读后感

数值分析读后感 M060112101 刘洪兰 研究生生活的第一个半年快要结束了,回想一下这半年是个学习基础知识的忙碌的半年,作为基础课程,我自认为数值分析是最重要的一门课程,不论是理论分析还是实际应用它都有无可替代的作用,原来很多无法解决的实际问题,学了数值分析之后才感觉找到了另一个灵巧而又准确的解决方法,现在就我这半年对数值分析的学习简单的谈一下感想。 数值分析插值法的引入,帮我们解决了已知一些函数点求一些在这些已知点附近的未知点的问题,他能构造出一个能很好拟合这些已知点性质的函数,并且能根据精度的要求做出灵活的构造,使计算变得更加精确更加简单。当函数只在有限点集上给定函数值,要求在包含该点集的区间内用公式给出函数的表达式,这一类的问题是函数逼近问题,最佳二次逼近和最小二乘法分别从连续和离散的角度用相对简单的表达式对复杂的函数做出了很好的逼近。在一些数值积分求法复杂的时候,数值分析提供的梯形公式和辛普森公式用一些特殊点的和对积分作出估计,是原来无法运算的积分问题获得很好的解答,另外还有更精确的复合中点公式、复合梯形公式、复合辛普森公式,当然还有已正交基为基底的对一些问题更加精确的高斯公式。 在一些实际问题的线性方程的求解中,未知数个数有时候会很多,而且零元素也较多时,普通的求解方法就显得不适用了,在这个时候,用迭代法求解便成了最佳的选择。数值分析给我们三种常用的迭代方法:雅克比迭代、高斯赛德尔迭代和超松弛迭代,每一种都是很好地解决方法。在非线性方程与方程组的数值求解问题中,有方法简单但计算步数相对比较多的二分法和不动点迭代求法,也有应用更加广泛的牛顿法和弦截法,使原本复杂的非线性问题变得相对非常简单。矩阵特征值的计算问题,用乘幂法求最大特征值和特征向量,用反幂法求最小特征值和特征向量,用幂方法还可以求出接近数值p的特征值和特征向量,给我们一个全新的求解特征值和特征向量的方法。最后的欧拉法,梯形法,改进的欧拉法,还有经典的标准四阶龙格库塔方法都是用于常微分方程初值问题的数值解法。 除了以上这些具体的数值解法之外,数值分析还给出了我们很多关于误差估计的概念,这在实际问题中很重要,因为实际问题都会有一定的精度要求,我感觉这也是我学习数值分析之后的一个很大的收获,对误差有了一个比之前更加系统的了解,也认识到误差在解决实际问题中的影响。 总之,经过一学期对数值分析的学习,我感觉收获很多,不仅使自己解决问题的思路得到开拓,也培养了自己严谨的思维习惯,但是,同时我也感觉还有数值分析的一些方法自己没能完全理解,我相信自己对数值分析的学习不会随着考试的结束而结束的,在以后的学习中,我还要继续深化对它的学习,最后谢谢老师这学期对我们细心又耐心的数值讲解,在您的帮助下我才能学到这么多东西,谢谢老师。这就是我这学期对数值分析学习后的感想。

数值分析实验报告

学生实验报告实验课程名称 开课实验室 学院年级专业班 学生姓名学号 开课时间至学年学期

if(A(m,k)~=0) if(m~=k) A([k m],:)=A([m k],:); %换行 end A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c); %消去end end x=zeros(length(b),1); %回代求解 x(n)=A(n,c)/A(n,n); for k=n-1:-1:1 x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k); end y=x; format short;%设置为默认格式显示,显示5位 (2)建立MATLAB界面 利用MA TLAB的GUI建立如下界面求解线性方程组: 详见程序。 五、计算实例、数据、结果、分析 下面我们对以上的结果进行测试,求解:

? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - - 7 2 5 10 13 9 14 4 4 3 2 1 13 12 4 3 3 10 2 4 3 2 1 x x x x 输入数据后点击和,得到如下结果: 更改以上数据进行测试,求解如下方程组: 1 2 3 4 43211 34321 23431 12341 x x x x ?? ???? ?? ???? ?? ???? = ?? ???? - ?? ???? - ???? ?? 得到如下结果:

数值分析考试复习总结

1 误差 相对误差和绝对误差得概念 例题: 当用数值计算方法求解一个实际的物理运动过程时, 一般要经历哪几个阶段? 在哪些阶段将有哪些误差产生? 答: 实际问题-数学模型-数值方法-计算结果 在这个过程中存在一下几种误差: 建立数学模型过程中产生:模型误差 参数误差 选用数值方法产生:截断误差 计算过程产生:舍入误差 传播误差 6.设937.0=a 关于精确数x 有3位有效数字,估计a 的相对误差. 对于x x f -=1)(,估计)(a f 对于)(x f 的误差和相对误差. 解 a 的相对误差:由于 31021|)(|-?≤-≤a x x E . x a x x E r -=)(, 221018 1 10921)(--?=?≤ x E r . (1Th ) )(a f 对于)(x f 的误差和相对误差. |11||)(|a x f E ---==()25 .0210113 21??≤ -+---a x x a =310- 33 104110|)(|--?=-≤a f E r . □ 2有效数字 基本原则:1 两个很接近的数字不做减法: 2: 不用很小得数做分母(不用很大的数做分子) 例题: 4.改变下列表达式使计算结果比较精确: (1) ;1||,11211<<+--+x x x x 对 (2) ;1,11>>- - +x x x x x 对 (3) 1||,0,cos 1<<≠-x x x x 对. 解 (1) )21()122x x x ++. (2) ) 11(2x x x x x -++. (3) x x x x x x x cos 1sin )cos 1(sin cos 12+≈ +=-. □

西北工业大学数值分析(附答案)

西北工业大学数值分析习题集 第一章 绪 论 1. 设x >0,x 的相对误差为δ,求ln x 的误差. 2. 设x 的相对误差为2%,求n x 的相对误差. 3. 下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指 出它们是几位有效数字: *****123451.1021,0.031,385.6,56.430,7 1.0.x x x x x =====? 4. 利用公式(3.3)求下列各近似值的误差限: ********12412324(),(),()/,i x x x ii x x x iii x x ++其中**** 1234 ,,,x x x x 均为第3题所给的数. 5. 计算球体积要使相对误差限为1%,问度量半径R 时允许的相对误差限是多少? 6. 设 028,Y =按递推公式 1n n Y Y -= ( n=1,2,…) 计算到100Y .27.982(五位有效数字),试问计算100Y 将有多大误差? 7. 求方程2 5610x x -+=的两个根,使它至少具有四位有效数字27.982). 8. 当N 充分大时,怎样求 211N dx x +∞ +? ? 9. 正方形的边长大约为100㎝,应怎样测量才能使其面积误差不超过1㎝2 ? 10. 设 212S gt = 假定g 是准确的,而对t 的测量有±0.1秒的误差,证明当t 增加时S 的绝对 误差增加,而相对误差却减小. 11. 序列 {}n y 满足递推关系1101n n y y -=-(n=1,2,…),若0 1.41y =≈(三位有效数字),计算到 10y 时误差有多大?这个计算过程稳定吗? 12. 计算6 1)f =, 1.4≈,利用下列等式计算,哪一个得到的结果最好? 3 -- 13. ()ln(f x x =,求f (30)的值.若开平方用六位函数表,问求对数时误差有多大?若改用另一等价公式 ln(ln(x x =-

(整理)数值分析计算方法超级总结

工程硕士《数值分析》总复习题(2011年用) [由教材中的习题、例题和历届考试题选编而成,供教师讲解和学生复习用] 一. 解答下列问题: 1)下列所取近似值有多少位有效数字( 注意根据什么? ): a) 对 e = 2.718281828459045…,取* x = 2.71828 b) 数学家祖冲之取 113355 作为π的近似值. c) 经过四舍五入得出的近似值12345,-0.001, 90.55000, 它们的有效 数字位数分别为 位, 位, 位。 2) 简述下名词: a) 截断误差 (不超过60字) b) 舍入误差 (不超过60字) c) 算法数值稳定性 (不超过60字) 3) 试推导( 按定义或利用近似公式 ): 计算3 x 时的相对误差约等于x 的相对 误差的3倍。 4) 计算球体积3 34r V π= 时,为使其相对误差不超过 0.3% ,求半径r 的相对 误差的允许范围。 5) 计算下式 341 8 )1(3)1(7)1(5)1(22345+-+---+---=x x x x x x P )( 时,为了减少乘除法次数, 通常采用什么算法? 将算式加工成什么形式? 6) 递推公式 ?????=-==- ,2,1,1102 10n y y y n n 如果取 * 041.12y y =≈= ( 三位有效数字 ) 作近似计算, 问计算到 10y 时误差为初始误差的多少倍? 这个计算过程数值稳定吗 ? 二. 插值问题: 1) 设函数 )(x f 在五个互异节点 54321,,,,x x x x x 上对应的函数值为 54321,,,,f f f f f ,根据定理,必存在唯一的次数 (A ) 的插值多项式 )(x P ,满足插值条件 ( B ) . 对此,为了构造Lagrange 插值多项式 )(x L ,由5个节点作 ( C ) 个、次数均为 ( D ) 次的插值基函数

数值分析第五版答案

第一章 绪论 p19 2.设x 的相对误差为2%,求n x 的相对误差。 解:设()n f x x =,则函数的条件数为'() | |() p xf x C f x = 又 1 '()n f x nx -=, 1 ||n p x nx C n n -?∴== 又 ((*))(*)r p r x n C x εε≈? 且(*)r e x 为2% ((*))0.02n r x n ε∴≈ 5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为343 V R π= 则何种函数的条件数为 2 3'4343 p R V R R C V R ππ=== (*)(*)3(*)r p r r V C R R εεε∴≈= 又 (*)1r V ε= 故度量半径R 时允许的相对误差限为1 (*)10.333 r R ε= ?≈ 7.求方程2 5610x x -+=的两个根,使它至少具有427.982 =)。 解:2 5610x x -+= , 故方程的根应为1,228x =故 128 2827.98255.982x = ≈+= 1x ∴具有5位有效数字 211 280.0178632827.98255.982 x =-= ≈ =≈+ 2x 具有5位有效数字

9.正方形的边长大约为了100cm ,应怎样测量才能使其面积误差不超过2 1cm ? 解:正方形的面积函数为2 ()A x x = p7 当*100x =时,若(*)1A ε≤, 则21 (*)102 x ε-≤ ? 故测量中边长误差限不超过0.005cm 时,才能使其面积误差不超过2 1cm 第二章 插值法p48 1.当1,1,2 x =-时,()0,3,4f x =-, 分别用单项式基底、拉格朗日基底、牛顿基底求() f x 的二次插值多项式。 解: 0120121200102021101201220211,1,2, ()0,()3,()4;()()1 ()(1)(2)()()2()()1 ()(1)(2) ()()6 ()()1 ()(1)(1) ()()3 x x x f x f x f x x x x x l x x x x x x x x x x x l x x x x x x x x x x x l x x x x x x x ==-===-=--==-+-----==------= =-+-- 则二次拉格朗日插值多项式为 2 20 ()()k k k L x y l x ==∑ 0223()4() 14 (1)(2)(1)(1)23537623 l x l x x x x x x x =-+=---+-+=+- 2.给出()ln f x x =的数值表 用线性插值及二次插值计算的近似值。 解:由表格知,

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对(1.1)中19x 的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b = 的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

相关文档
相关文档 最新文档