数值分析报告 (李庆扬版)
《数值分析-李庆杨》第1章 引言

结束
将[0,1]分为4等分,分别计算4个小曲边梯形的面积的 近似值,然后加起来作为积分的近似值(如图1-1).记被积 函数为 f(x) ,即 f ( x ) 1 1 x
1 h , xi ih, i 0,1,2,3 4
f ( xi ) f ( xi 1 ) Ti h 2
结束
1.2.2 误差的基本概念 定义1 绝对误差,简称误差: e* x * x, 其中x为准确值 , x *为准确值x的近似值 .
. 误差限: * | e* | 的一个上界
例如,毫米尺 765 x 0.5
在工程中常记为:x= x*± * .
如
l=10.2±0.05mm
,R=1500±100Ω
在科学研究、工程实践和经济管理等工作中,存在大 量的科学计算、数据处理等问题.应用计算机解决数值计算 问题是理工科研究生应当具备的基本能力.
§1.1
算法
解决某类数学问题的数值方法称为算法.为使算法能 在计算机上实现,它必须将一个数学问题分解为有限 次的+、-、×、÷运算和一些简单的基本函数运算.
结束
§ 1.2 误差
1.2.1 误差的来源 在运用数学方法解决实际问题的过程中,每一步都可 能带来误差. 1、模型误差 在建立数学模型时,往往要忽视很多次要因 素,把模型“简单化”,“理想化”,这时模型就与真实 背景有了差距,即带入了误差.
2、测量误差 数学模型中的已知参数,多数是通过测量得 到 . 而测量过程受工具、方法、观察者的主观因素、不可 预料的随机干扰等影响必然带入误差.
例3 多项式求值。
2 P ( x ) a a x a x n 0 1 2
an xn
1.4
数值分析课程第五版课后习题答案(李庆扬等)

数值分析课程第五版课后习题答案(李庆扬等)数值分析课程第五版课后习题答案(李庆扬等)第一章:数值分析导论1. 解答:数值分析是一门研究如何使用计算机来解决数学问题的学科。
它包括了从数学理论到计算实现的一系列技术。
数值分析的目标是通过近似的方式求解数学问题,其结果可能不是完全精确的,但是能够满足工程或科学应用的要求。
2. 解答:数值分析在实际应用中起着重要的作用。
它可以用于求解复杂的数学方程、计算机模拟及建模、数据的统计分析等等。
数值分析是科学计算和工程计算的基础,对许多领域都有着广泛的应用,如物理学、经济学、生物学等。
3. 解答:数值方法指的是使用数值计算的方式来求解数学问题。
与解析方法相比,数值方法一般更加灵活和高效,可以处理一些复杂的数学问题。
数值方法主要包括了数值逼近、插值、数值积分、数值微分、线性方程组的求解、非线性方程的求根等。
4. 解答:计算误差是指数值计算结果与精确解之间的差异。
在数值计算中,由于计算机的有限精度以及数值计算方法本身的近似性等因素,都会导致计算误差的产生。
计算误差可以分为截断误差和舍入误差两种。
第二章:数值误差分析1. 解答:绝对误差是指实际值与精确值之间的差异。
例如,对于一个计算出的数值近似解x和精确解x_0,其绝对误差为| x - x_0 |。
绝对误差可以衡量数值近似解的精确程度,通常被用作评估数值计算方法的好坏。
2. 解答:相对误差是指绝对误差与精确解之间的比值。
对于一个计算出的数值近似解x和精确解x_0,其相对误差为| (x - x_0) / x_0 |。
相对误差可以衡量数值近似解相对于精确解的精确度,常用于评估数值计算方法的收敛速度。
3. 解答:舍入误差是由于计算机的有限精度而引起的误差。
计算机中使用的浮点数系统只能表示有限的小数位数,因此在进行数值计算过程中,舍入误差不可避免地会产生。
舍入误差会导致计算结果与精确结果之间存在差异。
4. 解答:误差限度是指对于给定的数值计算问题,所能容忍的误差范围。
数值分析 清华李庆杨第五版HEMIT插值(课外)

• 求一个次数不高于2n+1次的插值多项式H(x)满足2n+2个条件
• 若H(x)存在,则叫函数f(x) 的Hermite插值多项式.因为 H(x)是一个 次数不高于2n+1次的多项式,常记为H2n+1(x).
3
定理一:满足插值条件 H(xi)= yi H'(xi)= y'i i=0,1,2……n 且次数不大于2n+1的多项式是唯一的。
• p(x)= y0(1-x2 )+ y1 x2+ y0′(1-x)x y(3)() • 其余项表达式为 R(x)= -------- (1-x) x2
• • . 上一页
3! 主页
12
• 上一页
主页
下一页
6
• •
设Hermite插值函数
n n
• H2n+1(x) = Li(x) yi + hi(x) y'i i=0 i=0 • • Li(x),hi(x)都是不高于2n+1次的多项式,类似Lagrange插 值,利用Hermite插值条件可得 • Li(xj)=ij hi(xj) = 0 • L'i(xj)=0 h'i(xj)= ij i,j=0,1,2……n • 从而可设 • Li(x)= (aix+bi)[li(x)]2 • hi(x)= (cix+di)[li(x)]2
10
实际问题中还会有其他的插值问题,这类问题可用Lagrange 插值基函数的方法解决.如已知数据表: x 0 1 y y0 y1 y′ y0′ 求过0,1两点构造一个插值多项式p(x),满足条件 p(0)= y0 , p′(0)= y0′ , p(1)= y1 解: 他有三个条件,故p(x)可设为二次多项式 p(x)= y0 L0(x)+ y1 L1(x) + y0′ h0(x) 这里L0(x), L1(x), h0(x)都是二次多项式,由插值条件得 对 x=x0=0有 L0(0)=1 L1(0)=0 h0(0)=0 L0′(0)=0 L1′(0)=0 h0′(0)=1 对 x=x1=1有 L0(1)=0 L1(1)=1 h0(1)=0 上一页 主页 下一页
数值分析报告第五版_李庆扬_王能超_易大义主编课后习题问题详解

