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

数值分析

数值分析
数值分析

实验一

一、用Newton 法求方程

0142847=+-x x

在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭6次或误差小于0.00001).

二、解题方法的理论依据或方法应用条件 对于Newton 迭代法,我们有如下定理:

{}.],[0)(2,1,0,)

()

()(Newton ],,[.|))(),(min(|,|,)(||

)(|.

iv ;

0)(.iii ;],[)(.ii ;

0)()(.i ],[10α?上的惟一解在区间平方收敛于方程所生的迭代序列迭代过程由则对任意初始近似值达到的一个中使是其中上不变号在区间足条件上二阶导数存在,且满设函数在有限区间b a x f x k x f x f x x x b a x b f a f b a c x f a

b c f x f b a x f b f a f b a k k k k k k =?

='-

==∈'''≤-≠'''<+

由该定理可得以下推论:

.

0)(}{,0)()(,,iii ii i )(000α的唯一解单调收敛于产生的迭代序列过程则迭代使若选初值满足上述定理中条件设函数=?>''x f x x f x f x x f k

对于本题:

)1.0()1.0(0)1.1()1.1(0

)8(4233642)(0)16(71127)(0

5116.261)9.1(09972.13)1.0(1428)(32253

3

3

6

47<''>''<-=-=''<-=-='<-=>=+-=f f f f x x x x x f x x x x x f f f x x x f 而

故本题以1.1为起点,即进行如下迭代:

??

??

?

='-

=+1.1)()(01x x f x f x x k k k k

三、程序源代码

#include

#include

void main()

{

float x,y,a,b,c,d; /*定义初始变量*/

printf("请输入0.9-1.9中间一个数\n"); /*选择一个初始值*/

scanf("%f",&x);

a=x*x*x*x*x*x*x;

b=x*x*x*x*x*x;

c=x*x*x*x;

d=x*x*x;

y=x-(a-28*c+14)/(7*b-28*4*d);

while(fabs(y-x)>0.00001) /*设置循环条件并用牛顿法进行计算*/

{

x=y; /*初始值代换*/

a=x*x*x*x*x*x*x;

b=x*x*x*x*x*x;

c=x*x*x*x;

d=x*x*x;

y=x-(a-28*c+14)/(7*b-28*4*d);

}

printf("y=%f\n",y);

}

四、计算结果

五、误差分析及上机心得体会

这次编程实验室自从本科毕业以后第一次重新使用C 语言程序,面对似曾相识的输入,输出语句,面对已然忘记的%f ,%d 等格式表达,面对早已陌生的计算机思维模式,我只能再次的拿起程序设计的课本,重新去拾取那所学过的点点滴滴。第一个程序用牛顿迭代法求非线性方程的根,其整体编程思路上并不是很难,唯一的问题在于要习惯计算机的思维方式与我们平时解题是不同的,他是一种按部就班的机械的思维模式,你必须告诉计算机你每一步需要做些什么,而不能跳跃性的思维。在本次编程实验中,所遇到的问题有,对于许久不用的C 语言的陌生,在编写程序时格式上的错误以及在思考如何去表达X^7的问题上,这些难点我通过重新对程序设计的书本的阅读得到克服,并且用了X*X*X*X*X*X*X 的笨办法来表示了X^7。在整个牛顿法的程序设计过程中,还需要考虑到所选取的初值是否收敛的问题,由于本人水平有限,并没有将判断所选初值点是否收敛的判断写入程序中。通过这次实验,使我重新拿起了C 语言,让我所学的东西有所应用,做到学以致用。Newton 迭代法是一个二阶收敛迭代式,他的几何意义1 k x 是k x 的切线与x 轴的交点,故也称为切线法。它是平方收敛的,但它是局部收敛的,即要求初始值与方程的根充分接近,所以在计算过程中需要先确定初始值。本题在讨论中,讨论了区间(0.1,1.9)两端点是否能作为Newton 迭代的初值,结果发现0.1不满足条件,而1.1满足,能作为初值0x 。

实验二

一、题目

二、解题方法的理论依据或方法应用条件

为使问题一般化,本题的三次样条求解使用了对于任意分化的三弯矩插值法。若记各节点间距n x x x h j j j ,,2,111???=-=--,根据理论分析,三次样条插值函

数为:

)

)(6()()(6(6)(6)()(1

121

121111

3

11

31

-------------+--+-+-=j j j j j j j j j j j j j

j j j h x x h M y h x x h M y h x x M h x x M x S

其中),(1j j x x x -∈。而式中的诸j M 可由如下的矩阵方程来确定:

??

??

?

???

????????=???????????

????????????????

????

?N N d d d M M M 1010111

1122212

μλμλμ

这里

???

?

???

??

?

?

??????-???=+=-=+=

--'==---+='--=

------+---+-)1,,2,1(1)](1[6)

,,(6)(6)(6111111111111000

100N j h h h h h h y y h y h d x x x f h y y h y y h h d y h y y h d j j j

j j j j j j N N N N

N N j j j j j j j j j j j μλμ

对于上述矩阵方程,由于其系数矩阵为一三对角阵,故我们用追赶法(Thomas 算法)来求解。

一般地,对矩阵方程

???

?????????????=??????????????????????????

??????---n n n n n n n d d d x x x b a c b a c b a c b 212111122211

有如下算法:

????

?

????

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

==+++++++++1

,2,,1,

,1,,2,1,,

,,1

1111111

11111n i x c x x n i l d c l b a l d b i

i i i i n n n i i i i i

i i i i

i i βδβδδδββδβ

由此可求出j

M

,故)(x S 中各参数均已求出故可求出

)563.4()563.4(),563.4()563.4(S f S f '='=。

三、程序清单

#include

#include #define N 9 main() {

inti,j; double

t=4.563,s,s1,x[N+1],h[N],u[N],v[N],d[N+1],f1[N],l[N],r[N+1],z[N+1],m[N+1],f[N+1]={0,0.69314718,1.0986123,1.3862944,1.6094378,1.7917595,1.9459101,2.079445,2.1972246,2.3025858};

for(i=0;i<=N;i++)

{

x[i]=i+1;

} /*函数初值赋值*/

for(i=0,j=0;j

{

h[j]=x[i+1]-x[i];

}

u[N-1]=1;

for(i=0;i

{

u[i]=h[i]/(h[i]+h[i+1]);

}

v[0]=1;

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

{

v[i]=1-u[i-1];

}

for(i=0;i

{

f1[i]=(f[i+1]-f[i])/(x[i+1]-x[i]);

}

for(d[0]=6*(f1[0]-1)/h[0],d[N]=6*(0.1-f1[N-1])/h[N-1],i=1;i<=N-1;i++)

{d[i]=6*(f1[i]-f1[i-1])/(h[i]+h[i+1]);}

r[0]=2; /*追赶法求M值*/

for(i=1;i<=N;i++)

{

l[i-1]=u[i-1]/r[i-1];

r[i]=2-l[i-1]*v[i-1];

}

z[0]=d[0];

for(i=1;i<=N;i++)

{z[i]=d[i]-l[i-1]*z[i-1];}

m[N]=z[N]/r[N];

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

{

m[i]=(z[i]-v[i]*m[i+1])/r[i];

}

s=(pow((x[4]-t),3)*m[3])/(6*h[4])+(pow((t-x[3]),3)*m[4])/(6*h[4])+(f[3]-(pow(h [4],2)*m[3])/6)*((x[4]-t)/h[4])+(f[4]-(pow(h[4],2)*m[4])/6)*((t-x[3])/h[4]);

s1=-((pow((x[4]-t),2))*m[3])/(2*h[4])+((pow(t-x[3],2))*m[4])/(2*h[4])-(f[3]-pow(h[4 ],2)*m[3]/6)/h[4]+(f[4]-pow(h[4],2)*m[4]/6)/h[4];

printf("s=%f\n",s);

printf("s1=%f\n",s1); /*比较后计算插值点函数值*/ }

四、实验结果

五、误差分析及上机心得体会

这次实验是第二次实验,是通过使用三次样条的插值方法进行对函数的拟合以及对所求点值的估计。在三次样条插值的实验中,编程的主要难点在于对于数组的使用以及循环的嵌套使用,由于当时在进行C语言学习的过程中,对于指针和数组的学习并不是很好,所以此次实验给我造成了很大的困扰,不过在经过反复的推敲以及对书本的阅读以后,我成功的写出了这一份程序。本次实验中还遇到了由于变量定义过多,导致自己在使用这些变量是出现错误的问题,在老师的指导下,我通过使用调试功能,进行对所写程序的每一行的检测,终而发现了自己的问题所在之处。通过这次实验,我深刻的认识到了程序设计中调试功能的重要性与必要性,使我的编程能力以及程序改错能力有所提高,而不是在像原来那般对于程序中的错误束手无策,望而却步。通过实验,我对于数值计算的方式方法有了更进一步的了解和提高。而且我还了解到了三次样条插值效果比Lagrange 插值好,没有Runge现象,光滑性较好。

实验三

一、题目

用Romberg 算法求)00001.0(sin )75(323

14.1=+?ε允许误差dx x x x x .

二、解题方法的理论依据或方法应用条件

把Richardson 外推算法直接应用到复化梯形公式,取2

1

=

q ,可得到数值积分的Romberg 算法。现在为了为了计算,引入记号)(k m T ,称为Romberg 序列,这里k 表示将积分区间2k 等分,m 表示外推m -1次,即m=1时表示不外推,如)0(1T 表示在[a ,b ]上的梯形公式,)(1k T 表示把区间2k 等分的复化梯形公式,而)(2k T 表示对)(1k T 与)1(1+k T 外推所得公式。一般Romberg 可用如下算法公式表示:

????

??

?

??????

-=-==-=+=+-=∑-=+63/)64(15

/)16(......

3,2,1,3/)4(}

][{21)]()([2

2221

1

5.021

n n n n n n n n n n i k n

n C C R S S C n T T S x f h T T b f a f a b T 当ε<-+1n n R R 时,就停止计算。

1T

2T 1S 4T 2S 1C

8T 4S 2C 1

R

16T 8S 4C 2

R 3216

S 8C 4R

...... ... ...

计算流程如上图所示。

三、程序清单 #include #include void main() {

double t1,t2,s1,s2,c1,c2,r1=0,r2,r,fx1=0,fx2=0,x,h,n; /*定义初始变量*/ intk,a=0;

t1=(3-1)/2*(pow(3,1)*pow(1,1.4)*(5*1+7)*sin(1*1)+pow(3,3)*pow(3,1.4)*(5*3+7)*sin(3*3));

for(n=1;fabs(r2-r1)>0.00001;n=2*n) /*循环开始,以行进行循环计算*/ { fx2=0; for(k=0;k<=n-1;k++) /*计算T2n 中函数求和部分*/ { h=(3-1)/n; x=1+h*(k+0.5); fx1=h*pow(3,x)*pow(x,1.4)*(5*x+7)*sin(x*x); fx2=fx2+fx1; } t2=0.5*(t1+fx2); s1=(4*t2-t1)/3; if(n>=2) /*判断是否需要计算Cn*/ { c1=(16*s1-s2)/15; } if(n>=4) /*判断是否需要计算Rn*/ { r=(64*c1-c2)/63;

switch(a) /*通过选择语句分别复制给Rn,保证循环能够进行*/

{

case 0:r1=r;a=1;break;

case 1:r2=r;a=0;break;

}

}

t1=t2;

s2=s1;

c2=c1;

}

printf("the result is %lf\n",r2);

}

四、实验结果

五、误差分析及上机心得体会

这次实验是Romberg算法,通过romberg算法来计算数值积分。本次实验中最大的难点在于对于循环的使用,根据书上所给出的计算公式,循环应该进行横向循环,而不能进行竖向的循环,即计算T1,T2,T4,T8......以后在进行S1、S2、S4......的计算,而是以T1、T2、S1、T4、S2、C1这样的模式进行计算。进行横向循环中,还需要考虑在当前行是否需要计算Sn、Cn、Rn,此处通过If语句进行实现。这个实验我共进行了两次编写,第一次采用数组的模式进行编写,但是由于对数组的掌握不是很好,第一次尝试以失败而告终。第二次我没有在采用数组的方法,而是通过定义变量,在循环的过程中进行变量的替换,从而得出了正确的实验结果。在实验中,体会到Romberg算法的递归思想,通过上机实验,将问题的数学方法转化为能利用计算机实现的数值计算方法,提高了自己的实践能力,也有利于提高今后使用计算机解决实际计算问题的能力。

实验四

一、题目

用定步长四阶Runge-Kutta 求解

??????????

?===--===0

)0(0)0(0)0(10010001000//1/3213

2332

1y y y y y dt dy y

dt dy dt dy h =0.0005,打印y i (0.025) , y i (0.045) , y i (0.085) , y i (0.1) ,(i =1,2,3)

二、解题方法的理论依据或方法应用条件

先不按Taylor 公式展开,而是先写成t n 处附近的值的线性组合(有待定常数)再按Taylor 公式展开,然后确定待定常数,这就是Runge-Kutta 法的思想方法。

由于本题求解的是微分方程组,为使问题一般化,考虑常微分方程组的初值问题

?????

????=???==???='???='???='k

k k

k k k k s x y s x y s x y x y x y x y x f x y x y x y x y x f x y x y x y x y x f x y )(,,)(,)()]

(,),(),(,[)()](,),(),(,[)()](,),(),(,[)(02021012121222111

若记

??

??????=???=???=T k T k T k s s s S Y x f Y x f Y x f Y x F x y x y x y Y ),,()],(,),,(),,([),()](,),(),([212121 则原方程组可写成向量形式

?

?

?=='S x Y Y x F x Y )()

,()(0 解次向量方程组所用的是定步长四阶Runge-Kutta 公式的古典形式:

????

?

?????

???

++=++=++==++++=+)

,()2

1,21()21,21(),()22(6

13423

12143211

K Y h x hF K K Y h x hF K K Y h x hF K Y x hF K K K K K Y Y n n n n n

n n n n n

三、程序清单

#include

#include

double f1(double t,double y1,double y2,double y3) /*定义调用函数f1,f2,f3*/ {

double result1;

result1=0*t+0*y1+0*y2+0*y3+1.0; return result1; }

double f2(double t,double y1,double y2,double y3) {

double result2;

result2=0*t+0*y1+0*y2+1*y3; return result2; }

double f3(double t,double y1,double y2,double y3) {

double result3;

result3=0*t+0*y1-1000*y2-100*y3+1000; return result3; }

void main() {

double k[4][3],t,t1,yy1,yy11,yy2,yy22,yy3,yy33; /*定义初始变量*/

double h=0.0005;

t=0;

yy1=0;

yy2=0;

yy3=0;

for(i=0;t+h*i<=1;i++) /*循环开始*/

{

k[0][0]=f1(t,yy1,yy2,yy3); /*计算k11,k12,k13*/

k[0][1]=f2(t,yy1,yy2,yy3);

k[0][2]=f3(t,yy1,yy2,yy3);

t1=t+0.5*h;

yy11=yy1+0.5*h*k[0][0];

yy22=yy2+0.5*h*k[0][1];

yy33=yy3+0.5*h*k[0][2];

k[1][0]=f1(t1,yy11,yy22,yy33); /*计算k21,k22,k23*/

k[1][1]=f2(t1,yy11,yy22,yy33);

k[1][2]=f3(t1,yy11,yy22,yy33);

yy11=yy1+0.5*h*k[1][0];

yy22=yy2+0.5*h*k[1][1];

yy33=yy3+0.5*h*k[1][2];

k[2][0]=f1(t1,yy11,yy22,yy33); /*计算k31,k32,k33*/

k[2][1]=f2(t1,yy11,yy22,yy33);

k[2][2]=f3(t1,yy11,yy22,yy33);

yy11=yy1+h*k[2][0];

yy22=yy2+h*k[2][1];

yy33=yy3+h*k[2][2];

t1=t+h;

k[3][0]=f1(t1,yy11,yy22,yy33); /*计算k41,k42,k43*/

k[3][1]=f2(t1,yy11,yy22,yy33);

k[3][2]=f3(t1,yy11,yy22,yy33);

yy11=yy1+h/6*(k[0][0]+2*k[1][0]+2*k[2][0]+k[3][0]);

yy22=yy2+h/6*(k[0][1]+2*k[1][1]+2*k[2][1]+k[3][1]);

yy33=yy3+h/6*(k[0][2]+2*k[1][2]+2*k[2][2]+k[3][2]);

yy1=yy11;

yy2=yy22;

yy3=yy33;

t=t+h;

if(i==49)

/*判断是否需要输出题设数据*/

printf("y1(0.025)=%f\n",yy1);

printf("y2(0.025)=%f\n",yy2);

printf("y3(0.025)=%f\n",yy3);

}

if(i==89)

{

printf("y1(0.045)=%f\n",yy1);

printf("y2(0.045)=%f\n",yy2);

printf("y3(0.045)=%f\n",yy3);

}

if(i==169)

{

printf("y1(0.085)=%f\n",yy1);

printf("y2(0.085)=%f\n",yy2);

printf("y3(0.085)=%f\n",yy3);

}

if(i==199)

{

printf("y1(0.1)=%f\n",yy1);

printf("y2(0.1)=%f\n",yy2);

printf("y3(0.1)=%f\n",yy3);

}

}

}

四、实验结果

五、误差分析及上机心得体会

这是第四次实验,这次实验主要是使用龙格-库塔的方式进行常微分方程组的计算,这次实验由于进行这次实验的时候理论课程还未讲解到龙格—库塔方法,所以在编程的过程中,理解程序原理上有了一定的困难,这点通过认真阅读书本得以解决。在程序的编写过程中,采用了函数调用的方式,预设了函数f1、f2、f3,这样使主程序简洁了许多,因而巩固了函数调用的方法,对以后的编程有很大的帮助。在这几次实验中,我还深刻的认识到了写注释的重要性,注释是对你所编的程序的说明,可以使你更加深入的理解你所写的程序,也可使别人更容易读懂你所写的程序,更会让你在很久以后再次读到这个程序时能够快速的想起整个程序的编写原理与过程。

实验五

一、题目

???????

?????????????????????=40.00001 4.446782 2.213474- 0.238417 1.784317 0.037585- 1.010103- 3.123124 2.031743- 4.446782 30.719334 3.123789 1.103456- 2.121314 0.71828- 0.336993 1.112348 3.067813 2.213474- 3.123789 14.7138465 0.103458- 3.111223- 2.101023 1.056781- 0.784165- 1.7423820.238417 1.103456- 0.103458- 9.789365 0.431637 3.741856- 1.836742 1.563849 0.718719 1.784317 2.121314 3.111223- 0.431637 19.897918 4.101011 2.031454 2.189736 0.113584-0.037585- 0.71828- 2.101023 3.741856- 4.101011 27.108437 3.123848 1.012345- 1.112336 1.010103- 0.336993 1.056781- 1.836742 2.031454 3.123848 15.567914 3.125432- 1.061074- 3.123124 1.112348 0.784165- 1.563849 2.189736 1.012345- 3.125432- 19.141823 2.115237 2.031743- 3.067813 1.742382 0.718719 0.113584- 1.112336 1.061074- 2.115237 12.38412A T

b )5.6784392- 4.719345 1.1101230 86.612343- 1.784317 0.84671695 25.173417- 33.992318 2.1874369(=

用列主元消去法求解Ax=b 。

二、解题方法的理论依据或方法应用

列主元素消去法是建立在Gauss 消去法基础上的,Gauss 消去法是在较强条

件下进行的,即要求A i 非奇异(i =1,2,···,n -1)。Gauss 消去法是按自然顺序消去法,这样的自然顺序选取的主元的解法在计算机中往往误差过大。经过长期经验的积累,我们选取绝对值尽量大的与元素作为主元素,对列选主元的方法称为列主元素消去法。具体做法为:(1)选列主元;(2)交换第一行与列主元所在行;(3)消元计算;(4)回代求解。

三、程序清单

#include #include #define N 9 void main() {

double Fx(double a[N][N+1],double x[N]); /*变量及调用函数定义*/ int i;

double d,x[N];

double a[N][N+1]={

{12.38412,2.115237,-1.061074,1.112336,-0.113584,0.718719,1.742382,3.067813

,-2.031743,2.1874369},

{2.115237,19.141823,-3.125432,-1.012345,2.189736,1.563849,-0.784165,1.1123 48,3.123124,33.992318},

{-1.061074,-3.125432,15.567914,3.123848,2.031454,1.836742,-1.056781,0.3369 93,-1.010103,-25.173417},

{1.112336,-1.012345,3.123848,27.108437,4.101011,-3.741856,2.101023,-0.7182 8,-0.037585,0.84671695},

{-0.113584,2.189736,2.031454,4.101011,19.897918,0.431637,-3.111223,2.12131 4,1.784317,1.784317},

{0.718719,1.563849,1.836742,-3.741856,0.431637,9.789365,-0.103458,-1.10345 6,0.238417,-86.612343},

{1.742382,-0.784165,-1.056781,2.101023,-3.111223,-0.103458,14.7138465,3.12 3789,-2.213474,1.1101230},

{3.067813,1.112348,0.336993,-0.71828,2.121314,-1.103456,3.123789,30.71933 4,4.446782,4.719345},

{-2.031743,3.123124,-1.010103,-0.037585,1.784317,0.238417,-2.213474,4.4467 82,40.00001,-5.6784392}};

d=Fx(a,x);

if(d!=0)

{

for(i=0;i

printf("x[%d]=%f\n",i+1,x[i]);

}

}

double Fx(double a[N][N+1],double x[N]) /*用列主元素消去法求解线性方程组的解*/

{

inti,j,k,r;

doubleb,l,t[N];

for (k=0;k

{

r=k;

for(i=k;ifabs(a[r][k])) r=i; //得到主元在第r行if(r!=k)

{ /*对调r,k两行*/ for(j=k;j<=N;j++)

{

b=a[k][j];

a[k][j]=a[r][j];

a[r][j]=b;

}

}

for(i=k+1;i

{

l=a[i][k]/a[k][k];

for(j=k;j<=N;j++) /*消元计算*/

a[i][j]=a[i][j]-l*a[k][j];

}

}

x[N-1]=a[N-1][N]/a[N-1][N-1]; /*回代求解*/

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

{

t[i]=a[i][N];

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

t[i]=t[i]-a[i][j]*x[j];

x[i]=t[i]/a[i][i];

}

return(1);

}

四、实验结果

五、误差分析及上机心得体会

这次实验是在完全没有老师的指导下所进行的,由于是第一次完全独立的写程序,因而在程序的编写过程中遇到了很多的问题与难点,GAUSS列主元素消元法最大的难点在于循环的嵌套使用,在一个整体大循环的前提下,从A11开始进行大小比较,然后进行变量替换的循环,在接着进行消元,然后循环范围减小,第二次又从A22开始进行,因而使用循环时,外部大循环是在不停减小的,即循

环终止的条件是一个变化的量,这个是一个必须要考虑到的因素。通过这次实验,很好的锻炼了我独立写程序的能力,为以后工作和学习都打下了良好的基础,也更加深刻的理解了GAUSS列主元素消元法的原理和应用。

数值分析试题及答案汇总

数值分析试题 一、 填空题(2 0×2′) 1. ?? ????-=? ?????-=32,1223X A 设x =是精确值x *=的近似值,则x 有 2 位 有效数字。 2. 若f (x )=x 7-x 3+1,则f [20,21,22,23,24,25,26,27]= 1 , f [20,21,22,23,24,25,26,27,28]= 0 。 3. 设,‖A ‖∞=___5 ____,‖X ‖∞=__ 3_____, ‖AX ‖∞≤_15_ __。 4. 非线性方程f (x )=0的迭代函数x =?(x )在有解区间满足 |?’(x )| <1 ,则使用该迭代 函数的迭代解法一定是局部收敛的。 5. 区间[a ,b ]上的三次样条插值函数S (x )在[a ,b ]上具有直到 2 阶的连续导数。 6. 当插值节点为等距分布时,若所求节点靠近首节点,应该选用等距节点下牛顿差商 公式的 前插公式 ,若所求节点靠近尾节点,应该选用等距节点下牛顿差商公式的 后插公式 ;如果要估计结果的舍入误差,应该选用插值公式中的 拉格朗日插值公式 。 7. 拉格朗日插值公式中f (x i )的系数a i (x )的特点是:=∑=n i i x a 0)( 1 ;所以当 系数a i (x )满足 a i (x )>1 ,计算时不会放大f (x i )的误差。 8. 要使 20的近似值的相对误差小于%,至少要取 4 位有效数字。 9. 对任意初始向量X (0)及任意向量g ,线性方程组的迭代公式x (k +1)=Bx (k )+g (k =0,1,…)收 敛于方程组的精确解x *的充分必要条件是 ?(B)<1 。 10. 由下列数据所确定的插值多项式的次数最高是 5 。 11. 牛顿下山法的下山条件为 |f(xn+1)|<|f(xn)| 。 12. 线性方程组的松弛迭代法是通过逐渐减少残差r i (i =0,1,…,n )来实现的,其中的残差 r i = (b i -a i1x 1-a i2x 2-…-a in x n )/a ii ,(i =0,1,…,n )。 13. 在非线性方程f (x )=0使用各种切线法迭代求解时,若在迭代区间存在唯一解,且f (x )

泰勒定理及其在数值分析中的应用

摘要 因为泰勒公式的形式简单易懂,由此,适用在很多学科。在计算机与物理等各个方面均有着极其广泛的应用,除此之外,也在数值分析、常微分方程、最优化理论这些数学分支中产生着至关重要的作用。可见,泰勒公式的用处很多,所以,更要弄清楚泰勒公式的概念和数学原理。这是数学中非常基础的东西,对学生今后的数学学习将起到非常好的作用。本论文的目的,主要是对泰勒定理在数值分析中的应用做研究,从利用泰勒公式近似计算函数值、利用泰勒公式近似计算导数值、泰勒公式在常微分方程数值求解中的应用等方面,对泰勒公式在数值分析方面的应用进行研究。泰勒公式在数值分析的各个方面都有着重要的应用,深入探讨泰勒公式的应用,对于我们解决一些复杂问题起到事半功倍的效果.只要在解题中注意分析并注重归纳总结,就能很好地运用泰勒公式.正确的应用泰勒公式使我们的证明和计算题变得简明快捷。 关键词:泰勒公式;数值分析;应用

ABSTRACT Because of the Taylor formula is very simple, so, can be applied to many subjects. In various physical and computer etc, have a very wide range of applications, in addition, also in the ordinary differential equations, numerical analysis, optimization theory, the branch of mathematics plays an extremely important role. Therefore, a lot of, Taylor formula. So, to clarify concepts and mathematical principle of Taylor formula. This is the very basis of mathematics of mathematics learning things, the students will play a very good role. The purpose of this thesis, mainly to do research on the application of Taylor theorem in numerical analysis, calculating the function value, using the Taylor formula to calculate the value of Taylor formula, the numerical solution of ordinary differential equation application, from using Taylor's formula approximation, the Taylor formula is analyzed in terms of the application in the numerical study. Taylor formula has important applications in the numerical analysis, in-depth study of the application of Taylor formula, for us to solve some complex problems play a multiplier effect. As long as the attention and focus on solving problems of the summary, will be able to use Taylor formula. Using Taylor formula to correct the proof and calculation problems we became fast and simple. Key words: Taylor formula; numerical analysis; application

数值分析试卷及其答案2

1、(本题5分)试确定7 22作为π的近似值具有几位有效数字,并确定其相对误差限。 解 因为 7 22=3.142857…=1103142857.0-? π=3.141592… 所以 3 12 10 2 110 21005.0001264.07 22--?= ?= <=- π (2分) 这里,3,21,0=-=+-=n n m m 由有效数字的定义可知7 22作为π的近似值具有3位有效数字。 (1分) 而相对误差限 3 10 2 10005.00004138.0001264.07 22-?= <≈= -= π π πε r (2分) 2、(本题6分)用改进平方根法解方程组:???? ? ??=????? ??????? ??--654131321 112321x x x ; 解 设???? ? ? ?????? ? ?????? ??===????? ? ?--11 1 11113 1321 11232312132 1 32 31 21 l l l d d d l l l LDL A T 由矩阵乘法得: 5 7,21,21527,25,2323121321- == - == -==l l l d d d (3分) 由y D x L b Ly T 1 ,-==解得 T T x y )9 23,97,910( ,)5 63, 7,4(== (3分) 3、(本题6分)给定线性方程组??? ? ? ??=++-=+-+=-+-=-+17722238231138751043214321 321431x x x x x x x x x x x x x x 1)写出Jacoib 迭代格式和Gauss-Seidel 迭代格式; 2)考查Jacoib 迭代格式和Gauss-Seidel 迭代格式的敛散性; 解 1)Jacoib 迭代格式为

工程中的数值分析

. 《工程中的数值分析》开放性考试

工程中的数值分析题目: 建筑与土木工程系分院: 14土木工程本一班级: 陈凯名:姓14219114125号:学 日14122016 完成日期:年月 温州大学瓯江学院教务部. . 二○一二年十一月制 实现二分法的和算法及Excel1.1 由闭区间上连续函数的性质f(b)<0f(a)·[a,b]上连续,且在原理:设函数 f(x)二分法的基本思想内至少有一个实根.(a,b),方程(2.2)在区间及定理2-1可知,,进一步缩小有根区间:逐步二分区间[a,b],通过判断两端点函数值的符号是. ,从而求出满足精度要求的根的近似值将有根区间的长度缩小到充分小算法:给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下: 确定区间[a,b],验证f(a)·f(b)<0,给定精确度.求区间(a,b)的中点c.计算f(c). (1)若f(c)=0,则c就是函数的零点;

(2)若f(a)·f(c)<0,则令b=c; (3)若f(c)·f(b)<0,则令a=c. (4)判断是否达到精确度ε:即若|a-b|<,则得到零点近似值a(或b),否则重复2-4. Excel实现:单元格内分别输入区间[a,b]的左右端点值,中点值=(a+b)/2,依次计算出各点代入公式的f(x)值,用IF函数比较单元格内输入“=IF(f(中点值)<0”,中点值,a)如果f(中点值)<0,则下个左端点取原来的中点值 (a+b)/2. 同理“=IF(f(中点值)<0,b,中点值)”下个右端点取原来的右点值b. 如此循环往下,直至某个中点值代入f(x)得到的解满足题目要求的近似解或者零点即f(c)=0则该值则为零点。 . . 1.2不动点迭代法的原理和算法及Excel实现,并分析不同迭代格式的收敛性原理:将线性方程f(x)=0化为一个同解方程x=φ(x),并且假设φ(x)为连续函数,任取初值x,代入方程得到 x=φ(x),x=φ(x)····x=φ k+121001(x),k=0,1,2,····k称为求解非线性方程组的简单迭代法,称φ(x)为迭代函数,x称为第k步迭代k值. 若{x}收敛,则称迭代法收敛,否则称迭代法发散. k算法: (1)确定初值

数值分析小论文

“数值分析”课程 第一次小论文 郑维珍2015210459 制研15班(精密仪器系)内容:数值分析在你所在研究领域的应用。 要求:1)字数2500以上;2)要有摘要和参考文献;3)截至10.17,网络学堂提交,过期不能提交! 数值分析在微流控芯片研究领域的应用 摘要: 作者在硕士期间即将参与的课题是微流控芯片的研制。当前,微流控芯片发展十分迅猛,而其中涉及到诸多材料学、电子学、光学、流体力学等领域的问题,加上微纳尺度上的尺寸效应,理论研究和数值计算都显得困难重重。发展该领域的数值计算,成为重中之重。本文从微流体力学、微传热学、微电磁学、微结构力学等分支入手,简要分析一下数值分析方法在该领域的应用。 微流控芯片(Microfluidic Chip)通常又称芯片实验室(Lab-On-a-Chip ),它是20世纪90年代初由瑞士的Manz和Widmer提出的[1-2],它通过微细加工技术,将微管道、微泵、微阀、微电极、微检测元件等功能元件集成在芯片材料(基片)上,完成整个生化实验室的分析功能,具有减少样品的消耗量、节省反应和分析的时间、高通量和便携性等优点。 通常一个微流控芯片系统都会执行一个到多个微流体功能,如泵、混合、热循环、扩散和分离等,精确地操纵这些流体过程是微流控芯片的关键。因此它的研究不仅需要生命科学、MEMS、材料学、电子学、光学、流体力学等多学科领域的基础理论的支持,还需要很多数学计算。

