2016级数值分析课程设计选题

更新时间:2024-03-21 17:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、必选题 水塔流量问题 二、自选题目

1、某厂房容积为45m?15m?6m,经测定,空气中含有0.2%的二氧化碳。开动通风设备,以360m3/s的速度输入含有0.05%的二氧化碳的新鲜空气,同时又排出同等数量的室内空气。求30min后室内二氧化碳的百分比。

(1)给出该问题的方程,并求出精确解。

(2)用Euler法、改进Euler法及四阶经典Runge-kutta求出近似解,取步长h?11(步长取30min的h?) 1010(3)比较近似解与精确解的误差,并绘出近似解与精确解的图形。 注:2-6 用到将要学的偏微分方程数值解,可到图书馆借书。) 2、已知椭圆方程第一初值问题:

?d2u??2?2u?sinx,?dx?u(0)?u(1)?0?(1)求出精确解。

0?x?1

(2)建立方程的中心差分格式,取步长h?1。 20(3)用Jacobi迭代,Gauss-Seidel迭代,SOR迭代求解差分方程。 (4)比较近似解与精确解的误差,并绘出近似解与精确解的图形。 3、求抛物方程的初边值问题的解:

?u?2u?,0?x?1,t?0?t?x2u(x,0)?sin?x,0?x?1 u(0,t)?u(1,t)?0,2t?0其精确解为u?e??tsin?x。

(1)建立向前差分格式,计算方案为:1) h?1111,??; 2) h?,?? 101001050计算到时间层t100。比较两种结果的差异,并说明原因。

(2)建立向后差分格式,用列主元消元法求解,计算方案为: h?计算到时间层t100。

1

11,??; 20200

4、求下列波动方程的初边值问题的解:

?2u?2u?,?t2?x20?x?1,t?0?u?cos?x,0?x?1 ?tu(0,t)?u(1,t)?0,t?0u(x,0)?sin?x,(精确解为u?sin?(x?t)?sin?(x?t))

建立波动方程的显格式,并计算出近似解。计算方案为: (1) h?11,??;计算t?0.5,1.0,1.5,2.0的解。 102011(2) h?,??,计算t?0.5,1.0,1.5,2.0的解。

1010?u?u?2?0,0?x?1,t?0, ?t?x5、利用显和隐的迎风格式计算

u(x,0)?1?sin2?x,0?x?1, u(1,t)?1.

计算方案为:

11,??;计算t?0.5,1.0的解,并画出图形。 105011(2) h?,??,计算t?0.5,1.0的解,并画出图形。

1020(1) h?6、数值计算三体中心构型

三体定型问题

?d2ri?2dtmj?2?r??ari ,(i?1,2,3) ?3ijj?i,j?1rij3????r?rr其中,m1?1,m2?2,m3?3;ijij;ij?ri?rj;

??ri?ri(t)是平面的二维向量值函数,自变量是时间,且二阶可导。

要求:在自己给定初值条件(初始位置和初始速度)前提下,数值模拟方程的解,并用图像展示运动的过程。

7、捕食者-被捕食者模型。非线性微分方程的一个例子是捕食者——被捕食者模型。设x(t)和y(t)分别表示兔子和狐狸在时刻t的数量。捕食者——被捕食者模

2

型表明,x(t)和y(t)满足

x?(t)?Ax(t)?Bx(t)y(t) y?(t)?Cx(t)y(t)?Dy(t)

一个典型的计算机模拟可使用系数A?2,B?0.02,C?0.0002,D?0.8. 如果

(1)x(0)=3000只兔子,y(0)=120只狐狸, (2)x(0)=5000只兔子,y(0)=100只狐狸

在区间[0,5]上用M=50步和h=0.2求解。

(用龙格-库塔方法程序求解微分方程,并画出每个近似解。) 8、微分方程求解的线性打靶法

求解区间[0,4]上的边值问题

x??(t)?2t2?x(t)?x(t)?1 1?t21?t2边值条件为x(0)=1.25和x(4)??0.95

取步长h=0.2和h=0.1,用线性打靶方法求得近似解,并与解析解

11x(t)?1.25?0.4860896526t?2.25t2?2tarctan(t)?ln(1?t2)?t2ln(1?t2)比较。

22在同一坐标系中画出近似解和真实解。

(参见John H. Mathews.《数值方法》.电子工业出版社)

9、矩阵特征值及特征向量数值解算法及比较

MATLAB提供了多种求矩阵特征值的工具,最常用的“eig”函数。“eig”函数采用QR算法,可给出矩阵全部特征值及其特征向量。常用的调用格式为:

[V,E]=eig(A)

这里A是给定的矩阵;E是对角阵,其对角元即为A的特征值;V是由A的全部特征向量组成的矩阵,其第k列即为对应E的第k个对角元的特征向量。

要求:仿造“eig”函数,编写数值方法求解矩阵特征值和特征向量的幂法、QR算法,应用编写的算法对下列具体矩阵求解特征值和特征向量,并与“eig”函数求出的结果作比较。

3

