当前位置:文档之家› 数值分析实验

数值分析实验

数值分析实验
数值分析实验

《数值分析》计算实习报告册

专业信息与计算科学学号20112984

姓名张妃___

2012~2013年第一学期

实验一 数值计算的工具 Matlab

1.解释下MATLAB 程序的输出结果 程序: t=0.1 n=1:10 e=n/10-n*t 答案:

t = 0.1000 小数点后输出四位

n = 1 2 3 4 5 6 7 8 9 10 n 取1到10 e =1.0e-015 *

0 0 -0.0555 0 0 -0.1110 -0.1110 0 0 0 e 等于-0.0555×1510

2.下面MATLAB 程序的的功能是什么? 程序:

x=1;while 1+x>1,x=x/2,pause(0.02),end x=1;while x+x>x,x=2*x,pause(0.02),end x=1;while x+x>x,x=x/2,pause(0.02),end 答案:

当x=1时,对x 无限二分,到1+x>1结束,且循环之间间隔0.02秒 当x=1时,对x ?2无限循环,到x+x>x 结束,且循环之间间隔0.02秒 当x=1时,对x 无限二分,到x+x>x 结束,且循环之间间隔0.02秒

3.考虑下面二次代数方程的求解问题

02=++c bx ax

公式a ac

b b x 242-+-=是熟知的,与之等价地有ac

b b

c x 422-+-=,对于

1,100000000,1===c b a ,应当如何选择算法。

答案: clc,clear a=1;

b=100000000; c=1;

x1=(-b+sqrt(b*b-4*a*c))/2*a x2=(-b+sqrt(b*b-4*a*c))/2*a x3=2*c/(-b+sqrt(b*b-4*a*c)) x4=2*c/(-b+sqrt(b*b-4*a*c)) d=x1*x1+100000000*x1+1 e=x2*x2+100000000*x2+1 f=x3*x3+100000000*x3+1 g=x4*x4+100000000*x4+1

x1 =-7.4506e-009=-7.4506×910 x2 = -7.4506e-009 x3 =-134217728 x4 = -134217728 d =0.25494194030762 e =0.25494194030762 f = 4.592625709481985e+015 g = 4.592625709481985e+015

因为d ,e 比f ,g 更接近0所以公式a

ac b b x 242-+-=更好。