1)微流体力学计算[3]: 对微管里的流体动力的研究主要包含了以下几个方面:(1)微管内流体的粘滞力的研究;(2)微管内气流液流的传热活动;(3)在绝热或传热的微管内两相流的流动和能量转换。这三方面的研究涵盖了在绝热、传热和多相转换条件下,可压缩和不可压缩流体在规则或不规则的微管内的流动特性研究。 由此,再结合不同的初值条件和边界条件,我们可以得到各种常微分方程或偏微分方程,而求解这些方程,就是需要很多数值分析的知识。例如,文献[4]里就针对特定的初值和边界条件,由软件求解了Navier-Stodes方程: 文献[4]专门有一章节讨论了该方程的离散化和数值求解。 微流体力学主要向两个方面发展:一方面是研究流动非定常稳定特性、分叉解及微尺寸效应下的湍流流动的机理,更为复杂的非定常、多尺度的流动特征,高精度、高分辨率的计算方法和并行算法;另一方面是将宏观流体力学的基本模型,结合微纳效应,直接用于模拟各种实际流动,解决微纳芯片生产制造中提出来的各种问题。 2)微传热方程计算: 常微分、偏微分方程的数值求解应用较为广泛的另一问题就是微流体传热问题。由传热学的相关知识,我们可以达到如下的传热学基本方程: 该方程在二维情况下经过简化和离散,可以得到如教材第三章所讲的“五点差分格式”的方程组,从而采取数值方法求解[5]。 除此之外,微结构芯片在加工和制造过程中也会有很多热学方面的问题,例如文献[6]所反映的注塑成型工艺中,就有大量的类似问题的解决。 3)微电磁学计算: 由于外加电场的作用,电渗流道中会产生焦耳热效应。许多研究者对电渗流道中的焦耳热效应进行了数值模拟研究。新加坡南洋理工大学的G. Y. Tang等在电渗流模型的基础上,考虑了与温度有关的物理系数,在固一液祸合区域内利用