第一章 绪论1.设0x >,x 的相对误差为δ,求ln x 的误差。
解:近似值*x 的相对误差为*****r e x xe x x δ-=== 而ln x 的误差为()1ln *ln *ln **e x x x e x =-≈进而有(ln *)x εδ≈2.设x 的相对误差为2%,求nx 的相对误差。
解:设()nf 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 ε∴≈3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指出它们是几位有效数字:*1 1.1021x =,*20.031x =, *3385.6x =, *456.430x =,*57 1.0.x =⨯ 解:*1 1.1021x =是五位有效数字; *20.031x =是二位有效数字; *3385.6x =是四位有效数字; *456.430x =是五位有效数字; *57 1.0.x =⨯是二位有效数字。
4.利用公式(2.3)求下列各近似值的误差限:(1) ***124x x x ++,(2) ***123x x x ,(3) **24/x x .其中****1234,,,x x x x 均为第3题所给的数。
解:*41*32*13*34*151()1021()1021()1021()1021()102x x x x x εεεεε-----=⨯=⨯=⨯=⨯=⨯***124***1244333(1)()()()()1111010102221.0510x x x x x x εεεε----++=++=⨯+⨯+⨯=⨯ ***123*********123231132143(2)()()()()1111.10210.031100.031385.610 1.1021385.6102220.215x x x x x x x x x x x x εεεε---=++=⨯⨯⨯+⨯⨯⨯+⨯⨯⨯≈**24****24422*4335(3)(/)()()110.0311056.430102256.43056.43010x x x x x x xεεε---+≈⨯⨯+⨯⨯=⨯=5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少? 解:球体体积为343V R π=则何种函数的条件数为23'4343p R V R R C V R ππ===(*)(*)3(*)r p r r V C R R εεε∴≈=又(*)1r V ε=故度量半径R 时允许的相对误差限为1(*)10.333r R ε=⨯≈6.设028Y =,按递推公式1n n Y Y -=-(n=1,2,…)计算到100Y 27.982≈(5位有效数字),试问计算100Y 将有多大误差?解:1n n Y Y -=10099Y Y ∴=9998Y Y =9897Y Y =……10Y Y =依次代入后,有1000100Y Y =-即1000Y Y =,27.982≈, 100027.982Y Y ∴=-*310001()()(27.982)102Y Y εεε-∴=+=⨯100Y ∴的误差限为31102-⨯。
数值分析李庆杨版

三、避免误差危害的若干原则
除了分清问题是否病态和算法是否数值稳定外,还要 考虑避免误差危害和防止有效数字损失的如下原则. 1.避免‘大数’除以‘小数’ 例6 仿计算机,采用3位十进制,用消元法求解方程组
1.0010 x 1.00 y 1.00 解: x得, 消 (1.00 1.00105 ) y (2.00 1.00105 )
100 100 项 项 123 0.01 0.01 0.01 0.01 0.01 0.01 123
4.减少运算次数 减少运算次数可以不但节省时间,而且减少舍入误差. 例10 计算多项式的值
Pn ( x) an x n an1x n1 a1x a0 .
* *
§3 误差定性分析、避免误差危害
误差分析简介 概率分析法 向后误差分析法
x g (a1,, an ), x fl g (a1 1,, an n ).
区间分析法
x [ , ], y [ , ], xy
* r 0.005/9.80 0.000005/ 0.00980.
定理1设近似数x * 表示为
x* 10m (a1 a2 101 al 10(l 1) )
* r
(2.1)
其中a1 0 . 若x * 具有n位有效数字,则其相对 误差限为 1 10( n1); 2a1
数值分析
第1章
一、什么是数值分析绪论 Nhomakorabea§1 数值分析的研究对象与特点
数值分析是计算数学的一个主要部分,计算数学是数 学科学的一个分支,它研究用计算机求解各种数学问题 的数值计算方法及其理论与软件实现. 实际问题→数学模型→数值计算方法 →程序设计→上机计算求出结果
李庆扬数值分析第五版习题答案解析清华大学出版社

