数值分析实验(2.3.5章)
研究生数学数值分析2-3

1
(1) x + y = y + x; ( 2) ( x + y ) + z = x + ( y + z ); ( 3) 在 X 中存在零元素 0 ∀ x ∈ X,都有 x + 0 = x; ,
(4) ∀ x ∈ X,都有 x 的负元素 − x ∈ X,使 x + ( − x ) = 0 ; (5) 1 x = x; (6) λ ( µ x ) = (λµ ) x; ( 7 ) ( λ + µ ) x = λ x + µ x; (8) λ ( x + y ) = λ x + λ y ,
λ x =| λ | x ;
( 3 ) 三角不等式
x+ y ≤ x + y .
则称 X 为赋范线性空间 , x 称为 X 中向量 x 的范数 .
11
利用三角不等式易推出 x − y ≤ x− y
x = ( x1, x2 ,L, xn )T ,
( 2 .3 .8 )
, 例2.3.3 在线性空间Rn 中 对任意的 可以证明
7
例 2 .3 .2 在 C [ a , b ] 上 , 对任意 f ( x ), g ( x ) ∈ C [ a , b ], 定义 ( f ( x ), g ( x ) ) =
∫
b
a
ρ ( x ) f ( x ) g ( x )dx ,
( 2 .3 .3 )
其中 ρ ( x ) 称为权函数 , 它满足 : (1) ρ ( x ) ≥ 0 , ∀ x ∈ [ a , b ]; ( 2)
数值分析实验报告62338

数值分析实验报告(第二章)实验题目:分别用二分法、牛顿迭代法、割线法、史蒂芬森迭代法求方程的根,观察不同初始值下的收敛性,并给出结论。
问题分析:题目有以下几点要求:1.不同的迭代法计算根,并比较收敛性。
2.选定不同的初始值,比较收敛性.实验原理:各个迭代法简述二分法:取有根区间的重点,确定新的有根区间的区间长度仅为区间长度的一版。
对压缩了的有根区间重复以上过程,又得到新的有根区间,其区间长度为的一半,如此反复,……,可得一系列有根区间,区间收敛到一个点即为根。
牛顿迭代法:不动点迭代法的一种特例,具有局部二次收敛的特性。
迭代格式为割线法:是牛顿法的改进,具有超线性收敛的特性,收敛阶为1。
618. 迭代格式为史蒂芬森迭代法:采用不动点迭代进行预估校正。
至少是平方收敛的。
迭代格式为这里可采用牛顿迭代法的迭代函数。
实验内容:1.写出该问题的函数代码如下:function py= f(x)syms k;y=(k^2+1)*(k—1)^5;yy=diff(y,k);py(1)=subs(y,k,x);py(2)=subs(yy,k,x);end2.分别写出各个迭代法的迭代函数代码如下:二分法:function y=dichotomie(a,b,e)i=2;m(1)=a;while abs(a-b)〉et=(a+b)/2;s1=f(a);s2=f(b);s3=f(t);if s1(1)*s3(1)<=0b=t;elsea=t;endm(i)=t;i=i+1;endy=[t,i+1,m];end牛顿迭代法:function y=NewtonIterative(x,e)i=2;en=2*e;m(1)=x;while abs(en)〉=es=f(x);t=x—s(1)/s(2);en=t—x;x=t;m(i)=t;i=i+1;endy=[x,i+1,m];end牛顿割线法:function y=Secant(x1,x2,e)i=3;m(1)=x1,m(2)=x2;while abs(x2—x1)〉=es1=f(x1);s2=f(x2);t=x2—(x2—x1)*s2(1)/(s2(1)—s1(1));x1=x2;x2=t;m(i)=t;i=i+1;endy=[x2,i+1,m];end史蒂芬森迭代法:Function p=StephensonIterative(x,e)i=2;m(2)=x;en=2*e;while abs(en)〉=ey=fai(x);z=fai(y);t=x—(y-x)^2/(z—2*y+x); en=t-x;x=t;m(i)=t;i=i+1;endp=[x,i+1,m];end3.因为经常被使用,故可以写一个函数。
数值分析第五版第5章学习资料