数值分析5

三对角与块三对角方程组课程设计 一、基于高斯消元法的三对角方程组求解 三对角矩阵是一类重要的特殊矩阵,在数学计算和工程计算中有广泛应用。例如,二阶常微分方程边值问题数值求解,一维热传导方程数值求解,以及三次样条函数计算等都会涉及到三对角方程组求解。由于三对角矩阵的稀疏性质,用直接法求解三对角方程组的算法效率较高,很有实用价值。 考虑n 阶三对角矩阵和n 维向量 A =? ? ???? ??? ???-n n αγβαγβα122111 ,????? ???????=n f f f f 21 求解方程组 Ax = f 的高斯消元法的程序如下 function f=triGauss(gama,alpha,bata,f) %Solving TriDiag(gama,alpha,bata)systems by Gauss method n=length(alpha); for k=1:n-1 m=gama(k)/alpha(k); alpha(k+1)=alpha(k+1)-m*bata(k); f(k+1)=f(k+1)-m*f(k); end f(n)=f(n)/alpha(n); for k=n-1:-1:1 f(k)=(f(k)-bata(k)*f(k+1))/alpha(k); end 由程序知,对于n 阶三对角方程组,高斯消元法只用到 5n –4 次乘法和除法。 例1.求二阶常微分方程边值问题 ? ? ?==∈=+''-0)1(,0)0() 1,0(,y y x x y y 数值解,并与解析解:1 sinh sinh )(x x x y -=作对比。 解:对正整数n ,取h= 1/(n + 1),令x j = jh ,( j = 0,1,2,……,n+1),y j ≈ y ( x j )。由 2 1 12h y y y y j j j j +-+-≈'' 得差分方程 j j j j j x y h y y y =++-- +-2 1 12 整理,得 – y j-1 + (2 + h 2 ) y j – y j+1 = h 2 x j ( j = 1,…,n ) 根据边界条件,有 y 0 = 0,y n+1 = 0 形成三对角方程组

最新数值分析历年考题

数值分析A 试题 2007.1 第一部分:填空题10?5 1.设3112A ?? = ??? ,则A ∞=___________ 2()cond A =___________ 2.将4111A ??= ??? 分解成T A LL =,则对角元为正的下三角阵L =___________ ,请用线性最小二乘拟合方法确定拟合函数()bx f x ae =中的参数:a = ___________ b =___________ 4.方程13 cos 2044x x π--=在[0,1]上有 个根,若初值取00.95x =,迭代方法 113 cos 244 k k x x π+=-的收敛阶是 5.解方程2 210x x -+=的Newton 迭代方法为___________,其收敛阶为___________ 6.设()s x = 323 2 323,[0,1]31,[1,2] ax x x x x x bx x +-+∈--+∈为三次样条函数,则a = ___________ b =___________ 7.要想求积公式: 1 121 ()(()f x dx A f f x -≈+? 的代数精度尽可能高,参数1A = ___________ 2x =___________此时其代数精度为:___________ 8.用线性多步法2121(0.50.5)n n n n n y y h f f f ++++-=-+来求解初值问题 00'(,),(),y f x y y x y ==其中(,)n n n f f x y =,该方法的局部截断误差为___________,设 ,0,f y μμ=?其绝对稳定性空间是___________ 9.用线性多步法 2121()n n n n n y ay by h f f ++++-+=-来求解初值问题 00'(,),(),y f x y y x y ==其中(,)n n n f f x y =,希望该方法的阶尽可能高,那么a = ___________ b =___________,此时该方法是几阶的:___________

浅析数值分析在机械工程领域的应用

浅谈数值分析在机械工程领域的应用 摘要:MATLAB是目前国际上最流行的科学与工程计算的软件工具, 它具有强大的数值分析、矩阵运算、信号处理、图形显示、模拟仿真和最优化设计等功能。本文浅谈MATLAB在机械设计优化问题的几点应用。 关键词:MATLAB 约束条件机械设计优化数值分析 引言:在线性规划和非线性规划等领域经常遇到求函数极值等最优化问题,当函数或约束条件复杂到一定程度时就无法求解,而只能求助于极值分析算法,如果借助计算器进行手工计算的话,计算量会很大,如果要求遇到求解极值问题的每个人都去用BASIC,C和FORTRAN之类的高级语言编写一套程序的话,那是非一朝一日可以解决的,但如用MATLAB语言实现极值问题的数值解算,就可以避免计算量过大和编程难的两大难题,可以轻松高效地得到极值问题的数值解,而且可以达到足够的精度。 数值分析是一门研究如何在计算机上求解数学问题算法的学科,主要内容有:误差分析,插值法,数值微积分,数值代数, 矩阵计算和微分方程数值解法等, 是工科各专业大学本科及研究生中开设的一门计算量大,算法多,实践性比较强的专业课。在长期的教学实践中,数值分析课程常采用C语言进行教学和实验, 要求学生既要对算法有充分了解,又要熟练掌握C语言的语法和编程技巧, 导致学生和教师将大量的时间和精力都花在繁琐的数值计算以及对各种结果绘图上面,学习效果往往令人不满意。M a t l a b 是M a t h W o r k s 公司开发的一款以数值计算为主要特色的数学工具软件, 在数值计算领域独领风骚。其所带强大的符号运算功能, 几乎包括高等数学所涉及的运算, 如求极限、导数、微分、积分、函数的级数展开、解常微分方程等等, 并且样条工具箱中的命令调用格式极为简单方便, 对工科学生来说, 掌握起来无需费多大力气, 而对机械系等理工科系的同学,通过初步了解M a t l a b还可以进一步挖掘其强大的功能, 对学习其他课程也有帮助。本文讨论基于matlab在机械方面的数值分析。 一.数值分析方法的研究 1、数值分析方法意义

数值分析试题及答案

一、单项选择题(每小题3分,共15分) 1. 3.142和3.141分别作为π的近似数具有( )和( )位有效数字. A .4和3 B .3和2 C .3和4 D .4和4 2. 已知求积公式 ()()2 1 121 1()(2)636f x dx f Af f ≈ ++? ,则A =( ) A . 16 B .13 C .12 D .2 3 3. 通过点 ()()0011,,,x y x y 的拉格朗日插值基函数()()01,l x l x 满足( ) A . ()00l x =0, ()110l x = B . ()00l x =0, ()111l x = C .() 00l x =1,()111 l x = D . () 00l x =1,()111 l x = 4. 设求方程 ()0 f x =的根的牛顿法收敛,则它具有( )敛速。 A .超线性 B .平方 C .线性 D .三次 5. 用列主元消元法解线性方程组 1231231 220223332 x x x x x x x x ++=?? ++=??--=? 作第一次消元后得到的第3个方程( ). A . 232 x x -+= B .232 1.5 3.5 x x -+= C . 2323 x x -+= D . 230.5 1.5 x x -=- 单项选择题答案 1.A 2.D 3.D 4.C 5.B 得 分 评卷人 二、填空题(每小题3分,共15分)

1. 设T X )4,3,2(-=, 则=1||||X ,2||||X = . 2. 一阶均差 ()01,f x x = 3. 已知3n =时,科茨系数()()() 33301213,88C C C ===,那么 () 33C = 4. 因为方程()420 x f x x =-+=在区间 []1,2上满足 ,所以()0f x =在区间 内有根。 5. 取步长0.1h =,用欧拉法解初值问题 ()211y y y x y ?'=+?? ?=? 的计算公式 . 填空题答案 1. 9和29 2. ()() 0101 f x f x x x -- 3. 1 8 4. ()()120 f f < 5. ()12 00.1 1.1,0,1,210.11k k y y k k y +???? ?=+? ?=+???? =??L 得 分 评卷人 三、计算题(每题15分,共60分) 1. 已知函数 21 1y x = +的一组数据: 求分 段线性插值函数,并计算 () 1.5f 的近似值. 计算题1.答案 1. 解 []0,1x ∈, ()1010.510.50110x x L x x --=?+?=---% []1,2x ∈,()210.50.20.30.81221x x L x x --=?+?=-+--%

哈尔滨工程大学数值分析大作业2014-附fortran程序

B班大作业要求: 1. 使用统一封皮; 2. 上交大作业内容包含: 一摘要 二数学原理 三程序设计(必须对输入变量、输出变量进行说明;编程无语言要求,但程序要求通过)四结果分析和讨论 五完成题目的体会与收获 3. 提交大作业的时间:本学期最后一次课,或考前答疑;过期不计入成绩; 4. 提交方式:打印版一份;或手写大作业,但必须使用A4纸。 5. 撰写的程序需打印出来作为附录。

课程设计 课程名称: 设计题目: 学号: 姓名: 完成时间:

题目一:非线性方程求根 一 摘要 非线性方程的解析解通常很难给出,因此非线性方程的数值解就尤为重要。本实验通过使用常用的求解方法二分法和Newton 法及改进的Newton 法处理几个题目,分析并总结不同方法处理问题的优缺点。观察迭代次数,收敛速度及初值选取对迭代的影响。 用Newton 法计算下列方程 (1) 310x x --= , 初值分别为01x =,00.45x =,00.65x =; (2) 32943892940x x x +-+= 其三个根分别为1,3,98-。当选择初值02x =时给出结果并分析现 象,当6 510ε-=?,迭代停止。 二 数学原理 对于方程f(x)=0,如果f(x)是线性函数,则它的求根是很容易的。牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程f(x)=0逐步归结为某种线性方程来求解。 设已知方程f(x)=0有近似根x k (假定k f'(x )0≠) ,将函数f(x)在点x k 进行泰勒展开,有 k k k f(x)f(x )+f'(x )(x-x )+≈??? 于是方程f(x)=0可近似的表示为 k k k f(x )+f'(x )(x-x )=0 这是个线性方程,记其根为x k+1,则x k+1的计算公式为 k+1k () x =x -'() k k f x f x ,k=0,1,2,… 这就是牛顿迭代法或简称牛顿法。

数值分析整理版试题及答案

数值分析整理版试题及答案

例1、 已知函数表 x -1 1 2 ()f x -3 0 4 求()f x 的Lagrange 二次插值多项式和Newton 二次插值多项式。 解: (1)k x -1 1 2 k y -3 0 4 插值基函数分别为 ()()()()()()()()()() 1200102121()1211126 x x x x x x l x x x x x x x ----= ==-------- ()()()()()()()() ()()021******* ()1211122x x x x x x l x x x x x x x --+-= ==-+---+- ()()()()()()()()()()0122021111 ()1121213 x x x x x x l x x x x x x x --+-= ==-+--+- 故所求二次拉格朗日插值多项式为 () ()()()()()()()()()()2 20 2()11131201241162314 121123537623k k k L x y l x x x x x x x x x x x x x ==?? =-? --+?-+-+?+-????=---++-=+-∑ (2)一阶均差、二阶均差分别为

[]()()[]()()[][][]010********* 011201202303 ,11204 ,412 3 4,,5 2,,126 f x f x f x x x x f x f x f x x x x f x x f x x f x x x x x ---===-----= = =----=== --- k x ()k f x 一阶 二阶 -1 -3 1 0 3/ 2 2 4 4 5/6 故所求Newton 二次插值多项式为 ()()[]()[]()() ()()()20010012012,,,35 311126537623P x f x f x x x x f x x x x x x x x x x x x =+-+--=-+ +++-=+- 例2、 设2 ()32f x x x =++,[0,1]x ∈,试求()f x 在[0, 1]上关于()1x ρ=,{} span 1,x Φ=的最佳平方逼近多项式。 解: 若{}span 1,x Φ=,则0()1x ?=,1()x x ?=,且()1x ρ=,这样,有

工程的中的数值分析报告

《工程中的数值分析》开放性考试 题目:工程中的数值分析 分院:建筑与土木工程系 班级:14土木工程本一 姓名:陈凯 学号:14219114125 完成日期:2016年12月14日 温州大学瓯江学院教务部

二○一二年十一月制 1.1 二分法的和算法及Excel实现 原理:设函数f(x)在[a,b]上连续,且f(a)·f(b)<0由闭区间上连续函数的性质及定理2-1可知,方程(2.2)在区间(a,b)内至少有一个实根.二分法的基本思想是:逐步二分区间[a,b],通过判断两端点函数值的符号,进一步缩小有根区间,将有根区间的长度缩小到充分小,从而求出满足精度要求的根的近似值. 算法:给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下: 确定区间[a,b],验证f(a)·f(b)<0,给定精确度.求区间(a,b)的中点c.计算f(c). (1)若f(c)=0,则c就是函数的零点; (2)若f(a)·f(c)<0,则令b=c; (3)若f(c)·f(b)<0,则令a=c. (4)判断是否达到精确度ε:即若|a-b|<,则得到零点近似值a(或b),否则重复2-4. Excel实现:单元格内分别输入区间[a,b]的左右端点值,中点值=(a+b)/2,依次计算出各点代入公式的f(x)值,用IF函数比较单元格内输入“=IF(f(中点值)<0”,中点值,a)如果f(中点值)<0,则下个左端点取原来的中点值(a+b)/2. 同理“=IF(f(中点值)<0,b,中点值)”下个右端点取原来的右点值b. 如此循环往下,直至某个中点值代入f(x)得到的解满足题目要求的近似解或者零点即f(c)=0则该值则为零点。

数值分析算法在matlab中的实现

数值分析matlab实现高斯消元法: function[RA,RB,n,X]=gaus(A,b) B=[A b];n=length(b);RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0, disp('请注意:因为RA~=RB,所以此方程组无解.') return end if RA==RB if RA==n disp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1);C=zeros(1,n+1); for p=1:n-1 for k=p+1:n m=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1); end end b=B(1:n,n+1);A=B(1:n,1:n);X(n)=b(n)/A(n,n); for q=n-1:-1:1 X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q); end else disp('请注意:因为RA=RB0, disp('请注意:因为RA~=RB,所以此方程组无解.') return end if RA==RB if RA==n disp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1);C=zeros(1,n+1); for p=1:n-1

数值分析课程第五版课后习题答案(李庆扬等)

第一章 绪论(12) 1、设0>x ,x 的相对误差为δ,求x ln 的误差。 [解]设0*>x 为x 的近似值,则有相对误差为δε=)(*x r ,绝对误差为**)(x x δε=,从而x ln 的误差为δδεε=='=* ****1)()(ln )(ln x x x x x , 相对误差为* * ** ln ln ) (ln )(ln x x x x r δ εε= = 。 2、设x 的相对误差为2%,求n x 的相对误差。 [解]设*x 为x 的近似值,则有相对误差为%2)(*=x r ε,绝对误差为**%2)(x x =ε,从而n x 的误差为n n x x n x n x x n x x x ** 1 *** %2%2) ()()()(ln * ?=='=-=εε, 相对误差为%2) () (ln )(ln *** n x x x n r == εε。 3、下列各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出它们是几位有效数字: 1021.1*1=x ,031.0*2=x ,6.385*3=x ,430.56*4=x ,0.17*5 ?=x 。 [解]1021.1*1 =x 有5位有效数字;0031.0* 2=x 有2位有效数字;6.385*3=x 有4位有效数字;430.56* 4 =x 有5位有效数字;0.17*5?=x 有2位有效数字。 4、利用公式(3.3)求下列各近似值的误差限,其中* 4*3*2*1,,,x x x x 均为第3题所给 的数。 (1)* 4*2*1x x x ++; [解]3 334* 4*2*11** *4*2*1*1005.1102 1 10211021)()()()()(----=?=?+?+?=++=? ??? ????=++∑x x x x x f x x x e n k k k εεεε; (2)* 3*2 *1x x x ;

(完整版)数值分析第7章答案

第七章非线性方程求根 一、重点内容提要 (一)问题简介 求单变量函数方程 ()0f x = (7.1) 的根是指求*x (实数或复数),使得(*)0f x =.称*x 为方程(7.1)的根,也称*x 为 函数()f x 的零点.若()f x 可以分解为 ()(*)()m f x x x g x =- 其中m 为正整数,()g x 满足()0g x ≠,则*x 是方程(7.1)的根.当m=1时,称*x 为单根;当m>1时,称*x 为m 重根.若()g x 充分光滑,*x 是方程(7.1)的m 重根,则有 (1)() (*)'(*)...(*)0,(*)0m m f x f x f x f x -====≠ 若()f x 在[a,b]上连续且()()0f a f b <,则方程(7.1)在(a,b)内至少有一个实根,称[a,b]为方程(7.1)的有根区间.有根区间可通过函数作图法或逐次搜索法求得. (二)方程求根的几种常用方法 1.二分法 设()f x 在[a,b]上连续,()()0f a f b <,则()0f x =在(a,b)内有根*x .再设()0f x =在 (a,b)内仅有一个根.令00,a a b b ==,计算0001 ()2x a b =+和0()f x .若0()0f x =则*x x =,结束计算;若00()()0f a f x >,则令10,1a x b b ==,得新的有根区间11[,]a b ;若 00()()0 f a f x <,则令 10,10 a a b x ==,得新的有根区间 11[,]a b .0011[,][,]a b a b ?,11001()2b a b a -=-.再令1111 ()2x a b =+计算1()f x ,同上法得 出新的有根区间22[,] a b ,如此反复进行,可得一有根区间套 1100...[,][,]...[,] n n n n a b a b a b --????

整理工程中的数值分析

工 程 中 的 数 值 分 析 20 年月日A4打印/ 可编辑

《数值分析》 课程教学方法改革案例 1.课程简介 (1)课程类别:专业选修课程 (2)学科类别:工学--计算机科学与技术 (3)课程目标和教学内容: 解决问题的数值方法已经成为工程学乃至社会科学研究中非常重要的基础工具。《数值分析》是应用性很强的数学类课程,是工程数学与计算机应用的桥梁。该课程介绍将连续的数学模型离散化,通过计算机程序在有限步骤内求得数值近似解的方法。通过一系列的实验帮助学生掌握基本的误差分析方法、求解非线性方程和线性方程组的方法、求特征根、用插值及拟合近似计算函数值、计算近似定积分、求解微分方程的方法等。通过学习,学生将掌握经典算法的基本理论、使用技巧,并能够灵活应用以解决实际问题。 (4)教学对象:计算机与软件工程专业三年级本科学生;每年开设3个左右教学班,每班人数控制在50人以内,采用小班化教学。 (5)教学场景:课堂教学在多媒教室,实验教学在计算机实验机房。 2.课程教学重点解决的问题 工程数学领域内用到的大量数学模型,还不能直接用计算机求解,必须通过数

值方法把原始数学模型离散化,变为算法语言能认识的、有限步可解的数学模型,才可用计算机编程、运行得到数值解。《数值分析》就是以高等数学和算法语言为基础,介绍这些数值方法的来龙去脉,使学生学会基本原理,并掌握灵活实际应用的技巧。 在传统的数值分析教学活动及教材中,往往偏重理论证明和简单的手工跟踪算法实践,较少给出数值实验习题,而对如何进行数值实验,如何基于算法进行编程练习等更没有提出要求。但这是一门应用性很强的数学类的课程,因此教学过程中应特别注重实践。虽然专业软件MATLAB具有强大的计算功能,但处理一些特殊困难的问题时仍然不能保证得到好的效果,所以专业人员仍然有必要掌握对基本算法的实现能力,才能在改进算法适应性方面得心应手。 另一方面,数学的学习是锻炼科学研究能力的重要手段之一,课程本身传递的知识固然重要,更重要的是引导学生训练逻辑思维能力,掌握逻辑推理的一般方法,从而培养出科学严谨的思维习惯以及主动探索求知的精神。 3.围绕问题的教学方法改革 (1)教学实施策略与方法 针对课程教学的目标和教学中重点解决的问题,目前课程采用的教学实施策略和方法主要有:基于团队的学习组织方式、基于问题的互动教学、基于编程大作业的实践能力培养、以及基于拓展性课题的研究性学习。 1.基于团队的学习组织方式。课程采用小班教学,人数基本限定在50人以内, 第一堂课将学生分为18组,最多每3人一组。每组学生在课堂学习中座位集中(为了课堂讨论),在课外实践中分工合作完成18个拓展性课题的研究任务。

数值分析论文

题目:论数值分析在数学建模中的应用 学院: 机械自动化学院 专业: 机械设计及理论 学号: 学生姓名: 日期: 2011年12月5日

论数值分析在数学建模中的应用 摘要 为了满足科技发展对科学研究和工程技术人员用数学理论解决实际的能力的要求,讨论了数值分析在数学建模中的应用。数值分析不仅应用模型求解的过程中,它对模型的建立也具有较强的指导性。研究数值分析中插值拟合,解线性方程组,数值积分等方法在模型建立、求解以及误差分析中的应用,使数值分析作为一种工具更好的解决实际问题。 关键词 数值分析;数学建模;线性方程组;微分方程 the Application of Numerical Analysis in Methmetical Modeling Han Y u-tao 1 Bai Y ang 2 Tian Lu 2 Liu De-zheng 2 (1 College of Science ,Tianjin University of Commerce ,Tianjin ,300134 2 College of Science ,Tianjin University of Commerce ,Tianjin ,300134) Abstract In order to meet the technological scientific researchers who use mathematical theory to solve practical problems, the use of numerical analysis in mathematical modeling is discussed.Numerical analysis not only solve the model,but also relatively guide the model.Research on some numerical methods in numerical analysis which usually used in mathmetical modeling and error analysis will be a better way to solve practical problems. Key Words Numerical Analysis ;Mathematical Modeling; Linear Equations ;differential equation 1. 引言 数值分析主要介绍现代科学计算中常用的数值计算方法及其基本原理,研究并解决数值问题的近似解,是数学理论与计算机和实际问题的有机结合[1]。随着科学技术的迅速发展,运用数学方法解决科学研究和工程技术领域中的实际问题,已经得到普遍重视。数学建模是数值分析联系实际的桥梁。在数学建模过程中,无论是模型的建立还是模型的求解都要用到数值分析课程中所涉及的算法,如插值方法、最小二乘法、拟合法等,那么如何在数学建模中正确的应用数值分析内容,就成了解决实际问题的关键。 2. 数值分析在模型建立中的应用 在实际中,许多问题所研究的变量都是离散的形式,所建立的模型也是离散的。例如,对经济进行动态的分析时,一般总是根据一些计划的周期期末的指标值判断某经济计划执行的如何。有些实际问题即可建立连续模型,也可建立离散模型,但在研究中,并不能时时刻刻统计它,而是在某些特定时刻获得统计数据。例如,人口普查统计是一个时段的人口增长量,通过这个时段人口数量变化规律建立离散模型来预测未来人口。另一方面,对常见的微分方程、积分方程为了求解,往往需要将连续模型转化成离散模型。将连续模型转化成离散模型,最常用的方法就是建立差分方程。 以非负整数k 表示时间,记k x 为变量x 在时刻k 的取值,则称k k k x x x -=?+1为k x 的一阶差分,称k k k k k x x x x x +-=??=?++1222)(为k x 的二阶差分。类似课求出k x 的n 阶差分k n x ?。由k ,k x ,及k x 的差分给出的方程称为差分方程[2]。例如在研究节食与运动模型时,发现人们往往采取节食与运动方式消耗体内存储的脂肪,引起体重下降,达到减肥目的。通常制定减肥计划以周为时间单位比较方便,所以采用差分方程模型进行讨论。记第k 周末体重为)(k w ,第k 周吸收热量为)(k c ,热量转换系数α,代谢消耗系数β,在不考虑运动情况下体重变化的模型

岩土工程数值分析学习笔记(DOC)

岩土工程数值分析读书笔记 摘要:阅读笔记分为两部分:理论学习和plaxis模拟相关问题。 理论部分 0岩土工程数值分析简介 岩土工程问题解析分析是以弹塑性力学理论和结构力学作为理论依据,适用于解决连续介质、各向同性材料、未知量少、边界条件简单的工程问题,存在很大的局限性。 岩土工程问题数值分析是借助于计算机的计算能力,适用于解决材料复杂、边界条件复杂、任意荷载、任意几何形状,适用范围广。 岩土工程数值分析发展过程: 20世纪40年代,使用差分法解决了土工中的渗流及固结问题,如土坝渗流及浸润线的求法、土坝及地基的固结等。 20世纪60年代,使用有限元法成解决了土石坝的静力问题的求解。 20世纪70年代,使用有限元法解决了土石坝及高楼(包括地基)的抗震分析。 20世纪80年代,边界元法异军突起,解决了半无限域的边界问题;地基的静力及动力问题都使用边界元法得到了有效地解决。 岩土工程数值分析的方法有两类,一类方法是将土视为连续介质,随后又将其离散化,如有限单元法、有限差分法、边界单元法、有限元线法、无单元法以及各种方法的耦合。另一类计算方法是考虑岩土材料本身的不连续性,如裂缝及不同材料间界面的界面模型和界面单元的使用,离散元法,不连续变形分析,流形元法,颗粒流等数值计算方法。 1数值分析过程中存在的问题及解决措施 问题:(1)对岩土工程数值分析方法缺乏系统的知识和深入的理解,出现问题时不知道在什么情况下属于理论问题或数学模型问题;在什么情况下是属于计算方法问题或本构模型问题;在什么情况下是参数的确定问题或计算本身的问题等。 (2)各种本构模型固有的局限性。具有多相性土的物理力学性质太复杂,难以准确地用数学模型和本构模型描述。例如邓肯一张模型不能反映剪胀性,不能反映压缩与剪切的交叉影响; (3)现有的试验手段和设备不能提供适当、合理和精确的参数。靠少数样本点所获得的参数难以准确地描述整个空间场地的物理力学性能;土的参数因土样扰动难以高质量的获取,其精度很差。 (4)数学模型还会给人造成一种错觉,让人觉得其计算结果也一定会更好、更可靠。这样可能使人们忽略了精确的数学公式也照样会有出错的可能性。只有当输入参数的质量和精度很高,并能与数学模型的精度相匹配时,才有可能得到较为准确的计算结果。 措施:(1)加强对土的本构模型的教学与培训,了解和掌握各种土的本构模型的优点和局限性以及模型参数的离散性。 (2)在使用数值分析方法的同时,不断地积累使用经验,包括他人的经验。

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