计算方法课程设计

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

数理学院

2014

课程

实验要求

1.应用自己熟悉的算法语言编写程序,使之尽可能具有通用性。2.上机前充分准备,复习有关算法,写出计算步骤,反复检查,调试程序。(注:在练习本上写,不上交)

3.完成计算后写出实验报告,内容包括:算法步骤叙述,变量说明,程序清单,输出计算结果,结构分析和小结等。(注:具体题目

具体分析,并不是所有的题目的实验报告都包含上述内容!)4.独立完成,如有雷同,一律判为零分!

5.上机期间不允许做其他任何与课程设计无关的事情,否则被发现一次扣10分,被发现三次判为不及格!非特殊情况,不能请

假。旷课3个半天及以上者,直接判为不及格。

目录

一、基本技能训练 (4)

1、误差分析 (4)

2、求解非线性方程 (6)

3、插值 (12)

4、数值积分 (12)

二、提高技能训练 (16)

1、 (16)

2、 (18)

三、本课程设计的心得体会(500字左右) (21)

一、基本技能训练

1、误差分析

实验1.3 求一元二次方程的根

实验目的:

研究误差传播的原因与解决对策。

问题提出:求解一元二次方程2

0ax bx c ++=

实验内容:

一元二次方程的求根公式为

x ;

1x 再

实验步骤:

方程(1):

根据求根公式,写出程序:

format long

a=1;b=3;c=-2;

x1=((-1)*b+sqrt(b^2-4*a*c))/2*a

x2=((-1)*b-sqrt(b^2-4*a*c))/2*a

运行结果:

x1 = 0.561552812808830

x2 = -3.561552812808830

然后

由符号解求的该方程的真值程序为:

syms x;

y=x^2+3*x-2;

s=solve(y,x);

vpa(s)

运行结果为:

X1= 0.56155281280883027491070492798704

X2= -3.561552812808830274910704927987

方程(2):

format long

a=1;b=-10^10;c=1;

x1=((-1)*b+sqrt(b^2-4*a*c))/2*a

x2=((-1)*b-sqrt(b^2-4*a*c))/2*a

运行结果为:

x1 = 1.000000000000000e+010

x2 = 0

然后

由符号解求的该方程的真值程序为:

syms x;

y=x^2-10^10*x+1;

s=solve(y,x);

vpa(s)

运行结果:

X1= 10000000000.0

X2= 0.000000000116415321827

由此可知,对于方程(1),使用求根公式求得的结果等于精确值,故求根公式法可靠。而对于方程(2),计算值与真值相差很大,故算法不可靠。

改进算法,对于方程(2):先用迭代法求x1,再用11a

,求x2

x x

c

程序为:

syms k

a=[ ];

for i=1:100

a(1)=4;

a(i+1)=(10^10*a(i)-1)^(1/2);

end

x1=a(100)

x2=1/(x1)

运行结果为:

x1 = 1.000000000000000e+010

x2 = 1.000000000000000e-010

实验结论:

对于方程(1)

都是精确的。

对于方程(2),求根公式的算法是不精确的。

原因:方程(2)用求根公式计算时,b -大数吃掉小数的误差,也出现了两个相近的数相减的误差,所以出现x2=0这样大的误差。改进的结果会比较准确。

2、求解非线性方程

实验2.1 Gauss 消去法的数值稳定性实验

实验目的:观察和理解高斯消元过程中出现小主元即()k kk a 很小时,引起方程组

解的数值不稳定性.

实验内容:求解线性方程组(1,2)i i A x b i == 其中

(1)15

10.31059.14315.291 6.1301211.29521211A -⎛⎫⨯ ⎪-- ⎪= ⎪ ⎪ ⎪⎝⎭,159.1746.7812b ⎛⎫ ⎪ ⎪= ⎪ ⎪⎝⎭

(2)

210701 3 2.09999999999962 5151 0102

A

-

⎛⎫

- ⎪

=

--

⎝⎭

1

8

5.9000000000001

5

1

b

⎛⎫

=

⎝⎭

实验要求:

(1)计算矩阵的条件数,判断系数矩阵是良态的还是病态的

(2)用高斯列主元消去法求得L和U及解向量

(3)用不选主元的高斯消去法求得L和U及解向量

(4)观察小主元并分析对计算结果的影响

实验步骤:

(1)计算矩阵的条件数程序:

矩阵A1:

A1=[0.3*10^(-15) 59.14 3 1;5.291 -6.130 -1 2;11.2 9 5 2;1 2 1 1];

cond(A1,1)

cond(A1,2)

cond(A1,inf)

运行结果:

ans = 136.294470872045e+000

ans = 68.4295577125341e+000

ans = 84.3114602051800e+000

由矩阵条件数判断出矩阵A1是病态矩阵。

矩阵A2:

A2=[10 -7 0 1;-3 2.0999******* 6 2;5 -1 5 -1;0 1 0 2];

cond(A1,1)

cond(A1,2)

cond(A1,inf)

运行结果:

ans = 19.2831683168042e+000

ans = 8.99393809015365e+000

ans = 18.3564356435280e+000

由矩阵条件数判断出矩阵A2是病态矩阵。

(2)高斯列主元消去法程序:

方程组(1):

A1=[0.3*10^(-15) 59.14 3 1;5.291 -6.130 -1 2;11.2 9 5 2;1 2 1 1];

相关文档
最新文档