又
即计算值比准确值大。
故 在 内至少有三个互异零点,
依此类推, 在 内至少有一个零点。
记为 使
又
其中 依赖于
分段三次埃尔米特插值时,若节点为 ,设步长为 ,即
在小区间 上
16.求一个次数不高于4次的多项式P(x),使它满足
解:利用埃米尔特插值可得到次数不高于4的多项式
设
其中,A为待定常数
从而
17.设 ,在 上取 ,按等距节点求分段线性插值函数 ,计算各节点间中点处的 与 值,并估计误差。
19。观测物体的直线运动,得出以下数据:
时间t(s)
0
0.9
1.9
3.0
3.9
5.0
距离s(m)
0
10
30
50
80
110
求运动方程。
解:
被观测物体的运动距离与运动时间大体为线性函数关系,从而选择线性方程
令
则
则法方程组为
从而解得
故物体运动方程为
20。已知实验数据如下:
19
25
31
38
44
19.0
32.3
将 代入得
由此得矩阵开工的方程组为
求解此方程组,得
又 三次样条表达式为
将 代入得
21.若 是三次样条函数,证明:
若 ,式中 为插值节点,且 ,则
证明:
从而有
第三章 函数逼近与曲线拟合
1. ,给出 上的伯恩斯坦多项式 及 。
解:
伯恩斯坦多项式为
其中
当 时,
当 时,
2.当 时,求证
证明:
若 ,则
3.证明函数 线性无关
解:
采用复化梯形公式时,余项为
数值分析第五版_李庆扬

数值分析第五版_李庆扬数值分析第五版_李庆扬一、课程基本信息课程中文名称:数值分析课程英文名称:Numerical Analysis课程类别:专业基础课开课学期:秋适用专业:信息与计算科学;应用数学总学时:86学时(其中理论课56学时,上机实习30学时)总学分:5(理论课3学分;上机实习2学分)预修课程(编号):数学分析,高等代数,常微分方程课程简介:本课程是大学本科信息与计算科学和应用数学专业的一门基础课,也是工科研究生的必修课。
本课程的主要内容是研究各种数学问题的数值计算方法的设计、计算误差分析以及有关理论和具体实现的一门数学课程。
是应用数学的重要分支之一。
建议教材:《计算方法》(二版)(邓建中、刘之行),西安,西安交通大学出版社,2001 参考书:[1]数值分析学习指导,关治编,出版社:清华大学出版社,出版时间:2008年;[2]数值分析,何汉林,梅家斌,科学出版社,2007年;[3]《数值计算引论》白峰杉高等教育出版社 2005年[4]《数值分析》(第五版)李庆扬易大义等清华大学出版社2008年[5]Numerical Analysis,R.Kress,世界图书出版公司20036、数值分析学习辅导习题解析,李宏、徐长发编,华中科技大学出版社,2001年。
二、理论课程教育目标通过本课程的教学使学生能了解现代科学计算中常用的数值计算方法及其基本理论,系统掌握数值分析的基本概念和分析问题、解决问题的基本方法,为运用数值分析的理论知识并为掌握更复杂的现代计算方法打好。
三、理论教学内容与要求(含学时)第一章:计算方法的一般概念(4学时)本章教学内容:理解计算方法的意义、研究内容与方法,理解并掌握误差的概念(包括误差的来源、绝对误差、相对误差),掌握有效数字及舍入误差对计算的影响。
第二章:解线性方程组的直接法(8学时)本章教学内容:1、高斯消去法;选主元的高斯消去法;2、矩阵的LR分解;解三对角方程组的追赶法;解方程组的平方根法;矩阵的求逆;3、方程组的数;病态方程组的判断。
数值分析_清华李庆杨第五版第四章_数值积分

式有3次代数精度。下面以梯形公式为例进行验证
b
a
ba f (a) f (b) f ( x) dx 2
b
取f(x)=1时, a 1dx b a, 取f(x)=x时,
1 2 2 a xdx 2 (b a ),
b
ba (1 1) b a 2
两端相等
ba 1 2 2 (a b) (b a ) 2 2
两端相等
取f(x)=x2 时,
b
a
1 3 ba 2 1 2 3 2 x dx (b a ), (a b ) (a b 2 )( b a) 3 2 2
2
两端不相等
所以梯形公式只有1次代数精度。
例4.2 试确定一个至少具有2次代数精度的公式
y y=f(x)
在这三个公式中, 梯形公式 把f(a), f(b)的加权平均值
1 f (a) f (b) 作为平均高度 2
a a
(a+b)/2 (a+b)/2
b b
f()的近似值而获得的一种数值积分方法。
中矩形公式把[a,b] 的中点处函数值
f (
a b ) 2
作为平均高度f()的近似值而获得的一种数值积 分方法。
n j k
x xj
这里
( x) ( x x0 )(x x1 )( x xn )
多项式P(x)易于求积,所以可取
b
a
f ( x)dx 的近似值,即
b
a
P( x)dx 作为
b
a
f ( x)dx
n
数值分析第五版_李庆扬__课后习题答案