4.函数)sin(x 有幂级数展开...!

7!5!3sin 7

53+-+-=x x x x x

利用幂级数计算x sin 的MATLAB 程序为 function s=powersin(x) s=0; t=x; n=1; while s+t~=s; s=s+t ;

t=-x^2/((n+1)*(n+2))*t ; n=n+2; end 修改后程序

function s=powersin(x) s=0; x=pi/2; t=x; k=0; n=1; while s+t~=s; s=s+t;

t=-x^2/((n+1)*(n+2))*t; n=n+2; k=k+1; end K 结果 X=21*pi/2 k =60

X=11*pi/2 k = 37 ans = -1.0000 X=pi/2 k =11 ans = 1.0000

(a)解释上述程序的终止准则。 t=0时,终止

(b)对于2/21,2/11

,2/πππ=x 计算的进度是多少?分别计算多少项? ans =1.0000 ans =-1.0000 ans = 0.9999 11,37,60

5.考虑调和级数∑∞

=11

n n

,它是微积分中的发散级数,在计算机上计算该级数的部分

和,会得到怎么样的结果,为什么? clc;clear s=0; n=20;

for i=n-1:n+10000000000 t=1/i; s=s+t; end S 结果 s = 18.5697 for i=n-1:n+100000 s = 8.5952

for i=n-1:n+10000000000000

S 会随着i 的项数的增大而增大,到一定程度后不变。因为在计算机中如果一个数很小,计算机会默认为0.

6.指数函数的级数展开...!

3!213

2++++=x x x e x

,如果对于0

似计算指数函数的值,这样的算法结果是否会好,为什么? 1.clc,clear s=1; t=1; x=-1; for i=1:100000 t=t*i; tt=x^i/t; s=s+tt; end s

X=1;s=2.7183 x=-1; s= 0.3679 2.function s=powersin(x) s=0; m=1; t=1; n=1; while s+t~=s; s=s+t; m=m*n; t=-x^(n)/m; n=n+2; end

x=0,f=1;x=1,y= -0.4107;x=-1,f=2,4107

7.考虑数列n i x i ,...2,1,=,它的统计平均定义为

∑==n

i i x n x 1

1,

标准差2

121)(11??????--=∑=x x n n i i σ数学上等价于2

122

1)(11???

?????--=∑=x n x n n i i σ作为标准差的两种算法,你将如何评价他们的得与失。 1. clc,clear

a=input('请输入数据') n=length(a); sm=sum(a); ave=sm/n; b1=0; for i=1:n

b1=(a(i)-ave)^2+b1; end b1

b2=((1/(n-1))*b1)^(1/2) 结果 b1=133.9368 b2=11.5731 2.clc,clear

a=input('请输入数据') n=length(a); sm=sum(a); ave=sm/n; b3=0; for i=1:n

b3=(a(i))^2+b3;

end b3

b1=((1/(n-1)*(b3-n*(ave^2))))^(1/2) 结果 b3=189545; b1=11.8630

实验二 插值法计算实习题

1.已知函数在下列个点的值为

试用4次插值多项式(x)p 4及三次样条插值S(x)(自然边界条件)对数据进行插值。用图给出0,1,11,10}i 0.08i,0.2x ),y ,{(x i i i =+=,(x)p 4及S(x)。 一.对于多项式插值: 程序1:(第一种编程) (1)建立function 函数 function[c, d]=poly1(x, y) n=length(x); d=zeros(n, n); d(: , 1)=y'; for j=2 : n for k=j : n

d(k, j)=(d(k, j-1) - d(k-1, j-1)) / (x(k)-x(k-j+1)); end end

c =d(n, n);

for k=(n-1) : - 1 : 1

c =conv(c, poly(x(k))); m=length(c);

c(m)=c(m)+d(k, k); end

(2)建立一个主程序xunan1.m clc clear

poly1([0.2,0.4,0.6,0.8,1.0],[ 0.98, 0.92, 0.81, 0.64, 0.38]) 结果:ans =

-0.5208 0.8333 -1.1042 0.1917 0.9800 得出所求的牛顿多项式为: 0.9800 x 0.19171.1042x2-0.8333x3 0.5208x4- P(x)+++=

程序2:(第二种编程)

x=[0.2,0.4,0.6,0.8,1];

y=[0.98,0.92,0.81,0.64,0.38];

a=polyfit(x,y,length(x)-1);%插值

poly2sym(a)%输出插值多项式

结果:

ans =

-1172812402960947/2251799813685248*x^4+1876499844737413/22517998136852 48*x^3-4972724588554433/4503599627370496*x^2+6905519428633501/36028797 018963968*x+8827055269646203/9007199254740992

画图:

程序1:

x=0.2 ;

y=-0.5208*x^4+0.8333*x^3-1.1042*x^2+0.1917*x+0.9800

x=0.2+0.08i ;

y=-0.5208*x^4+0.8333*x^3-1.1042*x^2+0.1917*x+0.9800

x=0.2+0.08*11i;

y=-0.5208*x^4+0.8333*x^3-1.1042*x^2+0.1917*x+0.9800

x=0.2+0.08*10i ;

y=-0.5208*x^4+0.8333*x^3-1.1042*x^2+0.1917*x+0.9800

结果:

y =0.9800

y = 0.9847 - 0.0135i

y =1.2324 - 0.4306i

y = 1.2334 - 0.3466i

程序2:

x=[0.2 0.2+0.08i 0.2+0.08*11i 0.2+0.08*10i];

y=[0.9800 0.9847-0.0135i 1.2324-0.4306i 1.2334-0.3466i]

plot(x,y,'-r+')

结果:

-0.8

-0.6-0.4-0.200.20.40.60.81 1.2

0.951

1.05

1.1

1.15

1.2

1.25

二.对于样条插值: 程序1:

x = 0.2:0.2:1.0;

y=[ 0.98, 0.92, 0.81, 0.64, 0.38]; xx = linspace(0.2,1.0,21) cs = spline(x,y,xx) 结果: xx =

Columns 1 through 12

0.2000 0.2400 0.2800 0.3200 0.3600 0.4000 0.4400 0.4800 0.5200 0.5600 0.6000 0.6400 Columns 13 through 21

0.6800 0.7200 0.7600 0.8000 0.8400 0.8800 0.9200 0.9600 1.0000 cs =

Columns 1 through 12

0.9800 0.9718 0.9617 0.9497 0.9358 0.9200 0.9022 0.8823 0.8603 0.8362 0.8100 0.7815 Columns 13 through 21

0.7506 0.7168 0.6801 0.6400 0.5963 0.5488 0.4970 0.4409 0.380 clear clc

x = 0.2:0.2:1.0;

y=[ 0.98, 0.92, 0.81, 0.64, 0.38]; cs = spline(x,[0 y 0]) xx = linspace(0.2,1.0,21); plot(x,y,'o',xx,ppval(cs,xx),'-')

0.20.30.40.50.60.70.80.91

画图:

程序:

clear

clc

x = 0.2:0.2:1.0;

y=[ 0.98, 0.92, 0.81, 0.64, 0.38];

cs = spline(x,[0 y 0])

xx =[0.2 0.2+0.08i 0.2+0.08*11i 0.2+0.08*10i];

plot(x,y,'o',xx,ppval(cs,xx),'-')

0.2

0.30.40.50.60.70.80.91

2.在区间[-1,1]上分别取20,12=n 用两组等距节点对龙格函数2

2511

)(x

x f +=

作多项式插值及三次样 条插值,对每个n 值,分别画出插值函数及)(x f 的图形。 一.当10=n 时的程序: 结果:

a=-1;b=1;n=10; for i=1:11

x(i)=a+(i-1)*(b-a)/n; y(i)=1/(1+25*x(i)*x(i)); end

plot(x,y,'r-') hold on

z=a:(b-a)/(2*n):b; n=length(x); for j=2:n

for i=n:-1:j

y(i)=(y(i)-y(i-1))/(x(i)-x(i-j+1)); end end u=y(n);

m=length(z); for j=1:m

for i=n-1:-1:1

u=y(i)+u*(z(j)-x(i)); v(j)=u; end u=y(n); end

plot(z,v,'b') hold off

-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

1

-0.4-0.200.20.40.60.811.21.4

1.6

二.当20n 时的程序: a=-1;b=1;n=20 for i=1:21

x(i)=a+(i-1)*(b-a)/n; y(i)=1/(1+25*x(i)*x(i)); end

plot(x,y,'r-') hold on

z=a:(b-a)/(2*n):b; n=length(x); for j=2:n

for i=n:-1:j

y(i)=(y(i)-y(i-1))/(x(i)-x(i-j+1)); end end u=y(n);

m=length(z); for j=1:m

for i=n-1:-1:1

u=y(i)+u*(z(j)-x(i)); v(j)=u; end u=y(n); end

plot(z,v,'b') hold off 结果:

-1

-0.8-0.6-0.4-0.200.20.40.60.81

-40-35-30-25-20-15-10-50

5

3.下列数据点的插值

可以得到平方根函数的近似值,在区间[0,64]上作图。 (1)用这九个点作8次多项式插值8(x)L . (2)用三次样条(第一边界条件)程序求

从得到结果看在[0,64]上,哪个插值更精确;在区间[0,10]上,两种插值哪个更

精确?

一.

多项式插值 作图: 程序:

x=[0 1 4 9 16 25 36 49 64]; y=[0:1:8];

p=polyfit(x,y,8) X=0:1:64;

Y=polyval(p,X); plot(x,y,'r-',X,Y ,'y-') title('8次多项式') xlabel('x') ylabel('y')

0102030

40506070

-20

20

40

60

80

100

8次多项式

x

y

1..建立function 函数 function f=nan(x,y,x0) syms t;

if(length(x)==length(y)) n=length(x); else

disp('x!=y') return; end

f=0;

for(i=1:n)

l=y(i);

for(j=1:i-1)

l=l*(t-x(j))/(x(i)-x(j));

end

f=f+l;

if(i==n)

if(nargin==3)

f=subs(f,'t',x0);

else

f=collect(f);

f=vpa(f,6);

end

end

end

2.建立一个主程序xunan1.m

clear

clc

x=[0 1 4 9 16 25 36 49 64];

y=[0:1:8];

f=nan(x,y)

结果:

f =

.764716e-12*t^8+.535301e-10*t^7+.161447e-7*t^6+.171358e-5*t^5+.136120e-3*t^ 4+.615224e-2*t^3+.132896*t^2+.860814*t

(2)

三次样条插值:

程序:

%得到三次样条拟合函数

%得到三次样条拟合函数

syms x s

x1=[0 1 4 9 16 25 36 49 64];

y1=[0 1 2 3 4 5 6 7 8];

x2=[0:1:64];

y2=spline(x1,y1,x2);

p=polyfit(x2,y2,3)

S=p(1)+p(2)*x+p(3)*x^2+p(4)*x^3

plot(x2,y2)

hold on

plot(x1,y1,'r-')

结果:

p =

0.0000 -0.0042 0.2527 0.8876

S =

2288075067923491/73786976294838206464-2399112304472833/576460752303423 488*x+4552380473376713/18014398509481984*x^2+999337332656867/11258999 06842624*x^3

所以在[0,64]区间上样条插值更精确。

二.当[0,10]区间上

x=[0 1 4 9 16 25 36 49 64];

y=[0:1:8];

p=polyfit(x,y,8)

X=0:1:10;

Y=polyval(p,X);

plot(x,y,'r-',X,Y,'y-')

title('8次多项式')

xlabel('x')

ylabel('y')

结果:

102030

40506070

-101234

567

8x

y

程序: syms x s

x1=[0 1 4 9 16 25 36 49 64]; y1=[0 1 2 3 4 5 6 7 8]; x2=[0:1:10];

y2=spline(x1,y1,x2); p=polyfit(x2,y2,3)

S=p(1)+p(2)*x+p(3)*x^2+p(4)*x^3 plot(x2,y2) hold on

plot(x1,y1,'r-') title('三次样条') 结果:

010203040506070

1234567

8

由图可知在[0,10]区间上多项式插值更精确。

实验三 函数逼近与快速傅立叶变换

1. 对于给函数2

1

(x)125f x =

+在区间[-1,1]上去10.2(i 1,2,

,10)i x i =-+= ,

试求3次曲线拟合,试画出拟合曲线并打印方程,与实验二,第二章的计算实习题2的结果比较。 clc,clear n=11; for i=1:n

x(i)=-1+0.2*(i-1); y(i)=1/(1+25*x(i)*x(i)); end

A=polyfit(x,y,3)

z=polyval(A,x)

plot(x,y,'k+',x,z,'r')

结果:A =

0.0000 -0.5752 -0.0000 0.4841

f(x)= -0.5752*X^2+0.4841

2.由实验给出数据表

试求3次,4次多项式的曲线拟合,再根据数据曲线图形,求一个另外函数的拟合曲线,用图示数据曲线及相应的三种拟合曲线。

clc,clear

Matlab作业3(数值分析)答案

Matlab作业3(数值分析) 机电工程学院(院、系)专业班组 学号姓名实验日期教师评定 1.计算多项式乘法(x2+2x+2)(x2+5x+4)。 答: 2. (1)将(x-6)(x-3)(x-8)展开为系数多项式的形式。(2)求解在x=8时多项 式(x-1)(x-2) (x-3)(x-4)的值。 答:(1) (2)

3. y=sin(x),x从0到2π,?x=0.02π,求y的最大值、最小值、均值和标准差。 4.设x=[0.00.30.8 1.1 1.6 2.3]',y=[0.500.82 1.14 1.25 1.35 1.40]',试求二次多项式拟合系数,并据此计算x1=[0.9 1.2]时对应的y1。解:x=[0.0 0.3 0.8 1.1 1.6 2.3]'; %输入变量数据x y=[0.50 0.82 1.14 1.25 1.35 1.40]'; %输入变量数据y p=polyfit(x,y,2) %对x,y用二次多项式拟合,得到系数p x1=[0.9 1.2]; %输入点x1 y1=polyval(p,x1) %估计x1处对应的y1 p = -0.2387 0.9191 0.5318 y1 = a) 1.2909

5.实验数据处理:已知某压力传感器的测试数据如下表 p为压力值,u为电压值,试用多项式 d cp bp ap p u+ + + =2 3 ) ( 来拟 合其特性函数,求出a,b,c,d,并把拟合曲线和各个测试数据点画在同一幅图上。解: >> p=[0.0,1.1,2.1,2.8,4.2,5.0,6.1,6.9,8.1,9.0,9.9]; u=[10,11,13,14,17,18,22,24,29,34,39]; x=polyfit(p,u,3) %得多项式系数 t=linspace(0,10,100); y=polyval(x,t); %求多项式得值 plot(p,u,'*',t,y,'r') %画拟和曲线 x = 0.0195 -0.0412 1.4469 9.8267

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

数值分析实验报告176453

实验报告 插值法 数学实验室 数值逼近 算法设计 级 ____________________________ 号 ____________________________ 名 _____________________________ 实验项目名称 实验室 所属课程名称 实验类型 实验日期

实验概述: 【实验目的及要求】 本次实验的目的是熟练《数值分析》第二章“插值法”的相关内容,掌握三种插 多项式插值,三次样条插值,拉格朗日插值,并比较三种插值方法的 优劣。 本次试验要求编写牛顿多项式插值,三次样条插值,拉格朗日插值的程序编码,并 去实现。 【实验原理】 《数值分析》第二章“插值法”的相关内容,包括:牛顿多项式插值,三次样条插值, 拉格朗日 插值的相应算法和相关性质。 【实验环境】(使用的软硬件) 软件: MATLAB 2012a 硬件: 电脑型号:联想 Lenovo 昭阳E46A 笔记本电脑 操作系统: Win dows 8专业版 处理器:In tel ( R Core ( TM i3 CPU M 350 @2.27GHz 2.27GHz 实验内容: 【实验方案设计】 第一步,将书上关于三种插值方法的内容转化成程序语言,用 MATLA B 现; 第二步,分别用牛顿多项式插值,三次样条插值,拉格朗日插值求解不同的问题。 【实验过程】(实验步骤、记录、数据、分析) 实验的主要步骤是:首先分析问题,根据分析设计 MATLA 程序,利用程序算出 问题答案,分析所得答案结果,再得出最后结论。 实验一: 已知函数在下列各点的值为 试用4次牛顿插值多项式 P 4( x )及三次样条函数 S ( x )(自然边界条件)对数据进行插值。 用图给出{( X i , y i ), X i =0.2+0.08i , i=0 , 1, 11, 10 } , P 4 ( x )及 S ( x )。 值方法:牛顿 在MATLAB 件中

数值分析实验指导2012

数值分析实验指导 2012年8月

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对(1.1)中19x 的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个MATLAB 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 p o l y (v b = 的输出b 是一个n+1维向量,它是以n 维向量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ) )20:1((; )2();21,1(;000000001.0ve poly roots ess ve zeros ve ess +=== 上述简单的MATLAB 程序便得到(1.2)的全部根,程序中的“ess ”即是(1.2)中的ε。

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

《MATLAB与数值分析》第一次上机实验报告

电子科技大学电子工程学院标准实验报告(实验)课程名称MATLAB与数值分析 学生姓名:李培睿 学号:2013020904026 指导教师:程建

一、实验名称 《MATLAB与数值分析》第一次上机实验 二、实验目的 1. 熟练掌握矩阵的生成、加、减、乘、除、转置、行列式、逆、范数等运算 操作。(用.m文件和Matlab函数编写一个对给定矩阵进行运算操作的程序) 2. 熟练掌握算术符号操作和基本运算操作,包括矩阵合并、向量合并、符号 转换、展开符号表达式、符号因式分解、符号表达式的化简、代数方程的符号解析解、特征多项式、函数的反函数、函数计算器、微积分、常微分方程的符号解、符号函数的画图等。(用.m文件编写进行符号因式分解和函数求反的程序) 3. 掌握Matlab函数的编写规范。 4、掌握Matlab常用的绘图处理操作,包括:基本平面图、图形注释命令、 三维曲线和面的填充、三维等高线等。(用.m文件编写在一个图形窗口上绘制正弦和余弦函数的图形,并给出充分的图形注释) 5. 熟练操作MATLAB软件平台,能利用M文件完成MATLAB的程序设计。 三、实验内容 1. 编程实现以下数列的图像,用户能输入不同的初始值以及系数。并以x, y为坐标显示图像 x(n+1) = a*x(n)-b*(y(n)-x(n)^2); y(n+1) = b*x(n)+a*(y(n)-x(n)^2) 2. 编程实现奥运5环图,允许用户输入环的直径。 3. 实现对输入任意长度向量元素的冒泡排序的升序排列。不允许使用sort 函数。 四、实验数据及结果分析 题目一: ①在Editor窗口编写函数代码如下:

数值分析实验题

实验2.1 多项式插值的振荡现象 问题提出:考虑在一个固定的区间上用插值逼近一个函数。显然Lagrange 插值中的使用节点越多,插值多项式的次数就越高.我们自然就关心插值多项式的次数增加时,()n L x 是否也更加靠近被逼近的函数.Runge 给出的一个例子就是极著名并富有启发性的.设区间[-1,1]上的函数 ()2 1 125f x x = +. 实验内容:考虑区间[-1,1]的一个等距划分,分点为 21,0,1,2,,,i i x i n n =-+ = 则拉格朗日插值多项式为 ()()201 125n n i i i L x l x x ==+∑ . 其中,(),0,1,2,,i l x i n =是n 次Lagrange 插值基函数. 实验要求: (1) 选择不断增大的分点数目2,3, n =,画出原函数()f x 及插值多项式()n L x 在 [-1,1]上的图像,并比较分析实验结果. (2) 选择其他的函数,例如定义在区间[-5,5]上的函数 ()()4 ,arctan ,1x h x g x x x = =+ 重复上面的实验看结果如何. 解:matlab 程序代码

实验结果: f(x)结果如下

h(x)结果如下 g(x)结果如下

结果分析:适当提高插值多项式的次数,可以提高逼近的精度,但次数太高反而会产生不良效果。主要是次数越高,计算工作量大,积累的误差也大;在整个区间上做高次多项式,但局部插值节点处的值有微笑偏差时,可能会影响整个区间上函数值的很大变化,使计算很不稳定。从上图可以看出,高次插值不准确。 实验3.1 编制以函数{} n k k x =为基的多项式最小拟合程序,并对表3.11中的数据作3次多项式最小二 乘拟合. 表3.11 取权数1i w ≡,求拟合曲线0 n k k k x ?α * *== ∑中的参数{}k α、平方误差2δ,并作离散数据 {},i i x y 的拟合函数()y x ?*=的图形. 解:matlab 程序代码 实验结果:

数值分析试验一

数值分析第一次实验报告 姓名: 学号: 实验1: 1. 实验项目的性质和任务 通过上机实验,使学生对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。 2.教学内容和要求 1)对高阶多多项式 20 1()(1)(2)(20)()k p x x x x x k ==---=-∏ 编程求下面方程的解 19()0p x x ε+= 并绘图演示方程的解与扰动量ε的关系。(实验) 2)对2~20n =,生成对应的Hilbert 矩阵,计算矩阵的条件数;通过先确定解获得常向量b 的方法,确定方程组 n H x b = 最后,用矩阵分解方法求解方程组,并分析计算结果。(第三章,实验题4) 3)对函数 2 1()[1,1]125f x x x =∈-+ 的Chebyshev 点 (21)cos( ) 1,2,...,12(1) k k x k n n π -==++ 编程进行Lagrange 插值,并分析插值结果。(第四章 实验1)

项目涉及核心知识点 病态方程求解、矩阵分解和方程组求解、Lagrange插值。 重点与难点 算法设计和matlab编程。 1)a.实验方案: 先创建一个20*50的零矩阵X,然后利用Matlab中的roots()和poly()函数将50个不同的ess扰动值所产生的50个解向量分别存入X矩阵中。然后再将ess向量分别和X的20个行向量绘图。即可直观的看出充分小的扰动值会产生非常大的偏差。即证明了这个问题的病态性。 b.编写程序: >> X=zeros(20,50); >> ve=zeros(1,21); >> ess=linspace(0,,50);k=1; >> while k<=50 ve(2)=ess(k); X(1:20,k)=roots(poly(1:20)+ve); k=k+1; end >> m=1; >> while m<=20 figure(m),plot(ess,X(m,:));