n
即 de(A t) aijAij (i1,2,,n), j1
其中 A ij 为 a ij 的代数余子式,Aij(1)ijMij, M ij 为元素 a ij 的余子式.
行列式性质:
( ad ) ( A e ) d t B ( A e )d ( t B )A e , ,B t R n n .
有非零解,故系数行列式 deIt (A)0,记
a11 a12 p()det(I A) a21 a22
a1n a2n
(1.3)
an1 an2 ann n c1n1cn1cn 0.
p()称为矩阵 A的特征多项式,方程(1.3)称为矩阵 A的特
征方程.
9
因为 n次代数方程 p() 在复数域中有 n个根
其中用 ri 表示矩阵的第 i行. 由此看出,用消去法解方程组的基本思想是用逐次消
去未知数的方法把原方程组 Axb化为与其等价的三角 形方程组,而求解三角形方程组可用回代的方法.
上述过程就是用行的初等变换将原方程组系数矩阵化 为简单形式(上三角矩阵),从而将求解原方程组(2.1)的 问题转化为求解简单方程组的问题.
n
n
trA aii i.
i1
i1
(1.4) (1.5)
称 trA为 A的迹.
A的特征值 和特征向量 x还有一下性质:
(1) AT 与 A有相同的特征值 及特征向量 .
(2)若 A非奇异,则 A1 的特征值为 1,特征向量为 x.
(3)相似矩阵 BS1AS有相同的特征多项式.
11
例1 求 A的特征值及谱半径
4x2x3 5,
2x3 6.
显然,方程组(2.6)是容易求解的,解为
x (1,2,3)T.
(完整版)数值分析每节课的教学重点、难点

计算方法教案新疆医科大学数学教研室张利萍一、课程基本信息1、课程英文名称:Numerical Analysis2、课程类别:专业基础课程3、课程学时:总学时544、学分:45、先修课程:《高等数学》、《线性代数》、《Matlab 语言》二、课程的目的与任务:计算方法是信息管理与信息系统专业的重要理论基础课程,是现代数学的一个重要分支。
其主要任务是介绍进行科学计算的理论方法,即在计算机上对来自科学研究和工程实际中的数学问题进行数值计算和分析的理论和方法。
通过本课程的学习,不仅使学生初步掌握数值分析的基本理论知识,而且使学生具备一定的科学计算的能力、分析问题和解决问题的能力,为学习后继课程以及将来从事科学计算、计算机应用和科学研究等工作奠定必要的数学基础。
三、课程的基本要求:1.掌握计算方法的常用的基本的数值计算方法2.掌握计算方法的基本理论、分析方法和原理3.能利用计算机解决科学和工程中的某些数值计算应用问题,增强学生综合运用知识的能力4.了解科学计算的发展方向和应用前景四、教学内容、要求及学时分配:(一) 理论教学:引论(2学时)第一讲(1-2节)1.教学内容:计算方法(数值分析)这门课程的形成背景及主要研究内容、研究方法、主要特点;算法的有关概念及要求;误差的来源、意义、及其有关概念。
数值计算中应注意的一些问题。
2.重点难点:算法设计及其表达法;误差的基本概念。
数值计算中应注意的一些问题。
3.教学目标:了解数值分析的基本概念;掌握误差的基本概念:误差、相对误差、误差限、相对误差限、有效数字;理解有效数字与误差的关系。
学会选用相对较好的数值计算方法。
A 算法B 误差第二讲典型例题第二章线性方程组的直接法(4学时)第三讲1.教学内容:线性方程组的消去法、Gauss消去法及其Gauss列主元素消去法的计算过程;三种消去法的程序设计。
2.重点难点:约当消去法,Gauss消去法,Gauss列主元素消去法3.教学目标:了解线性方程组的解法;掌握约当消去法、Gauss消去法、Gauss列主元素消去的基本思想;能利用这三种消去法对线性方程组进行求解,并编制相应的应用程序。
数值分析实验报告--实验2--插值法