第一章 绪论1.设0x >,x 的相对误差为δ,求ln x 的误差。
解:近似值*x 的相对误差为*****r e x x e x x δ-=== 而ln x 的误差为()1ln *ln *ln **e x x x e x =-≈ 进而有(ln *)x εδ≈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 ε∴≈3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指出它们是几位有效数字:*1 1.1021x =,*20.031x =, *3385.6x =, *456.430x =,*57 1.0.x =⨯解:*1 1.1021x =是五位有效数字; *20.031x =是二位有效数字; *3385.6x =是四位有效数字; *456.430x =是五位有效数字; *57 1.0.x =⨯是二位有效数字。
4.利用公式(2.3)求下列各近似值的误差限:(1) ***124x x x ++,(2) ***123x x x ,(3) **24/x x . 其中****1234,,,x x x x 均为第3题所给的数。
解:*41*32*13*34*151()1021()1021()1021()1021()102x x x x x εεεεε-----=⨯=⨯=⨯=⨯=⨯***124***1244333(1)()()()()1111010102221.0510x x x x x x εεεε----++=++=⨯+⨯+⨯=⨯ ***123*********123231132143(2)()()()()1111.10210.031100.031385.610 1.1021385.6102220.215x x x x x x x x x x x x εεεε---=++=⨯⨯⨯+⨯⨯⨯+⨯⨯⨯≈**24****24422*4335(3)(/)()()110.0311056.430102256.43056.43010x x x x x x xεεε---+≈⨯⨯+⨯⨯=⨯=5计算球体积要使相对误差限为1,问度量半径R 时允许的相对误差限是多少?解:球体体积为343V R π=则何种函数的条件数为23'4343p R V R R C V R ππ===(*)(*)3(*)r p r r V C R R εεε∴≈= 又(*)1r V ε=故度量半径R 时允许的相对误差限为1(*)10.333r R ε=⨯≈6.设028Y =,按递推公式1n n Y Y -= (n=1,2,…)计算到100Y 27.982≈(5位有效数字),试问计算100Y 将有多大误差?解:1n n Y Y -=10099Y Y ∴=-9998Y Y =9897Y Y =……10Y Y =-依次代入后,有1000100Y Y =-即1000Y Y =27.982≈, 100027.982Y Y ∴=-*310001()()(27.982)102Y Y εεε-∴=+=⨯100Y ∴的误差限为31102-⨯。
数值分析课程第五版课后习题答案(李庆扬等)(OCR)

根是x,,2…,x-,且V。x,x…·,x)=V,Cx6,x…·)(x-x)…(x-x)。
V,(xo,x,…x-x)=11】 -x,)用a-x,)
[证明]由
可得求证。
=V,(Cx8,x,…,xX))11(x-x)
2、当x=1-1,2时,f(x)=0,-3.4,求f(x)的二次插值多项式。
L,(x)=y%((xx6--xx,)((xx-2x-x22))
y=f(x)=f0.5)=-0.693147,y2=f(x)=f(0.6)=-0.510826,则
L2(x)=y。 (x-x)(x-x2)
(x6-x)x-x)
(x-x)(x-x)
(x-x)(x-x2)
(x-xo)(x-x) (x2-xo)(x2-x)
=-0.916291×.(0(.x4-0-.05.)5()x(-00..64)-0.6-.
30—+2—9.x9583x31 ̄02'=0.8336×104
14、试用消元法解方程x组1+10"x=100
x+x2=2
,假定只有三位数计算,问结果是否
可靠?
[解]精确解为x1=0100-*1 10"-2 ,当使用三位数运 算时,得到
x =1,x2=1,结果可靠。
15、已知三角形面积s=s去= absinc,其中c为弧度,0<c< 且测量a,b,c
位有效数字;x=56.430有5位有效数字;x=7×10有2位有效数字。 4、利用公式(3.3)求下列各近似值的误差限,其中x,x;,x,x;均为第3题所给
的数。
(1)x+x2+x:
e(x+x写+x)=>
[解]
E(x)=E(x)+E(x)+E(x;)
3+tx10=1.05×103
(2)xxx;
李庆扬 数值分析第五版 习题答案

第2章 复习与思考题01ii i ii kx x x x 的基函数称为主要性质有 0,()1,k i kx i k()1n l x、什么是牛顿基函数?它与单项式基答:牛顿差值基函数为00101x ),(x x )(x x ),...,(x x )(x x )...(x x )}n 牛顿差值基函数中带有常数项01,,...n x x x ,这有单项式基不同。
阶均差?它有何重要性质 01n 2n 01n 2n -11[,,...,,][,,...,,]n n f x x x f x x x x x xk j 0j 0j-1j j+1j -k x x x x x x x ()...()()...()和k 阶均差的性质0101k-10[,,...,][,,...,]k kf x x x f x x x x x (分子前项多xk )[a,b]上存在阶导数,且节点2n ,[a,b]x ,则1()!f n0()nn n ik k kk k i i ki kx x y l x y x x ,(j 1,2,....,n)个点的牛顿插值多项式01[,,...,]k f x x x ,(k 1,2,....,n)两者的主要差异是未知数不一致。
拉格朗日插值多项式是系数知道,但基函数不知道。
牛顿插值多项式是函数知道,但系数不知道。
与一般多项式基本相同。
y ,其中系数矩阵用下列基底作多项式插值时,120001211112222121...1...1 (1)...n n n n n nnx x x x x x x x x x x x ,无非零元素。
)拉格朗日基底为01{(),(),...,()}n l x l x l x ,已知数为未知数为01{(),(),...,()}n l x l x l x ,则系数矩阵为00101x ),(x x )(x x ),...,(x x )(x x )...(x x )}n ,已,未知数为012{,,,...,}n a a a a ,则系数矩阵为102020211010100...010...01()()...0...............1()()...()n nnnnj j x x x x x x x x x x x x x x x x ,为下三角矩阵,矩阵的上三角元0。
数值分析课程第五版课后习题答案(李庆扬等)