数值分析实验一

数值分析 实验一 一、实验目的 熟悉MATLAB 编程。 学习线性方程组数值解法的程序设计算法。 二、实验题目 1.给定线性方程组 (a )用LU 分解和列主元消去法求解。输出A=LU 的分解的L 和U ,detA 以及解向量x 。 (b )将2.099999改为2.1,5.900001改为5.9.用列主元消去法求解。输出detA 及解向量 x ,并与(a )的结果比较。 2。线性方程组Ax=b 的A 及b 为 10 7 8 9 32 7 5 6 5 23 A= 8 6 10 9 b= 33 7 5 9 10 31 则解x=(1,1,1,1)T 用MATLAB 内部函数求detA 及A 的所有特征值和cond (A )2。若令 ????????????=????????????????????????----15900001.582012151526099999.2310 7104321x x x x

10 7 8.1 7.2 A+δA= 7.08 5.04 6 5 8 5.98 9.89 9 6.99 5 9 9.98 求解(A+δA )(x+δx )=b,输出向量δx 和2 从理论结果和实际计算两方面分析线性方程组Ax=b 解的相对误差2 及A 的相对误差2 的关系。 三、实验原理与理论基础 1.本题用LU 分解法及列主元高斯消去法 LU 分解法原理: 解Ax=b 相当于解两个三角方程,即 Ly=b,Ux=y 分解求出x 和y 。 列主元消去法原理: 利用逐次消去未知数的方法,把线性方程组 Ax=b 化为与其等价的三角形线性方程组,求解线性方程组的方法可用回代的方法求。 2.本题通过 计算式: ) ()()(min max 2122T T AA A A A A A cond λλ==- 来计算A 的谱子条件数。 四、实验内容 1.解: (a )LU 分解法: 程序如下: function [ x ] = zhijiejiefangcheng( A,b )

数值分析实验报告

数值分析实验报告 姓名:周茹 学号: 912113850115 专业:数学与应用数学 指导老师:李建良

线性方程组的数值实验 一、课题名字:求解双对角线性方程组 二、问题描述 考虑一种特殊的对角线元素不为零的双对角线性方程组(以n=7为例) ?????????? ?????? ? ???? ?d a d a d a d a d a d a d 766 55 44 3 32 211??????????????????????x x x x x x x 7654321=?????????? ? ???????????b b b b b b b 7654321 写出一般的n (奇数)阶方程组程序(不要用消元法,因为不用它可以十分方便的解出这个方程组) 。 三、摘要 本文提出解三对角矩阵的一种十分简便的方法——追赶法,该算法适用于任意三对角方程组的求解。 四、引言 对于一般给定的d Ax =,我们可以用高斯消去法求解。但是高斯消去法过程复杂繁琐。对于特殊的三对角矩阵,如果A 是不可约的弱对角占优矩阵,可以将A 分解为UL ,再运用追赶法求解。

五、计算公式(数学模型) 对于形如????? ?? ????? ??? ?---b a c b a c b a c b n n n n n 111 2 2 2 11... ... ...的三对角矩阵UL A =,容易验证U 、L 具有如下形式: ??????? ????? ??? ?=u a u a u a u n n U ...... 3 3 22 1 , ?? ????? ? ?? ??????=1 (1) 1132 1l l l L 比较UL A =两边元素,可以得到 ? ?? ??-== = l a b u u c l b u i i i i i i 111 i=2, 3, ... ,n 考虑三对角线系数矩阵的线性方程组 f Ax = 这里()T n x x x x ... 2 1 = ,()T n f f f f ... 2 1 = 令y Lx =,则有 f Uy = 于是有 ()?????-== --u y a f y u f y i i i i i 1 1 11 1 * i=2, 3, ... ,n 再根据y Lx =可得到

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

数值分析实验题目及解答

内容包括: 实验题目1:算法的数值稳定性实验 实验题目2:LU分解实验 实验题目3:三次样条插值外推样条实验 实验题目4:第二类Fredholm 积分方程实验实验题目5:M级显式R_K法

实验题目:算法的数值稳定性实验 实验内容:计算积分()1 0()d 1515n x I n x a x ==+? (n=1,2,…,20) 易得到下面递推公式 ()()1 1I n aI n n =--+ 并有估计式 ()() ()() 1 1 111I n a n a n << +++ 计算方法: 算法一:采用下面递推公式计算: ()()1 1I n aI n n =--+ ()1,2,,20 n = 取初值()116 0ln ln 15a I a +== 算法二: 采用下面递推公式计算: ()()111I n I n a n ??-= -+???? ()20,19,,1 n =

结果分析:(分析哪个好哪个不好,原因是什么) 我觉得算法二比较好, 原因一:根据式 ()() ()() 1 1 111I n a n a n << +++得知,I(n)不可能小于 零,而算法一的计算结果有部分结果小于零。原因二:对算法一记初始误差 ε0=/I 0-I(0)/>0; 则εn =/I n -I(n)/=a/I n-1-I(n-1)/=a n *ε0 由此可知,当n=20时, ε20把ε0放大了a 20倍,其结果造成严重的。 而对于算法二^ ^ 11n n a εε-= ,…, ^ ^ 01 n n a εε=,尽管有初始误差^ 20ε,但随着计算的进程,这个误差的影响不断减小。 附:源程序:(把源程序附上) 算法一程序: >> format long >> a=15;I=log(16/15); for n=1:20 n I=-a*I+1/n end 算法二程序: >> format long >> a=15;I=31/10080; >> for n=20:-1:1 n I I=1/a*(-I+1/n); End

数值分析实验报告

学生实验报告实验课程名称 开课实验室 学院年级专业班 学生姓名学号 开课时间至学年学期

if(A(m,k)~=0) if(m~=k) A([k m],:)=A([m k],:); %换行 end A(k+1:n, k:c)=A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c); %消去end end x=zeros(length(b),1); %回代求解 x(n)=A(n,c)/A(n,n); for k=n-1:-1:1 x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k); end y=x; format short;%设置为默认格式显示,显示5位 (2)建立MATLAB界面 利用MA TLAB的GUI建立如下界面求解线性方程组: 详见程序。 五、计算实例、数据、结果、分析 下面我们对以上的结果进行测试,求解:

? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - - 7 2 5 10 13 9 14 4 4 3 2 1 13 12 4 3 3 10 2 4 3 2 1 x x x x 输入数据后点击和,得到如下结果: 更改以上数据进行测试,求解如下方程组: 1 2 3 4 43211 34321 23431 12341 x x x x ?? ???? ?? ???? ?? ???? = ?? ???? - ?? ???? - ???? ?? 得到如下结果:

综合实验数值计算

数学与统计学院 数 学 综 合 实 验 报 告 班级:2013级数学三班姓名:康萍

数 值 计 算 一、实验目的 本实验通过介绍Mathmatca 的数值计算功能,它的特点是准确计算与数值计算相结合,能够通过可选参数提高计算精度,学习包括数据的拟合及插值、数值积分与方程的近似解、极值问题、最优化与数理统计方面的内容。 二、实验环境 基于Windows 环境下的Mathematica7.0软件与Mathematica9.0软件。 三、实验的基本理论和方法 1、 Mathmatica 提供了进行数据拟合的函数: Fit[data,funs,vars] 对数据data 用最小二乘法求函数表funs 中各函数的一个线性组合作为所求的近似解析式,其中vars 是自变量或自变量的表。 Fit[data, { }x ,1, x ] 求形如bx a y +=的近似函数式。 Fit[data, { }2,,1x x , x ] 求形如2cx bx a y ++=的近似函数式。 Fit[data, { }xy y x ,,,1, {}y x ,] 求形如dxy cy bx a y +++=的近似函数式。 2、 函数InterpolatingPolynomial 求一个多项式,使给定的数据是准确的函数值,其调用格式如下: InterpolatingPolynomial[{ ,,21f f },x] 当自变量为1,2,…时的函数值为 ,,21f f 。 InterpolatingPolynomial[{ ),,(),,(2211f x f x },x] 当自变量为i x 时的函数值为i f InterpolatingPolynomial[{}}},,,,{,{1111 ddf df f x ,x] 规定点i x 处的函数值。 3、 求定积分的数值解有两种方法: 使用N[Integrate[f,{x,a,b}],n]或使用NIntegrate[f,{x,a,b}]前者首先试图求符号

数值分析实验2014

数值分析实验(2014,9,16~10,28) 信计1201班,人数34人 数学系机房 数值分析 计算实习报告册 专业 学号 姓名 2014~2015年第一学期

实验一 数值计算的工具 Matlab 1.解释下MATLAB 程序的输出结果 程序: t=0.1 n=1:10 e=n/10-n*t e 的结果:0 0 -5.5511e-017 0 0 -1.1102e-016 -1.1102e-016 0 0 0 2.下面MATLAB 程序的的功能是什么? 程序: x=1;while 1+x>1,x=x/2,pause(0.02),end 用迭代法求出x=x/2,的最小值 x=1;while x+x>x,x=2*x,pause(0.02),end 用迭代法求出x=2*x,的值,使得2x>X x=1;while x+x>x,x=x/2,pause(0.02),end 用迭代法求出x=x/2,的最小值,使得2x>X 3.考虑下面二次代数方程的求解问题 02=++c bx ax 公式a ac b b x 242-+-=是熟知的,与之等价地有a c b b c x 422-+-=,对于 1,100000000,1===c b a ,应当如何选择算法。 应该用a ac b b x 242-+-=计算,因为b 做分母 4.函数)sin(x 有幂级数展开...! 7!5!3sin 7 53+-+-=x x x x x 利用幂级数计算x sin 的MATLAB 程序为

function s=powersin(x) s=0; t=x; n=1; while s+t~=s; s=s+t ; t=-x^2/((n+1)*(n+2))*t ; n=n+2; end t1=cputime; pause(10); t2=cputime; t0=t2-t1 (a)解释上述程序的终止准则。 当s+t=s ,终止循环。 (b)对于2/21,2/11 ,2/πππ=x 计算的进度是多少?分别计算多少项? X=pi/2时,s =1.0000 x=11pi/2时,s=-1.0000 x=21pi/2时,s =0.9999 Cputime 分别是0.1563 0.0469 0.0156 5.考虑调和级数∑∞ =11 n n ,它是微积分中的发散级数,在计算机上计算该级数的部 分和,会得到怎么样的结果,为什么? function s=fun(n) s=0; t=1/n; for i=1:n s=s+1/i; end 当n=100时s =5.1874 当n=80时s =4.9655 当n=50时,s =4.4992 当n=10时,s =2.9290 6.指数函数的级数展开...! 3!213 2++++=x x x e x ,如果对于0

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

数值分析实验报告

实验报告 实验项目名称 估计水塔的水流量 实验项目类型 验证 演示 综合 设计 其他 指导教师 成绩 一、实验目的 (1)学会对实际问题的分析方法 (2)学会利用所学的知识解决实际问题 (3)设计出相应的算法,编制相应的应用程序 二、实验内容 某居民区,其自来水是有一个圆柱形水塔提供,水塔高12.2m ,塔的直径为17.4m ,水塔是由水泵根据水塔中的水位自动加水,一般水泵每天工作两次。按照设计,当水塔中的水位降低至最低水位,约8.2m 时,水泵自动启动加水。当水位升至最高水位,约10.8m 时,水泵停止工作。 下表给出了某一天的测量记录,测量了28个时刻的数据,但由于水泵正向水塔供水,由3个时刻无法测量到水位(表中为—)。 试建立数学模型,计算居民的用水速度和日总用水量。 三、实验原理、方法(算法)、步骤 时刻 0 0.921 1.843 2.949 3.871 4.978 5.900 水位 9.677 9.479 9.308 9.125 8.982 8.814. 8.686 时刻 7.006 7.928 8.967 9.981 10.925 10.945 12.032 水位 8.525 8.388 8.220 — — 10.820 10.500 时刻 12.954 13.875 14.982 15.903 1 6.826 1 7.931 19.037 水位 10.210 9.936 9.653 9.409 9.180 8.921 8.662 时刻 1 9.959 20.839 22.015 22.958 23.880 24.986 25.908 水位 8.433 8.220 — 10.820 10.591 10.354 10.180

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对(1.1)中19x 的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b = 的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

数值分析实验(2)word版本

数值分析实验(2)

实验二 插值法 P50 专业班级:信计131班 姓名:段雨博 学号:2013014907 一、实验目的 1、熟悉MATLAB 编程; 2、学习插值方法及程序设计算法。 二、实验题目 1、已知函数在下列各点的值为 试用4次牛顿插值多项式()4P x 及三次样条函数()S x (自然边界条件)对数据进行插值用图给出(){},,0.20.08,0,1,11,10i i i x y x i i =+=,()4P x 及()S x 。 2、在区间[]1,1-上分别取10,20n =用两组等距节点对龙格函数()2 1125f x x = +作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及()f x 的图形。 3、下列数据点的插值 可以得到平方根函数的近似,在区间[]0,64上作图 (1)用这9个点作8次多项式插值()8L x (2)用三次样条(第一边界条件)程序求()S x 从得到结果看在[]0,64上,哪个插值更精确;在区间[]0,1上,两种插值哪个更精确? 三、实验原理与理论基础

1、拉格朗日差值公式 )()(111k k k k k k x x x x y y y x L ---+ =++ 点斜式 k k k k k k k k x x x x y x x x x y x L --+--=++++11111)( 两点式 2、n 次插值基函数 ....,2,1,0,)()(0n j y x l y x L i j n k k k j n ===∑= n k x x x x x x x x x x x x x l n k n k k k k k ,...,1,0,) () (... ) () (... ) () ()(1100=------= -- 3、牛顿插值多项式 ...))(](,,[)](,[)()(102100100+--+++=x x x x x x x f x x x x f x f x P n ))...(](,...,[100---+n n x x x x x x f )(],...,,[)()()(10x x x x f x P x f x R n n n n +=-=ω 4、三次样条函数 若函数],,[)(2b a C x S ∈且在每个小区间],[1+j j x x 上是三次多项式,其中, b x x x a n =<<<=...10是给定节点,则称)(x S 是节点n x x x ,...,,10上的三次样条函数。若在节点j x 上给定函数值),,...,2,1,0)((n j x f y j i ==并成立,,...,2,1,0,)(n j y x S i j ==则称)(x S 为三次样条插值函数。 5、三次样条函数的边界条件 (1)0)()(''''''00''====n n f x S f x S (2)'''00')(,)(n n f x S f x S == 四、实验内容 1、M 文件: function [p]=Newton_Polyfit(X,Y) format long g r=size(X); n=r(2); M=ones(n,n); M(:,1)=Y'; for i=2:n

数值分析期末实验报告

数值计算方法论文 论文名称:数值计算方法期末总结 学号: 姓名: 完成时间: 摘要:数值计算方法是数学的一个重要分支,以用计算机求解数学问题的理论和方法为研究对象。本文是我对本学期数值分析这门课程中所学到的内容以及所作的工作的总结。通过一学期的学习,我深入学习了线性方程组的解法,非线

性方程的求根方法,矩阵特征值与特征向量的计算,函数的插值方法,最佳平方逼近,数值积分与数值微分,常微分方程初值问题的数值解法。通过陶老师课堂上的讲解和课下的上机训练,对以上各个章节的算法有了更深刻的体会。 最后做了程序的演示界面,使得程序看起来清晰明了,便于查看与修改。通过本学期的学习。 关键词:数值计算方法、演示界面 第一章前言 随着电子计算机的普及与发展,科学计算已成为现代科学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 第二章基本概念 2.1算法 算法是指由基本算术运算及运算顺序的规定构成的完整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 2.2 误差 计算机的计算结果通常是近似的,因此算法必有误差,并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表2.1 表2.1 第三章泛函分析 2.1泛函分析概要

泛函分析(Functional Analysis)是研究“函数的函数”、函数空间和它们之间变换(映射)的一门较新的数学分支,隶属分析数学。它以各种学科为具体背景,在集合的基础上,把客观世界中的研究对象抽象为元素和空间。如:距离空间,赋范线性空间,内积空间。 2.2 范数 范数,是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,泛函是一个函数,其为矢量空间内的所有矢量赋予非零的正长度或大小。 这里以Cn空间为例,Rn空间类似。最常用的范数就是p-范数。若 ,那么 当p取1,2,∞的时候分别是以下几种最简单的情形: 1-范数:║x║1=│x1│+│x2│+…+│xn│ 2-范数:║x║2=(│x1│2+│x2│2+…+│xn│2)1/2 ∞-范数:║x║∞=max(│x1│,│x2│,…,│xn│) 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式:║x║∞≤ ║x║2≤ ║x║1≤ n1/2║x║2≤ n║x║∞ 另外,若p和q是赫德尔(Hölder)共轭指标,即1/p+1/q=1,那么有赫德尔不等式: || = ||xH*y| ≤ ║x║p║y║q 当p=q=2时就是柯西-许瓦兹(Cauchy-Schwarz)不等式 一般来讲矩阵范数除了正定性,齐次性和三角不等式之外,还规定其必须满足相容性:║XY║≤║X║║Y║。所以矩阵范数通常也称为相容范数。 如果║·║α是相容范数,且任何满足║·║β≤║·║α的范数║·║β都不是相容范数,那么║·║α称为极小范数。对于n阶实方阵(或复方阵)全体上的任何一个范数║·║,总存在唯一的实数k>0,使得k║·║是极小范数。 注:如果不考虑相容性,那么矩阵范数和向量范数就没有区别,因为mxn矩阵全体和mn维向量空间同构。引入相容性主要是为了保持矩阵作为线性算子的特征,这一点和算子范数的相容性一致,并且可以得到Mincowski定理以外的信息。 第四章算法总结 本学期讲解过的主要算法列举如下:线性方程组的解法(高斯消元法,列主消元法,Doolittle分解法,追赶法,LDL'分解法,Jacobi分解法,Seidel迭

相关主题
文本预览
相关文档 最新文档