1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。
显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。
龙格(Runge )给出一个例子是极著名并富有启发性的。
设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。
实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。
(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。
(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。
1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。
1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。
Matlab 脚本文件为Experiment2_1_1fx.m 。
可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。
数值分析上机实验

目录1 绪论 (1)2 实验题目(一) (2)2.1 题目要求 (2)2.2 NEWTON插值多项式 (3)2.3 数据分析 (4)2.3.1 NEWTON插值多项式数据分析 (4)2.3.2 NEWTON插值多项式数据分析 (6)2.4 问答题 (6)2.5 总结 (7)3 实验题目(二) (8)3.1 题目要求 (8)3.2 高斯-塞德尔迭代法 (8)3.3 高斯-塞德尔改进法—松弛法 (9)3.4 松弛法的程序设计与分析 (9)3.4.1 算法实现 (9)3.4.2 运算结果 (9)3.4.3 数据分析 (11)4 实验题目(三) (13)4.1 题目要求 (13)4.2 RUNGE-KUTTA 4阶算法 (13)4.3 RUNGE-KUTTA 4阶算法运算结果及数值分析 (14)总结 (16)附录A (17)1绪论数值分析是计算数学的一个主要部分,它主要研究各类数学问题的数值解法,以及分析所用数值解法在理论上的合理性。
实际工程中的数学问题非常复杂,所以往往需要借助计算机进行计算。
运用数值分析解决问题的过程:分析实际问题,构建数学模型,运用数值计算方法,进行程序设计,最后上机计算求出结果。
数值分析这门学科具有面向计算机、可靠的理论分析、好的计算复杂性、数值实验、对算法进行误差分析等特点。
本学期开设了数值分析课程,该课程讲授了数值分析绪论、非线性方程的求解、线性方程组的直接接法、线性方程组的迭代法、插值法、函数逼近与曲线拟合、数值积分和数值微分、常微分方程初值问题的数值解法等内容。
其为我们解决实际数学问题提供了理论基础,同时我们也发现课程中很多问题的求解必须借助计算机运算,人工计算量太大甚至无法操作。
所以学好数值分析的关键是要加强上机操作,即利用计算机程序语言实现数值分析的算法。
本报告就是基于此目的完成的。
本上机实验是通过用计算机来解答数值分析问题的过程,所用的计算工具是比较成熟的数学软件MATLAB。
哈工大数值分析实验报告

录
实验报告一:非线性方程求解.................................................................................... 1
摘要、前言、数学原理 ............................................................................................. 1 Python 程序设计 ........................................................................................................ 2 结果分析和讨论 ......................................................................................................... 6 结论 ........................................................................................................................... 12 摘要、前言、数学原理 ........................................................................................... 13 Python 程序设计 ...................................................................................................... 14 结果分析和讨论 ....................................................................................................... 16 结论 ........................................................................................................................... 17 摘要、前言、数学原理 ........................................................................................... 18 Python 程序设计 ...................................................................................................... 19 结果分析和讨论 ..................................................................................................... 26 结论 ........................................................................................................................... 30 摘要、前言、数学原理 ........................................................................................... 31 Python 程序设计 ...................................................................................................... 32 结果分析和讨论 ....................................................................................................... 33 结论 ........................................................................................................................... 35
数值分析实验报告纸非线性方程的数值解法及其并行算法

>>二 :牛顿切线
[k,piancha,xdpiancha,xk,yk]=diedai2(1.5,0.0001,100) ans = 1.0000 ans = 2.0000 ans = 3.0000 ans = 4.0000 ans = 5.0000 ans = 6.0000 ans = 7.0000 ans = 0.8306 1.2408 0.6694 1.5361
i=i+1;xk=x(i);[(i-1) piancha xdpiancha xk] end if (piancha >1)&(xdpiancha>0.5)&(k>3) disp('请用户注意:此迭代序列发散,请重新输入新的迭 代公式') return; end if (piancha < 0.001)&(xdpiancha< 0.0000005)&(k>3) disp('祝贺您!此迭代序列收敛,且收敛速度较快') return; end p=[(i-1) piancha xdpiancha xk]'; 建立并保存下面的M文件fun.m function y=fun(x) y=2*x^3-x^2-5; >>[k,piancha,xdpiancha,xk,yk]=diedai2(1.5,0.0001,30) 牛顿切线法的 MATLAB 主程序 现提供名为 newtonqx.m 的 M 文件: function [k,xk,yk,piancha,xdpiancha]=newtonqx(x0,tol,ftol,gxma x) x(1)=x0; for i=1: gxmax x(i+1)=x(i)-fnq(x(i))/(dfnq(x(i))+eps); piancha=abs(x(i+1)-x(i)); xdpiancha= piancha/( abs(x(i+1))+eps); i=i+1; xk=x(i);yk=fnq(x(i)); [(i-1) xk yk piancha
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试验2.1 多项式插值的振荡现象实验目的:观察多项式插值的振荡现象,了解多项式的次数与逼近效果的关系。
实验内容:问题提出:考虑在一个固定的区间上用插值逼近一个函数。
显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。
Runge 给出的一个例子是极著名并富有启发性的。
设区间[-1,1]上的函数225x11)x (+=f ,考虑区间[-1,1]上的一个等距划分,分点为n2i 1x i +-=,i=0,1,2,…,n则拉格朗日插值多项式为:)x (l 25x11)x (Ln i ni 2i∑=+=,其中的)x (l i ,i=0,1,2,…,n 是n 次拉格朗日插值基函数。
实验要求:1、选择不断增大的分点数目n=2,3,………,画出原函数)x (f 及插值多项式函数)x (Ln 在[-1,1]上的图像,比较并分析试验结果。
2、选择其他的函数,例如定义在区间[-5,5]上的函数4()1x h x x=+,()arctan g x x =,重复上述的实验看其结果如何。
实验步骤及结果分析:1、选择不断增大的分点数目n=2,3,4,5,6,7,8,9,10做)x (f 的拉格朗日插值多项式)x (Ln ,并与原函数值做比较,如下图所示。
观察图像可知:n=2,3时插值函数和原函数差别很大,n=4,5,6时插值函数与原函数的逼近程度相对较好,继续增加插值次数n ,插值函数在插值区域的中间部分收敛,而在这区间外是发散的,此外,n=7,9时在插值中间区域逼近效果不好。
因此,适当提高插值多项式次数,可以提高逼近的精度,但是次数太高反而产生相反的效果。
2、选择其他的函数进行插值。
原函数4()1x h x x=+,区间[-5,5],插值结果如下图:观察图像可知:低次插值时,插值效果不好。
n=7,8,9,10时,在区间[-2,2],插值函数与原函数逼近程度好,但在区间外插值函数发散。
其中,n=8,10插值效果比n=7,9好。
原函数()arctan,区间[-5,5],插值结果如下图:g x x观察图像可知:n=5,6,7,8,9,10时,在区间[-3,3],插值函数与原函数逼近程度好,但在区间外插值函数发散。
其中,n=7,9在插值区间两端发散的更剧烈。
分析在插值区间两端发散的原因:次数越高,计算量就越大,积累误差也大,在整个区间上做高次多项式,当局部插值节点处的值有微小偏差时,可能引起整个区间上函数值的很大变化,使计算不稳定。
Matlab程序如下:function t_charpt2%数值实验二%输入:实验选择,函数式选择,插值节点数%输出:拟合函数及原函数的图形result=inputdlg({'请选择实验,若选2.1,请输入1,否则输入2:'},'charpt_2',1,{'1'}); Nb=str2num(char(result));if(Nb~=1)&(Nb~=2) errordlg('实验选择错误!');return;endpromps={'请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:'};result=inputdlg(promps,'charpt 2',1,{'f'});Nb_f=char(result);if(Nb_f~='f'&Nb_f~='h'&Nb_f~='g')errordlg('实验选择错误!');return;endresult=inputdlg({'请输入插值点数N:'},'charpt_2',1,{'10'});Nd=str2num(char(result));if(Nd<1)errordlg('结点输入错误!');return;endswitch Nb_fcase 'f'f=inline('1./(1+25*x.^2)');a=-1;b=1;case 'h'f=inline('x./(1+x.^4)');a=-5;b=5;case 'g'f=inline('atan(x)');a=-5;b=5;endif(Nb==1)x0=linspace(a,b,Nd+1);y0=feval(f,x0);x=a:0.1:b;y=lagrange(x0,y0,x);% clf;把曲线显示在一张图上fplot(f,[a,b],'co');hold on;plot(x,y,'b--');xlabel('x') ;ylabel('y=f(x)o and y=ln(x)--');elseif(Nb==2)x0=linspace(a,b,Nd+1);y0=feval(f,x0);x=a:0.1:b;cs=spline(x0,y0);y=ppval(cs,x);% clf;把曲线显示在一张图上fplot(f,[a,b],'co');hold on;plot(x,y,'k-');xlabel('x');ylabel('y=f(x) o and y=spline(x)-'); end%function y=lagrange(x0,y0,x)%Lagrange插值n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif (j~=k)p=p*(z-x0(j))/(x0(k)-x0(j));endends=s+p*y0(k);endy(i)=s;end试验3.1 多项式最小二乘拟合实验目的:掌握多项式最小二乘拟合程序,会对数据作多项式最小二乘拟合。
实验内容及要求:编制以函数{}nk k x 0=为基的多项式最小二乘拟合程序,并用于对表中的数据作3次多项式最小拟合。
取权数1≡i w ,求拟合曲线knk kxa∑=**=ϕ中的参数{}k a 、平方误差2δ,并作离散数据{}i i y x ,的拟合函数()x y *=ϕ的图形。
实验步骤及结果分析:拟合函数()x y *=ϕ的图形:拟合曲线knk kxa∑=**=ϕ中的平方误差2δ为2.17619e-005;参数{}k a 为alph 中的四个数值,按降幂排列1.99911,-2.99767,-3.96825e-005,0.549119。
观察图像可知:表中数据均在拟合曲线上,拟合结果很好,平方误差为10-5数量级。
Matlab程序如下:function charpt3%数值实验三:含“实验3.1”和“实验3.2”%子函数调用:dlsa%输入:实验选择%输出:原函数及求得的相应插值多项式的函数的图像以及参数alph和误差rresult=inputdlg({'请选择实验,若选3.1,请输入1,否则输入2:'},'charpt_3',1,{'1'}); Nb=str2num(char(result));if((Nb~=1)&(Nb~=2)) errordlg('实验选择错误!'); return; endx0=-1:0.5:2;y0=[-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552];n=3;%n为拟合阶次if Nb==1alph=polyfit(x0,y0,n);y=polyval(alph,x0);r=(y0-y) * (y0-y)';%平方误差x=-1:0.01:2;y=polyval(alph,x);plot(x,y,'k--');xlabel('x'); ylabel('y0 * and polyfit.y--');hold onplot(x0,y0,'*');title('离散数据的多项式拟合');grid on;elseresult=inputdlg({'请输入权向量w:'},'charpt_3',1,{'[1 1 1 1 1 1 1]'});w=str2num(char(result));[a,b,c,alph,r]=dlsa(x0,y0,w,n);enddisp(['平方误差:',sprintf('%g',r)]);disp(['参数alph:', sprintf('%g\t',alph)])function [a,b,c,alph,r]=dlsa(x,y,w,n)%功能:用正交化方法对离散数据作多项式最小二乘拟合。
%输入:m+1个离散点(x,y,w),x,y,w分别用行向量给出。
% 拟合多项式的次数n,0〈n<m。
%输出:三项递推公式的参数a,b,拟合多项式s(x)的系数c和alph,% 平方误差r=(y-s,y-s),并作离散点列和拟合曲线的图形m=length(x)-1;if (n<1|n>=m) errordlg('错误:n<1或者n>=m!'); return;end%求三项递推公式的参数a,b,拟合多项式s(x)的系数c,其中d(k)=(y,sk);s1=0;s2=ones(1,m+1);v2=sum(w);d(1)=y*w';c(1)=d(1)/v2;for k=1:nxs=x.*s2.^2*w';a(k)=xs/v2;if k==1 b(k)=0;else b(k)=v2/v1;ends3=(x-a(k)).*s2-b(k)*s1;v3=s3.^2*w';d(k+1)=y.*s3*w';c(k+1)=d(k+1)/v3;s1=s2;s2=s3;v1=v2;v2=v3;end%求平方误差rr=y.^2*w'-c*d';%求拟合多项式s(x)的降幂系数alphalph=zeros(1,n+1); T=zeros(n+1,n+2);T(:,2)=ones(n+1,1); T(2,3)=-a(1);if n>=2for k=3:n+1for i=3:k+1T(k,i)=T(k-1,i)-a(k-1)*T(k-1,i-1)-b(k-1)*T(k-2,i-2);endendendfor i=1:n+1for k=i:n+1alph(n+2-i)=alph(n+2-i)+c(k)*T(k,k+2-i);endend%用秦九韶方法计算s(x)的输出序列(t,s)xmin=min(x); xmax=max(x); dx=(xmax-xmin)/(25*m);t=(xmin-dx):dx:(xmax+dx);s=alph(1);for k=2:n+1s=s.*t+alph(k);end%输出点列x-y和拟合曲线t-s的图形plot(t,s,'-',x,y,'*');title('离散数据的正交化多项式拟合');xlabel('x');ylabel('y');grid on;试验5.1 常微分方程性态和R-K 法稳定性试验实验目的:考察下面微分方程右端项中函数y 前面的参数对方程性态的影响(它可使方程为好条件的或坏条件的)和研究计算步长对R-K 法计算稳定性的影响。