?123??01??01?测试数据:(1)A??234?,(2)A??,(3), A???????10??00?345?????10??01??20??10?(4)A??,(5),(6),(7) A?A?A??01.01??01??0?1?,?00?????????100?(8)A??010?,

????000.5??

10、有如下方程组

?61??x1??7??861??x??15????2????861??x3??15????????????=???; ????861??xn?2??15???????x861???n?1??15??????86????xn??14?要求:

(1)编写通用的程序,实现不选主元、列主元和完全主元Gauss消去法 (2)用编写的程序求解上面的方程组(n取值从120到130)

(3)对上述方程组还可以采用哪些方法求解?并且编程实现,分析比较各种算法及计算结果。 11、数值积分

给出积分(1)I??x2e?xdx,(2)I???cotxdx,(3)I??0223?43221dx。 2x?1(0)?6要求:(1)用龙贝格求积计算上述积分I的值。要求|Tk(0)时结束,?T|?10?1k输出T表及I的近似值。

(2)用5点高斯求积公式及复化3点高斯求积公式计算上述积分,并输出I的近似值。(3)分析比较各种计算结果。

12、设线性方程组Ax?b,其中系数矩阵A为80阶的Hilbert矩阵,即A的第i4

n11行第j列元素为aij?,向量b的第i个分量为bi??。

i?j?1j?1i?j?1要求:

请使用高斯消去法、列主元高斯消去法、LU分解法、列主元LU分解法、雅可比迭代法、高斯赛德尔迭代法、SOR松弛迭代法,编程求解上述线性方程组,要求小数点后取4位和7位。

对比分析各种算法及计算结果。

13、线性方程组的稳定性。体会用直接方法和迭代方法求解病态线性方程组时,各种方法的收敛性问题。

考虑方程组Hx?b的求解,其中系数矩阵H为Hilbert病态矩阵:

H?(hij)n?n,hij?1,i?j?1i,j?1,2,?,n

要求:

(1)取定右端向量b(自己定,可通过先给定解如各分量均为1,再计算出右端b),选择方程组的阶数为n = 5,分别用LU 分解方法、Jacobi、Gauss-Seidel 和 SOR 迭代方法求解方程组,各自的结果如何?将计算结果与问题的解比较,结论如何?

(2)逐步增大问题的维数(n = 10、20、30?),计算得结果如何?计算结果说明了什么?

14、用Euler法、改进Euler法、三阶Adams外插法、经典的四阶Rung-Kutta法求常微分方程

du?3udt(0?t?1),u(0)?1

的数值解,步长h?0.05。比较几个算法的精度,并与精确解作比较。 15、编制以离散点{xi}imk(x)}为基的最小二乘拟合程序,并用于?0的正交多项式{P对下列数据做三次多项式最小二乘拟合。

xi yi -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 4.552 -4.447 -0.452 0.551 0.048 -0.447 0.549 5

价格pi是该种菜肴成本ci的2倍加上两盘“免费”菜肴成本的一半计算得到的,即pi?0.5ci?1?2ci?0.5ci?1,1?i?n,c0?cn,cn?1?c1。输入菜单上每种菜肴的价格,推算出每种菜肴各自的成本。

测试时,可以先确定一组成本价,反算出每种菜肴的价格,再将价格带入程序解出成本价,并与自己预先设定的数据比较。试提高矩阵规模计算。

n27、给定n阶多项式P,求其在给定区间[a,b]中的根。 (x)?c?cx??cxn01n提示:可以用牛顿方法,但需注意牛顿法的收敛性取决于初值的选取。为了减少误差积累,计算多项式值的时候必须用秦九韶算法减少运算次数,即

nPn(x)?c0?c1x??cnx?c0?x(c1?x(c2?x(??x(cn?1?xcn))))

设计多种可能性的多项式并予以求解,考虑初始值的影响,考虑重根的影响等。其中测试p4(x)?x4?4x3?6x2?4x?1?(x?1)4,在区间[-2,0]上的根

(2)MATLAB中专用于求多项式根的函数“roots”。把你编写的函数与“roots”函数的计算结果作比较。

28、给定一函数f(x)及其导函数f?(x),要求编程采用牛顿法从给定初值出发,求出在给定区间内的一个根。

测试:(1)求sin(x)在区间[0.5,6.0]中的根,初值3.0

(2)求sin(x)在区间[0.5,6.0]中的根,初值0.5 (3)求sin(x)在区间[0.5,6.0]中的根,初值6.0 (4)求x2?1在区间[-2.0,0.0]中的根,初值为-2.0 (5)求x2?1在区间[0.0,2.0]中的根,初值为2.0 (5)求x2?1在区间[-2.0,0.5]中的根,初值为0.0 (6)求x?sin(x)在区间[-1.0,1.0]中的根,初值1.0

另MATLAB用于求根的函数主要有两个,分别是“fzero”和专求多项式根的“roots”,可把你求得的结果与“fzero”或“roots”求得的结果作比较。

11

本文来源:https://www.bwwdw.com/article/7hb8.html

Top