第一章 绪论(12)1、设0>x ,x 的相对误差为δ,求x ln 的误差。
[解]设0*>x 为x 的近似值,则有相对误差为δε=)(*x r ,绝对误差为**)(x x δε=,从而x ln 的误差为δδεε=='=*****1)()(ln )(ln x xx x x , 相对误差为****ln ln )(ln )(ln x x x x rδεε==。
2、设x 的相对误差为2%,求n x 的相对误差。
[解]设*x 为x 的近似值,则有相对误差为%2)(*=x r ε,绝对误差为**%2)(x x =ε,从而nx 的误差为nn x x nxn x x n x x x **1***%2%2)()()()(ln *⋅=='=-=εε,相对误差为%2)()(ln )(ln ***n x x x nr==εε。
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 ++;[解]3334*4*2*11***4*2*1*1005.1102110211021)()()()()(----=⨯=⨯+⨯+⨯=++=⎪⎪⎭⎫ ⎝⎛∂∂=++∑x x x x x f x x x e nk k k εεεε;(2)*3*2*1x x x ;[解]52130996425.010********.2131001708255.01048488.2121059768.01021)031.01021.1(1021)6.3851021.1(1021)6.385031.0()()()()()()()()(3333334*3*2*1*2*3*1*1*3*21***3*2*1*=⨯=⨯+⨯+⨯=⨯⨯+⨯⨯+⨯⨯=++=⎪⎪⎭⎫⎝⎛∂∂=-------=∑x x x x x x x x x x x f x x x e n k k kεεεε;(3)*4*2/x x 。
数值分析(李庆扬)第七章)

