数值分析第五章数值实验
数值分析实验报告
实验五 解线性方程组的直接方法实验5.1 (主元的选取与算法的稳定性)问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。
但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。
主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
实验内容:考虑线性方程组n n n R b R A b Ax ∈∈=⨯,,编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss消去过程。
实验要求:(1)取矩阵⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1415157,6816816816M O O O b A ,则方程有解T x )1,,1,1(*Λ=。
取n=10计算矩阵的条件数。
让程序自动选取主元,结果如何?(2)现选择程序中手动选取主元的功能。
每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。
若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。
(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。
(4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。
重复上述实验,观察记录并分析实验结果。
思考题一:(Vadermonde 矩阵)设⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=∑∑∑∑====n i i n n i i n i i n i i n n n n n n n x x x x b x x x x x x x x x x x x A 002010022222121102001111M ΛM ΛM M M ΛΛΛ,, 其中,n k k x k ,,1,0,1.01Λ=+=,(1)对n=2,5,8,计算A 的条件数;随n 增大,矩阵性态如何变化?(2)对n=5,解方程组Ax=b ;设A 的最后一个元素有扰动10-4,再求解Ax=b(3)计算(2)扰动相对误差与解的相对偏差,分析它们与条件数的关系。
《数值分析》第五章实验报告
1.900 11.7479965 2.000 15.3982357 则有 i 1 5 6 9 10 ti 1.1 1.5 1.6 1.9 2.0 wi 0.2718282 3.1874451 4.6208178 11.7479965 15.3982357 y(ti) 0.345920 3.96767 5.70296 14.3231 18.6831
b)c)d)类似进行即可
EXERCISE SET 5.9 P322 2、方程组的 Runge-Kutta 算法 a) y' '2 y' y te t ,0 t 1, y(0) y' (0) 0, h 0.1
t
设 u1 (t ) y(t ), u2 (t ) y (t ) ,则将方程转换为方程组
'
-5-
u1' (t ) u2 (t )
' u2 (t ) 2u2 (t ) u1 (t ) t (et 1)
初始条件为
u1 (0) 0, u2 (0) 0
编写 MATLAB 程序 function[t,y] = Runge_Kutta4s(ydot_fun,t0,y0,h,N) %标准四阶Runge_Kutta公式,其中, %ydot_fun为一阶微分方程的函数; %t0为初始点; %y0为初始向量(列向量) ; %h为区间步长; %N为区间的个数; %t为Tn构成的向量; %y为Yn构成的矩阵。 t = zeros(1,N+1);y = zeros(length(y0),N+1); t(1) = t0;y(:,1) = y0; for n = 1 :N t(n+1) = t(n) + h; k1 = h * feval(ydot_fun,t(n),y(:,n)); k2 = h * feval(ydot_fun,t(n)+1/2 * h,y(:,n)+1/2 * k1); k3 = h * feval(ydot_fun,t(n)+1/2 * h,y(:,n)+1/2 * k2); k4 = h * feval(ydot_fun,t(n)+h,y(:,n)+k3); y(:,n+1) = y(:,n) + 1/6 * (k1 + k2 + k3 + k4); end 运行后有 >> odefun = inline('[y(2);2*y(2)-y(1)+t*(exp(t)-1)]','t','y'); >> [t,y] = Runge_Kutta4s(odefun,0,[0;0],0.1,10) t= Columns 1 through 9 0 0.8000 Columns 10 through 11 0.9000 1.0000 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000
清华第五版数值分析第5章课件
第一步:选 ai ,1 max ai 1 ,交换第1行和第i1行,
1 i n
然后进行消元,得
( a111 ) [ A( 2 ) , b ( 2 ) ]
( 1 a121 ) a1( n ) ( (2 a222 ) a2 n )
( an 2 ) 2
(2 ann )
三
高斯列主元消去法
基本思想:在每轮消元之前,选列主元素 (绝对值最大的元素)
设方程组 AX b的增广矩阵为 a11 a (1) (1) 21 [ A , b ] [ A , b] an1 具体步骤为:
1
b1 a22 a2 n b2 an 2 ann bn a12 a1 n
如此至多经过n-1步,就得到与之同解的上三角形方 程组的增广矩阵,再用回代过程即可得方程组的解.
例:用Gauss列主元消去法解方程组 2 4 6 x1 3 4 9 2 x 5 2 1 1 3 x3 4
(1)
1 2 n
a (1) 0 0
a (1) a (1)
12 1n
(2 ( a22 ) a22 ) n
( (2 an22) ann)
b(1) ( 2) b2 ( 2) bn
1
则
a 令m i 1 , i 2,3,...,n a
n
a (1) 0 0
11
a (1) a (1)
12
(2 ( a22 ) a22 ) n
( (2 an22) ann)
数值分析第五章插值法
数值分析第五章插值法插值法是数值分析中常用的一种数值逼近方法,它的目的是通过已知数据点之间的插值多项式来逼近未知数据点的函数值。
插值法可以在信号处理、图像处理、计算机图形学等领域中广泛应用。
在插值法中,最常用的方法有拉格朗日插值法和牛顿插值法。
拉格朗日插值法是一种利用拉格朗日插值多项式来逼近函数的方法。
对于n个已知数据点(xi, yi),拉格朗日插值多项式L(x)可以表示为:L(x) = ∑(yi * li(x))其中,li(x)表示拉格朗日基函数,定义为:li(x) = ∏[(x - xj)/(xi - xj)] (j≠i)可以证明,在给定的n个数据点上,拉格朗日插值多项式L(x)满足:L(xi) = yi牛顿插值法是另一种常用的插值方法,它利用差商的概念来逼近函数。
对于n个已知数据点(xi, yi),差商可以定义为:f[xi] = yif[xi, xi+1] = (f[xi+1] - f[xi]) / (xi+1 - xi)f[xi, xi+1, ..., xi+k] = (f[xi+1, ..., xi+k] - f[xi, ...,xi+k-1]) / (xi+k - xi)通过差商的递归定义,可以得到牛顿插值多项式N(x)的表达式,其中:N(x)=f[x0]+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+...与拉格朗日插值法类似,牛顿插值多项式N(x)也满足:N(xi) = yi这两种插值方法都有自己的优点和缺点。
拉格朗日插值法简单易懂,计算量小,但当数据点较多时,多项式的次数会很高,容易出现龙格现象。
而牛顿插值法可以通过求差商一次次递推得到插值多项式,计算效率较高,且具备局部逼近性,不易出现龙格现象。
除了拉格朗日插值法和牛顿插值法,还有其他插值方法,如分段线性插值、样条插值等。
分段线性插值是利用线性多项式逼近函数,将数据点之间的区间分为若干段,每段内使用一条线性多项式进行插值。
数值分析实验报告5
一、 实验名称解线性方程组的直接方法二、 目的和意义1、通过该课题的实验,体会模块化结构程序设计方法的优点;2、运用所学的计算方法,解决各类线性方程组的直接算法;3、提高分析和解决问题的能力,做到学以致用;4、通过三对角形线性方程组的解法,体会稀疏线性方程组解法的特点。
三、 计算公式●Gauss 顺序消去法计算公式n n nnb x a ⇒1,1,2,1nk kj j k j k b a x x k n =+-⇒=-∑四、 结构程序设计● Gauss 顺序消去法程序如下: %Gauss 法求解线性方程组Ax=b%A 为输入矩阵系数,b 为方程组右端系数 %方程组的解保存在x 变量中 %先输入方程系数A=[4 2 -3 -1 2 1 0 0 0 0;8 6 -5 -3 6 5 0 1 0 0;4 2 -2 -1 3 2 -1 0 3 1;0 -2 1 5 -1 3 -1 1 9 4;-4 2 6 -1 6 7 -3 3 2 3;8 6 -8 5 7 17 2 6 -3 5;0 2 -1 3 -4 2 5 3 0 1;16 10 -11 -9 17 34 2 -1 2 2;4 6 2 -7 13 9 2 0 12 4;0 0 -1 8 -3 -24 -8 6 3 -1]; b=[5 12 3 2 3 46 13 38 19 -21]'; [m,n]=size(A); %检查系数正确性if m~=nerror('矩阵A 的行数和列数必须相同'); return; endif m~=size(b)error('b 的大小必须和A 的行数或A 的列数相同'); return;end%再检查方程是否存在唯一解if rank(A)~=rank([A,b])error('A 矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解'); return;end%这里采用增广矩阵行变换的方式求解c=n+1;A(:,c)=b;%%消元过程for k=1:n-1A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c);end%%回代结果x=zeros(length(b),1);x(n)=A(n,c)/A(n,n);for k=n-1:-1:1x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);end%显示计算结果disp('x=');disp(x);Gauss列主元消去法程序如下:%Gauss列主元消元法求解线性方程组Ax=b%A为输入矩阵系数,b为方程组右端系数%方程组的解保存在x变量中format long;%设置为长格式显示,显示15位小数A=[4 2 -3 -1 2 1 0 0 0 0;8 6 -5 -3 6 5 0 1 0 0;4 2 -2 -1 3 2 -1 0 3 1;0 -2 1 5 -1 3 -1 1 9 4;-4 2 6 -1 6 7 -3 3 2 3;8 6 -8 5 7 17 2 6 -3 5;0 2 -1 3 -4 2 5 3 0 1;16 10 -11 -9 17 34 2 -1 2 2;4 6 2 -7 13 9 2 0 12 4;0 0 -1 8 -3 -24 -8 6 3 -1];b=[5 12 3 2 3 46 13 38 19 -21]';[m,n]=size(A);%先检查系数正确性if m~=nerror('矩阵A的行数和列数必须相同');return;endif m~=size(b)error('b的大小必须和A的行数或A的列数相同');return;end%再检查方程是否存在唯一解if rank(A)~=rank([A,b])error('A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解');return;endc=n+1;A(:,c)=b;%(增广)for k=1:n-1[r,m]=max(abs(A(k:n,k)));%选主元m=m+k-1;%修正操作行的值if(A(m,k)~=0)if(m~=k)A([k m],:)=A([m k],:);%换行endA(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c);%消去endendx=zeros(length(b),1);%回代求解x(n)=A(n,c)/A(n,n);for k=n-1:-1:1x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);enddisp('x=');disp(x);format short;%设置为默认格式显示,显示5位●平方根法程序如下:A=[4 2 -4 0 2 4 0 0;2 2 -1 -2 1 3 2 0;-4 -1 14 1 -8 -3 5 6;0 -2 1 6 -1 -4 -3 3;2 1 -8 -1 22 4 -10 -3;4 3 -3 -4 4 11 1 -4;0 2 5 -3 -10 1 14 2;0 0 6 3 -3 -4 2 19];b=[0 -6 6 23 11 -22 -15 45]';% 先输入矩阵L=chol(A);%先对A矩阵作Cholesky分解L'*L%检验其正确性L=L';%将L转化为下三角矩阵y=L\b;%解方程组Ly=bx=L'\y%再解方程组L T x=y,得到最终解●改进平方根法程序如下:A=[4 2 -4 0 2 4 0 0;2 2 -1 -2 1 3 2 0;-4 -1 14 1 -8 -3 5 6;0 -2 1 6 -1 -4 -3 3;2 1 -8 -1 22 4 -10 -3;4 3 -3 -4 4 11 1 -4;0 2 5 -3 -10 1 14 2;0 0 6 3 -3 -4 2 19];b=[0 -6 6 23 11 -22 -15 45]';% 先输入矩阵[L,D]=ldl(A);%先对矩阵A作LDL分解L*D*L'%检验其分解正确性y=L\b;%解方程组Ly=bx=(D*L')\y%解方程组DL T x=y●追赶法程序如下:format long%三对角线性方程组的追赶法解方程组%输入矩阵A=[4 -1 0 0 0 0 0 0 0 0;-1 4 -1 0 0 0 0 0 0 0;0 -1 4 -1 0 0 0 0 0 0;0 0 -1 4 -1 0 0 0 0 0;0 0 0 -1 4 -1 0 0 0 0;0 0 0 0 -1 4 -1 0 0 0;0 0 0 0 0 -1 4 -1 0 0;0 0 0 0 0 0 -1 4 -1 0;0 0 0 0 0 0 0 -1 4 -1;0 0 0 0 0 0 0 0 -1 4];f=[7 5 -13 2 6 -12 14 -4 5 -5];[n,m]=size(A);%分别取对角元素a(2:n)=diag(A,-1);c=diag(A,1);%此处用变量d存储A主对角线上的元素,因已用变量b存储方程右边的系数b=diag(A);if b(1)==0error('主对角元素不能为0');return;end%初始计算alpha(1)=b(1);beta(1)=c(1)/b(1);for i=2:n-1alpha(i)=b(i)-a(i)*beta(i-1);if alpha(i)==0error('错误:在解方程过程中α为0');return;endbeta(i)=c(i)/alpha(i);end%对最后一行作计算alpha(n)=b(n)-a(n)*beta(n-1);if alpha(n)==0error('错误:在解方程过程中最后一个α为0');return;end%解Ly=fy(1)=f(1)/b(1);for i=2:ny(i)=(f(i)-a(i)*y(i-1))/alpha(i);end%解Ux=yx(n)=y(n);for i=n-1:-1:1x(i)=y(i)-beta(i)*x(i+1);enddisp('x=');format shortdisp(x');五、结果讨论和分析对线性方程组(1),利用Gauss顺序消去法与Gauss列主元消去法求解。
《数值分析》课程实验报告数值分析实验报告
《数值分析》课程实验报告数值分析实验报告《数值分析》课程实验报告姓名:学号:学院:机电学院日期:20__ 年 _ 月_ 日目录实验一函数插值方法 1 实验二函数逼近与曲线拟合 5 实验三数值积分与数值微分 7 实验四线方程组的直接解法 9 实验五解线性方程组的迭代法 15 实验六非线性方程求根 19 实验七矩阵特征值问题计算 21 实验八常微分方程初值问题数值解法 24 实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。
试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。
数据如下:(1) 0.4 0.55 0.65 0.80 0.95 1.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。
(提示:结果为, )(2) 1 2 3 4 5 6 7 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造Lagrange多项式,计算的,值。
(提示:结果为, )二、要求 1、利用Lagrange插值公式编写出插值多项式程序;2、给出插值多项式或分段三次插值多项式的表达式;3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;4、对此插值问题用Newton插值多项式其结果如何。
Newton 插值多项式如下:其中:三、目的和意义 1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;2、明确插值多项式和分段插值多项式各自的优缺点;3、熟悉插值方法的程序编制;4、如果绘出插值函数的曲线,观察其光滑性。
四、实验步骤(1) 0.4 0.55 0.65 0.80 0.951.05 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次Lagrange多项式,和分段三次插值多项式,计算, 的值。
数值分析实验报告
数值分析实验报告数值分析实验报告姓名:张献鹏学号:173511038专业:冶金工程班级:重冶二班目录1拉格朗日插值 (1)11.1问题背景.....................................................................................................11.2数学模型.....................................................................................................1.3计算方法1.....................................................................................................21.4数值分析.....................................................................................................2复化辛普森求积公式 (2)2.1问题背景2.....................................................................................................32.2数学模型.....................................................................................................32.3计算方法.....................................................................................................2.4数值分析5.....................................................................................................3矩阵的 LU 分解 (6)63.1问题背景.....................................................................................................3.2数学模型6.....................................................................................................3.2.1理论基础 (6)3.2.2实例 (7)73.3计算方法.....................................................................................................3.4小组元的误差 (8)4二分法求方程的根 (9)94.1问题背景.....................................................................................................94.2数学模型.....................................................................................................4.3计算方法9.....................................................................................................4.4二分法的收敛性 (11)5雅可比迭代求解方程组 (11)115.1问题背景...................................................................................................5.2数学模型11...................................................................................................5.2.1理论基础 (11)5.2.2实例 (12)5.3计算方法 (12)5.4收敛性分析 (13)6Romberg 求积法 (14)6.1问题背景 (14)6.2数学模型: (14)6.2.1理论基础 (14)6.2.2实例 (14)6.3计算方法 (15)6.4误差分析 (16)7幂法 (16)7.1问题背景 (16)7.2数学模型 (16)7.2.1理论基础 (16)7.2.2实例 (17)7.3计算方法 (17)7.4误差分析 (18)8改进欧拉法 (18)8.1问题背景 (18)8.2数学模型 (19)8.2.1理论基础 (19)8.2.2实例 (19)8.3数学模型 (19)8.4误差分析 (21)1拉格朗日插值1.1问题背景1f ( x)2, 5 x 5 求拉格朗日插值。
《数值分析》实验报告书
N4(0.895) function [y,R]= newcz(X,Y,x,M) x=0.895; M=4; X=[0.4,0.55,0.65,0.8,0.9]; Y=[0.41075,0.57815,0.69675,0.88811,1.02652];
n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y'; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end q1=abs(q1*(z-X(j-1)));c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n))); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C); C(d)=C(d)+A(k,k); end y(k)= polyval(C, z); end R=M*q1/c1; 运行结果: ans = 1.0194
实验三、解线性方程组的直接法
解线性方程组的直接法是指经过有限步运算后能求得方程组精确解
的方法。但由于实际计算中舍入误差是客观存在的,因而使用这类方法 也只能得到近似解。目前较实用的直接法是古老的高斯消去法的变形, 即主元素消去法及矩阵的三角分解法。引进选主元的技巧是为了控制计 算过程中舍入误差的增长,减少舍入误差的影响。一般说来,列主元消 去法及列主元三角分解法是数值稳定的算法,它具有精确度较高、计算 量不大和算法组织容易等优点,是目前计算机上解中、小型稠密矩阵方 程组可靠而有效的常用方法。
Y=[0.82741,0.82659,0.82577,0.82495]; n=length(X); m=length(x); for i=1:m z=x(i);s=0.0; for k=1:n p=1.0; q1=1.0; c1=1.0; for j=1:n if j~=k p=p*(z-X(j))/(X(k)-X(j)); end q1=abs(q1*(z-X(j))); c1=c1*j; end s=p*Y(k)+s; end y(i)=s; end R=M.*q1./c1; 运行结果: ans = 0.8261 2. N3(0.596) function [y,R]= newcz(X,Y,x,M) x=0.596; M=3;
数值分析实验报告数值积分
解:(1)对于积分 I1
1ex2 dx
0
计算方法
梯形公式
结果
0.683939
对于积分 I2
1 sin xdx 0x
计算方法
梯形公式
结果
0.920643
Simpson 公式 0.747180
Simpson 公式 0.946046
(2)对于积分 I1
1ex2 dx ,区间逐次分半的复化梯形公式计算上述积分的近似值。
0
迭代次数
迭代结果
迭代次数
迭代结果
0
0.68393972
5
0.74676425
1
0.731370251
6
0.74680916
2
0.742984097
7
0.74682039
3
0.745865614
8
0.746823197
4
0.746584596
9
0.746823898
通过计算可以发现,当迭代 9 次时,迭代误差小于 106
43Tm22
T2 m3
43 1
若
m
3
,判断:若
T3 m3
T3 m4
e
,则停止计算,
T3 m3
为所求;
③ 若 m M ,则算法失效!
三、 练习与思考题分析解答
计算积分:
I1
1ex2 dx
0
I2
1 sin xdx 0x
精度要求 106 。
(1) 编写程序,分别用梯形公式、Simpson 公式计算上述积分的近似值。并对计算结果 作一比较。(参考结果:T= 0.68394 S= 0.74718)
数值分析课件第5章
cn1xn1
fn1
an bn xn fn
其中|i-j|>1时,aij=0,且满足如下的对角占优条件:
(1)|b1|>|c1|>0,|bn|>|an|>0
(2)|bi|≥|ai|+|ci|, aici≠0, i=2,3,…,n-1.
工科研究生公共课程数学系列
机动 上页 下页 首页 结束
b1 c1
为单位下三角矩阵
这就是说,高斯消去法实质上产生了一个将A分解为 两个三角形矩阵相乘的因式分解,于是我们得到如下重要 定理。
工科研究生公共课程数学系列
机动 上页 下页 首页 结束
定理 7矩 ( 阵L的 U 分解 )设A为n阶矩阵, A的如 顺果 序主 Di 0(i1,2,,n1),则 A可分解为一个 角单 矩L和 位 阵下 一个上三U的 角乘 矩积 阵,且这 唯种 一分 的解 。是
a(2) m2
a1(1n) a2(2n)
b1(1) b2(2)
mi2aa22((2221))
(a2(22) 0)
(i3,,m)
am(2n)
bn(2)
a1(11) 0
a(1) 12
a(2) 22
a1(1n)
a2(2n)
b1(1) b2(2)
A(3)
: b(3)
0
0
am(3n)
a(k) kk
工科研究生公共课程数学系列
()
机动 上页 下页 首页 结束
高斯消去法的条件
定理5 设Axb,其中ARnn
(1) 如果ak(kk) 0(k 1,2,,n),则可通过高斯将 消去法 Axb约化为等价的三组 角(方 ),程且计算公 (式 )。
数值分析实验报告
数值分析实验报告一、实验目的数值分析是一门研究用计算机求解数学问题的数值方法及其理论的学科。
本次实验的目的在于通过实际操作和编程实现,深入理解和掌握数值分析中的常见算法,提高运用数值方法解决实际问题的能力,并对算法的精度、稳定性和效率进行分析和比较。
二、实验环境本次实验使用的编程语言为 Python,使用的开发工具为 PyCharm。
实验所依赖的主要库包括 NumPy、Matplotlib 等。
三、实验内容(一)函数逼近与插值1、拉格朗日插值法通过给定的离散数据点,构建拉格朗日插值多项式,对未知点进行函数值的估计。
2、牛顿插值法与拉格朗日插值法类似,但采用了不同的形式和计算方式。
(二)数值积分1、梯形公式将积分区间划分为若干个梯形,通过计算梯形面积之和来近似积分值。
2、辛普森公式基于抛物线拟合的方法,提高积分近似的精度。
(三)线性方程组求解1、高斯消元法通过逐行消元将线性方程组化为上三角形式,然后回代求解。
2、 LU 分解法将系数矩阵分解为下三角矩阵 L 和上三角矩阵 U,然后通过两次前代和回代求解。
(四)非线性方程求解1、二分法通过不断将区间一分为二,逐步缩小根所在的区间,直到满足精度要求。
2、牛顿迭代法利用函数的切线来逼近根,通过迭代逐步收敛到根的近似值。
四、实验步骤(一)函数逼近与插值1、拉格朗日插值法定义计算拉格朗日基函数的函数。
根据给定的数据点和待求点,计算插值多项式的值。
输出插值结果,并与真实值进行比较。
2、牛顿插值法计算差商表。
构建牛顿插值多项式。
进行插值计算和结果分析。
(二)数值积分1、梯形公式定义积分区间和被积函数。
按照梯形公式计算积分近似值。
分析误差。
2、辛普森公式同样定义积分区间和被积函数。
运用辛普森公式计算积分近似值。
比较与梯形公式的精度差异。
(三)线性方程组求解1、高斯消元法输入系数矩阵和右端项向量。
进行消元操作。
回代求解方程。
输出解向量。
2、 LU 分解法对系数矩阵进行 LU 分解。
数值分析实验报告
实验五 解线性方程组的直接方法实验5.1 (主元的选取与算法的稳定性) 问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。
但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。
主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
实验内容:考虑线性方程组n n n R b R A b Ax ∈∈=⨯,,编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss 消去过程。
实验要求:(1)取矩阵⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1415157,6816816816 b A ,则方程有解T x )1,,1,1(* =。
取n=10计算矩阵的条件数。
让程序自动选取主元,结果如何?(2)现选择程序中手动选取主元的功能。
每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。
若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。
(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。
(4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。
重复上述实验,观察记录并分析实验结果。
思考题一:(Vadermonde 矩阵)设⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=∑∑∑∑====n i i n n i i ni i n i i n n n n n n nx x x x b x x x x x x x x x x x x A 002010022222121102001111 ,, 其中,n k k x k ,,1,0,1.01 =+=,(1)对n=2,5,8,计算A 的条件数;随n 增大,矩阵性态如何变化?(2)对n=5,解方程组Ax=b ;设A 的最后一个元素有扰动10-4,再求解Ax=b(3)计算(2)扰动相对误差与解的相对偏差,分析它们与条件数的关系。
《数值分析》课程实验报告范文
《数值分析》课程实验报告范文《数值分析》课程实验报告姓名:学号:学院:机电学院日期:2022年某月某日目录实验一函数插值方法1实验二函数逼近与曲线拟合5实验三数值积分与数值微分7实验四线方程组的直接解法9实验五解线性方程组的迭代法15实验六非线性方程求根19实验七矩阵特征值问题计算21实验八常微分方程初值问题数值解法24实验一函数插值方法一、问题提出对于给定的一元函数的n+1个节点值。
试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。
实验二函数逼近与曲线拟合一、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。
在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t的拟合曲线。
t(分)051015202530354045505501.272.162.863.443.874.154.374.51 4.584.024.64二、要求1、用最小二乘法进行曲线拟合;2、近似解析表达式为;3、打印出拟合函数,并打印出与的误差,;4、另外选取一个近似表达式,尝试拟合效果的比较;5、某绘制出曲线拟合图。
三、目的和意义1、掌握曲线拟合的最小二乘法;2、最小二乘法亦可用于解超定线代数方程组;3、探索拟合函数的选择与拟合精度间的关系四、实验步骤:第一步先写出线性最小二乘法的M文件functionc=lpoly(某,y,m)n=length(某);b=zero(1:m+1);f=zero(n,m+1); fork=1:m+1f(:,k)=某.^(k-1);enda=f'某f;b=f'某y';c=a\b;c=flipud(c);第二步在命令窗口输入:>>lpoly([0,5,10,15,20,25,30,35,40,45,50,55],[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64],2)回车得到:an=-0.00240.20370.2305即所求的拟合曲线为y=-0.0024某2+0.2037某+0.2305在编辑窗口输入如下命令:>>某=[0,5,10,15,20,25,30,35,40,45,50,55];>>y=-0.0024某某.^2+0.2037某某+0.2305;>>plot(某,y)命令执行得到如下图五、实验结论分析复杂实验数据时,常采用分段曲线拟合方法。
《数值分析》第五章课件
取 h = 0.2 ,要求保留六位小数.
校正: cn+1 = y n + 2 ( y n' + mn' +1 )
解:Euler 迭代格式为
校正的改进:
1 y n +1 = c n +1 + ( p n +1 − c n+1 ) 5
yk +1 = yk + 0.2(− yk − xk yk2 ) = 0.8 yk − 0.2 xk yk2
差分方程:关于未知序列的方程.
例如: y n +3 = 5 y n + 2 − 3 y n +1 + 4 y n
例如: y ' ' ( x) − a ( x) y '+b( x) y + c( x) = 0
3
4
微分方程的应用情况
实际中,很多问题的数学模型都是微分方程. 常微分方程作为微分方程的基本类型之一,在 理论研究与工程实际上应用很广泛. 很多问题 的数学模型都可以归结为常微分方程. 很多偏 微分方程问题,也可以化为常微分方程问题来 近似求解.
且
可得,
y(xn+1) − yn+1 = hf y (xn+1,η)[ y(xn+1) − yn+1] − h2 '' y (xn ) + O(h3 ) 2
f (xn+1, y(xn+1)) = y' (xn+1) = y' (x n ) + hy'' (xn ) + O(h2 )
19
20
2 考虑到 1 − hf y ( xn+1 ,η ) = 1 + hf y ( xn+1 ,η ) + O(h ) ,则有
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析第五章数值实验之数值拟合
1. 实验目的:学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题
2. 实验内容:给定数据点x yj如下:
3. 实验要求:
(1)编写程序用最小二乘法求拟合数据的多项式,并求平方误差,作出离散函数(X, y i)和拟合函数的图形。
(2)用MATLAB勺内部函数polyfit 求解上面最小二乘法曲线拟合多项式的系数及平方误差,并用MATLAB勺内部函数plot作出其图形,并与(1)的结果进行比较。
4. 实验步骤:
(1)首先根据上述表格中给定的数据点(为$),用MATLAB?序画出散点图。
在MATLA工作窗口输入程序
>>x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
plot(x,y,'r*'),legend(' 数据点(xi,yi )'),
x1abel('x'),y1abel('y'),
title(' 本实验的数据点(xi,yi )的散点图')
运行后屏幕显示数据的散点图,如下图1-1
图1-1表中给出的数据的散点图
因为数据的散点图1-1的变化趋势与二次多项式很接近,所以取
组函数1,x,x2,令 f (x^ a1x2 a2x a3(1-1)
用作线性最小二乘拟合的多项式拟合的MATLAB程序求待定系数a k(k =1,2,3).输入程序
x=[0 0.5 0.6 0.7 0.8 0.9 1.0]; a=polyfit(x,y,2)
运行后输出(1-1 )式的系数
a=
1.0000 1.0000 1.0000
故拟合多项式为
f (x) = x2 x 1
用MATLA程序估计其误差,并作出拟合曲线和数据的图形。
输入程序:
>>xi=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
n=le ngth(xi);f=xi.A2+xi+1;
x=0:0.001:1.0;F=x.A2+x+1;
fy=abs(f-y);fy2=fy.A2;Ew=max(fy),
E1=sum(fy)/n,E2=sqrt((sum(fy2))/n),
plot(xi,y,'r*',x,F,'b-'),
legend('数据点(xi,yi)',' 拟合曲线y=f(x)'),
x1abel('x'),y1abel('y'),
title(' 本实验的数据点(xi,yi)和拟合曲线y=f(x)的图形')
运行后屏幕显示数据(冷%)与拟合函数f的最大误差E w,平均误差E1和均方根误差E2及其数据点(xi,yi)和拟合曲线y二f (x)的图形,见图1-2.
Ew=
4.4409e-016
E1 =
6.3441e-017
E2=
1.6785e-016
图1-2数据散点图和拟合曲线
⑵用MATLA的内部函数polyfit求解上面最小二乘法曲线拟合多项式的系数输入程序为:
>> x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
a=polyfit(x,y,2)
a=
1.0000 1.0000 1.0000
>> x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
a=polyfit(x,y,3)
a =
-0.0000 1.0000 1.0000 1.0000
由此可知拟合的多项式为二次多项式,
其系数为a=1.0000 1.0000 1.0000
拟合的多项式为f(X)= X2■ x 1
求拟合多项式的平方误差,输入程序为
xi=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
n=le ngth(xi);f=xi.A2+xi+1;
fy=abs(f-y);E1=sum(fy )/n
运行后屏幕显示数据(x,yj与拟合函数f的平均误差E1:
E1=6.3441e-017
用MATLAB勺内部函数plot作出其图形
输入程序为:
>>x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
Plot(x,y)
运行后拟合多项式的图形如图1-3.
5. 实验分析:
编写程序用最小二乘法求拟合曲线的多项式的过程中,求出的数据(x,y)与拟合函数f的最大误差Ew=4.4409e-016,平均误差E仁6.3441e-017和均方根
误差E2=1.6785e-016非常小都达到了很高的精度要求,及其通过散点求得的拟合曲线y二f (X)的图形比较光滑
而用MATLAB勺内部函数polyfit 求解的曲线拟合多项式和平方误差与程序求得的相同,还有就是虽然求解过程简单了,但用MATLAB勺内部函数plot作出的图形有明显的尖点,不够光滑。
拟合曲线曲对的图形
图1-3多项式拟合曲线。