x1 x* x2 x*
x0 x* x1 x*
x*
x2
( x2 x1 )2 x0 2x1 x2
此种加速需用两次迭代值进行加工。 (P273)
如果将一次改进值作为一步,
则计算公式如下:
校正 再校正
改进
x% k 1 ( xk )
xk 1 ( x% k 1)
xk 1
xk 1
( xk 1 x% k 1 )2 xk 1 2 x% k 1 xk
证:因 ' ( x)在O(x*, * )内连续,且 ' ( x) 1, 故存 在正数L 1, *, 使得对x [x* , x* ],有
' (x) L 1 另一方面,由 (x* ) x*, 又有
(x) x* (x) (x*) L x x* 即 (x) [x* , x* ]。由上面定理知,迭代序列 xn1 ( xn )收敛于x*。
1), 若
f
a
b 2
0
输出根
x
ab 2
, 否则:若
f
a
2
b
0,
令
a1
a
2
b
,b1
b
反之
ab b1 2 , a1 a.
2 ),对 [ a1 ,b1 ] 区间重复1)的计算,并产生 [ a2 ,b2 ],
3),
若
f
ai
2
bi
0,则得到根
x ai bi . 2
二分法的收敛性
二分法产生一个有根区间:
f (2) 1 0
[1.5, 2] 为有根区间。
(1)x x 1 1(x) 因 1.5 1.5 1 1(x) 2 1 2
且
1' (x) 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值分析》作业学院:机械学院专业:机械工程姓名:赵博学号:2014520024日期:2015年6月29日第二章作业问:用线性插值及二次插值计算ln0.54的近似值。
答:VB程序如下:Option ExplicitSub czfl(ByRef x() As Single, y() As Single, n As Integer, x1 As Double, f As Double) Dim i, j As IntegerDim p As SingleDim appexcel As ObjectDim wbmybook As ObjectDim wsmysheet As ObjectSet appexcel = CreateObject("excel.application")Set wbmybook = appexcel.workbooks.AddSet wsmysheet = appexcel.worksheets.Addf = 0For i = 0 To np = 1For j = 0 To nIf i <> j Thenp = p * (x1 - x(j)) / (x(i) - x(j))End IfNext jwsmysheet.cells(i + 1, 1) = Str(p)wsmysheet.cells(i + 1, 2) = Str(p * y(i))f = f + p * y(i)Next iwsmysheet.cells(n + 1, 3) = "最终结果" + Str(f)appexcel.Visible = TrueEnd SubPrivate Sub Command1_Click(Index As Integer)Dim x() As SingleDim y() As SingleDim n As IntegerDim k As IntegerDim f As Doublek = 0n = V al(Text1.Text)ReDim x(n)ReDim y(n)Open "czfl.txt" For Output As #1Print #1, Text3.TextClose #1Open "czfl.txt" For Input As #1Do While Not EOF(1)Input #1, x(k), y(k)'Print x(k), y(k)k = k + 1LoopClose #1Select Case IndexCase 0Call czfl(x(), y(), Text1.Text, Text2.Text, f)Case 1Call czfnt(x(), y(), Text1.Text, Text2.Text, f)End SelectEnd SubSub czfnt(ByRef x() As Single, y() As Single, n As Integer, x1 As Double, f As Double)Dim i, j As IntegerDim k, l As IntegerDim s As DoubleDim appexcel As ObjectDim wbmybook As ObjectDim wsmysheet As ObjectSet appexcel = CreateObject("excel.application")Set wbmybook = appexcel.workbooks.AddSet wsmysheet = appexcel.worksheets.Addf = y(0)s = 1For j = 1 To nFor i = n To j Step -1y(i) = (y(i) - y(i - 1)) / (x(i) - x(i - j))wsmysheet.cells(i, j) = Str(y(i))Next iNext jFor k = 1 To ns = s * (x1 - x(l))f = f + s * y(k)Next kwsmysheet.cells(n, n + 1) = "最终结果" + Str(f)appexcel.Visible = TrueEnd Sub结果:1.线性插值0.6 -0.415890.4 -0.20433 最终结果-.620218614056672 2.二次插值-0.12 0.1099550.84 -0.582240.28 -0.14303 最终结果-.615319814966043第三章作业求运动方程。
答:vb程序如下:(窗体见工程文件)Option ExplicitOption Base 1Sub lufj(n As Integer, a() As Single, b() As Single) Dim i As Integer, j As Integer, k As IntegerDim s As SingleFor i = 2 To na(i, 1) = a(i, 1) / a(1, 1)Next iFor i = 2 To nFor j = i To ns = 0For k = 1 To i - 1s = s + a(i, k) * a(k, j)Next ka(i, j) = a(i, j) - sNext jFor j = i + 1 To ns = 0For k = 1 To i - 1s = s + a(j, k) * a(k, i)Next ka(j, i) = (a(j, i) - s) / a(i, i)Next jNext iFor i = 1 To ns = 0For j = 1 To i - 1s = s + a(i, j) * b(j)Next jb(i) = b(i) - sNext iFor i = n To 1 Step -1s = 0For j = i + 1 To ns = s + a(i, j) * b(j)Next jb(i) = (b(i) - s) / a(i, i)Next iEnd SubSub dxnh(n As Integer, m As Integer, x() As Single, y() As Single, a() As Single, c() As Single)Dim i As Integer, j As Integer, k As SingleDim s As SingleFor i = 1 To m + 1For j = i To m + 1s = 0For k = 1 To ns = s + x(k) ^ (i + j - 2)Next ka(i, j) = sa(j, i) = sNext jNext iFor i = 1 To m + 1s = 0For k = 1 To ns = s + y(k) * x(k) ^ (i - 1)Next kc(i) = sNext iFor i = 1 To m + 1a(i, m + 2) = c(i)Next iCall lufj(m + 1, a(), c())End SubSub xy(n As Integer, x() As Single, y() As Single, z() As Single, a As Single, b As Single)Dim sum As Single, sumx As Single, sumy As SingleDim sumxy As Single, sumxx As SingleDim xav As Single, yav As Single, i As IntegerFor i = 1 To nsum = sum + z(i)sumx = sumx + x(i) * z(i)sumy = sumy + y(i) * z(i)sumxy = sumxy + x(i) * y(i) * z(i)sumxx = sumxx + x(i) ^ 2 * z(i)Next ixav = sumx / sumyav = sumy / sumb = (sum * sumxy - sumx * sumy) / (sum * sumxx - sumx ^ 2)a = yav -b * xavEnd SubPrivate Sub Combo1_Click()Dim Index As IntegerIndex = Combo1.ListIndexSelect Case (Index)Case 0:Command2.Visible = FalseLabel4.Visible = FalseText3.Visible = FalseLabel1.Caption = "请输入实验数据x(i),y(i),及每组数据出现的次数z(i):n=1,2,3,4,5...如:"Text1.Text = "3.2,4,2" & vbCrLf & "3.7,4.5,4"Label3.Visible = TrueText2.Visible = TrueCommand1.Visible = TrueCase 1:Command1.Visible = FalseText2.Text = "0"Text3.Text = "0"Label1.Caption = "请输入实验数据x(i),y(i):n=1,2,3,4,5...如:"Text1.Text = "3.2,4" & vbCrLf & "3.7,4.5"Label3.Visible = TrueText2.Visible = TrueLabel4.Visible = TrueText3.Visible = TrueCommand2.Visible = TrueEnd SelectEnd SubPrivate Sub Command1_Click()Dim x() As Single, y() As Single, z() As SingleDim n As Integer, i As IntegerDim b As Single, a As SingleDim appexcel As ObjectDim wbmybook As ObjectDim wsmysheet As ObjectSet appexcel = CreateObject("excel.application")Set wbmybook = appexcel.workbooks.AddSet wsmysheet = appexcel.worksheets.AddOpen "shuju.txt" For Output As #1Print #1, Text1.TextClose #1n = V al(Text2.Text)Open "shuju.txt" For Input As #1ReDim x(n)ReDim y(n)ReDim z(n)For i = 1 To nInput #1, x(i), y(i), z(i)wsmysheet.cells(1, i) = Str(x(i))wsmysheet.cells(2, i) = Str(y(i))wsmysheet.cells(3, i) = Str(z(i))Next iClose #1Call xy(n, x(), y(), z(), a, b)Open "yicijigeuo.txt" For Output As #1Print #1, "所求的一元线性拟合方程为:" + "Y="; a; "+"; b; "X"Close #1wsmysheet.cells(4, n + 1) = "最终结果:" + "Y=" + Str(a) + "+" + Str(b) + "X" appexcel.Visible = TrueEnd SubPrivate Sub Command2_Click()Dim x() As Single, y() As Single, a() As Single, c() As SingleDim i As Integer, j As Integer, m As Integer, n As Integer, fstr As Stringn = V al(Text2.Text)m = V al(Text3.Text)Dim appexcel As ObjectDim wbmybook As ObjectDim wsmysheet As ObjectSet appexcel = CreateObject("excel.application")Set wbmybook = appexcel.workbooks.AddSet wsmysheet = appexcel.worksheets.AddOpen "shuju.txt" For Output As #1Print #1, Text1.TextClose #1Open "shuju.txt" For Input As #1ReDim x(n)ReDim y(n)ReDim c(m + 1)ReDim a(m + 1, m + 2)For i = 1 To nInput #1, x(i), y(i)wsmysheet.cells(1, i) = Str(x(i))wsmysheet.cells(2, i) = Str(y(i))'Print x(i); y(i)'PrintNext iClose #1Call dxnh(n, m, x(), y(), a(), c())fstr = "Y="For i = 1 To m + 1wsmysheet.cells(3, i) = Str(c(i))If i = m + 1 Thenfstr = fstr + Str(c(i)) & "x^" & (i - 1)Elsefstr = fstr + Str(c(i)) & "x^" & (i - 1) & "+"End IfNext iOpen "duocijigeuo.txt" For Output As #1Print #1, "所求的多次拟合方程为:" + fstr Close #1wsmysheet.cells(4, n + 1) = "最终结果:" + fstr appexcel.Visible = TrueEnd SubPrivate Sub Form_Load()Label1.Caption = "下面的文本框为实验数据输入框"Combo1.AddItem "一次线性拟合", 0Combo1.AddItem "多项式拟合", 1End Sub结果:一次多项式拟合结果第四章作业P135_2.(1).分别用梯形公式和辛普森公式计算下列积分12 0,84xdx n x= +⎰答:vb程序如下:Option ExplicitDim index As IntegerPrivate Sub Combo1_Click()index = Combo1.ListIndexSelect Case (index)Case 0:Label3.Visible = TrueText1.Visible = TrueLabel1.Caption = "你选择的是复化梯形求积公式" Case 1:Label3.Visible = TrueText1.Visible = TrueLabel1.Caption = "你选择的是复化辛普森积公式" Case 2:Label3.Visible = FalseText1.Visible = FalseLabel1.Caption = "你选择的是柯斯特求积公式" End SelectEnd SubPrivate Sub Command1_Click()Dim a, b As IntegerDim f As DoubleDim n As Integera = 0b = 1n = V al(Text1.Text)Select Case (index)Case 0:Call tx(a, b, f, n)Case 1:Call xps(a, b, f, n)Case 2:Call kst(a, b, f)End SelectEnd SubSub tx(ByRef a, b, f1 As Double, n As Integer) Dim i As IntegerDim c() As DoubleDim sum As DoubleDim h As DoubleReDim c(n - 1)Dim appexcel As ObjectDim wbmybook As ObjectDim wsmysheet As ObjectSet appexcel = CreateObject("excel.application") Set wbmybook = appexcel.workbooks.AddSet wsmysheet = appexcel.worksheets.Add wsmysheet.cells(1, 1) = Str(a)wsmysheet.cells(1, 2) = Str(f(a)) wsmysheet.cells(n + 1, 1) = Str(b) wsmysheet.cells(n + 1, 2) = Str(f(b))h = (b - a) / nFor i = 1 To n - 1c(i) = a + i * hwsmysheet.cells(i + 1, 1) = Str(c(i))wsmysheet.cells(i + 1, 2) = Str(f(c(i)))sum = sum + f(c(i))Next if1 = (b - a) * (f(a) + 2 * sum + f(b)) / 16 wsmysheet.cells(n + 1, 3) = Str(f1) appexcel.Visible = TrueEnd SubSub xps(ByRef a, b, f2 As Double, n As Integer) Dim i As IntegerDim x() As DoubleDim y() As DoubleDim sum As DoubleDim sum1 As DoubleDim h As DoubleReDim x(n)ReDim y(n - 1)Dim appexcel As ObjectDim wbmybook As ObjectDim wsmysheet As ObjectSet appexcel = CreateObject("excel.application") Set wbmybook = appexcel.workbooks.AddSet wsmysheet = appexcel.worksheets.Add wsmysheet.cells(1, 1) = Str(a)wsmysheet.cells(1, 2) = Str(f(a))wsmysheet.cells(2 * n + 1, 1) = Str(b)wsmysheet.cells(2 * n + 1, 2) = Str(f(b))h = (b - a) / nFor i = 0 To 3x(i) = a + i * h + h / 2sum = sum + f(x(i))wsmysheet.cells(2 * i + 2, 1) = Str(x(i))wsmysheet.cells(2 * i + 2, 2) = Str(f(x(i)))Next iFor i = 1 To 3y(i) = a + i * hsum1 = sum1 + f(y(i))wsmysheet.cells(2 * i + 1, 1) = Str(y(i))wsmysheet.cells(2 * i + 1, 2) = Str(f(y(i)))Next if2 = h * (f(a) + 4 * sum + 2 * sum1 + f(b)) / 6wsmysheet.cells(2 * n + 1, 3) = Str(f2)appexcel.Visible = TrueEnd SubSub kst(ByRef a, b, f3 As Double)Dim c(4)Dim appexcel As ObjectDim wbmybook As ObjectDim wsmysheet As ObjectSet appexcel = CreateObject("excel.application")Set wbmybook = appexcel.workbooks.AddSet wsmysheet = appexcel.worksheets.AddDim i As IntegerFor i = 0 To 4c(i) = a + i * (b - a) / 4wsmysheet.cells(i + 1, 1) = Str(c(i))wsmysheet.cells(i + 1, 2) = Str(f(c(i)))Next if3 = (b - a) * (7 * f(c(0)) + 32 * f(c(1)) + 12 * f(c(2)) + 32 * f(c(3)) + 7 * f(c(4))) / 90wsmysheet.cells(5, 3) = Str(f3)appexcel.Visible = TrueEnd SubPrivate Sub Form_Load()Combo1.AddItem "复化梯形求积公式", 0Combo1.AddItem "复化辛普森求积公式", 1Combo1.AddItem "科特斯求积公式", 2End Sub结果:1.梯形公式000.125 3.11E-020.25 6.15E-020.3759.06E-020.50.1176470.6250.1423490.750.1643840.8750.18360710.20.111402 2.辛普森公式000.125 3.11E-020.25 6.15E-020.3759.06E-020.50.1176470.6250.1423490.750.1643840.8750.18360710.20.111572第五章作业P177_10.用平方根法解方程组,这里用的是高斯主消元法123211412351316x x x -⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪--= ⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭答:vb 程序如下:(窗体见工程文件)Option Explicit Option Base 1Sub GS(n As Integer, a() As Single, x() As Single)Dim i As Integer, k As Integer, s As Integer, j As Integer Dim yinzi As Single, max As Single, b As Single Dim appexcel As Object Dim wbmybook As Object Dim wsmysheet As ObjectSet appexcel = CreateObject("excel.application") Set wbmybook = appexcel.workbooks.Add Set wsmysheet = appexcel.worksheets.Add For k = 1 To n For i = 1 To n + 1wsmysheet.cells(k, i) = Str(a(k, i)) Next i Next kwsmysheet.cells(n + 1, 1) = "消元变换的最终形式:" For k = 1 To n - 1max = Abs(a(k, k)) s = k'选列最大元素 For i = k To nIf Abs(a(i, k)) > max Then s = imax = Abs(a(i, k)) End If Next i '交换两列For i = 1 To n + 1 max = a(k, i) a(k, i) = a(s, i) a(s, i) = max Next i'约化,进行行变换For i = k + 1 To nyinzi = a(i, k) / a(k, k)For j = k To n + 1a(i, j) = a(i, j) - a(k, j) * yinziNext jNext iNext kPrintFor i = 1 To nFor j = 1 To n + 1wsmysheet.cells(n + 1 + i, j) = Str(Format(a(i, j), "######0.0000")) Next jNext ix(n) = a(n, n + 1) / a(n, n)wsmysheet.cells(1, n + 2) = "计算的最终结果:"wsmysheet.cells(n, n + 3) = "x" + "(" + Str(n) + ")"wsmysheet.cells(n, n + 4) = Str(x(n))For i = n - 1 To 1 Step -1b = 0For j = i + 1 To nb = b + a(i, j) * x(j)Next jx(i) = (a(i, n + 1) - b) / a(i, i)wsmysheet.cells(i, n + 3) = "x" + "(" + Str(i) + ")"wsmysheet.cells(i, n + 4) = Str(x(i))Next iappexcel.Visible = TrueEnd SubPrivate Sub Command1_Click()Dim a() As Single, x() As Single, n As Integer, i As Integer, j As Integern = V al(Text2.Text)Open "shuju.txt" For Output As #1Print #1, Text1.TextClose #1Open "shuju.txt" For Input As #1ReDim a(n, n + 1)ReDim x(n)For i = 1 To nFor j = 1 To nInput #1, a(i, j)Next jPrintNext iFor i = 1 To nInput #1, a(i, n + 1) Next i Close #1Call GS(n, a(), x()) End Sub结果:第六章作业 P209_1.设方程组1231231235212422023103x x x x x x x x x ++=-⎧⎪-++=⎨⎪-+=-⎩ 用雅可比迭代法及高斯—塞德尔迭代法解此方程组,要求当(1)()410k k x x +-∞-<时迭代终止。