计算机仿真实验3数值积分算法

计算机仿真实验3数值积分算法
计算机仿真实验3数值积分算法

实验三 利用数值积分算法的仿真实验

学号: 姓名: 学院:

一. 实验目的

1) 熟悉MATLAB 的工作环境;

2) 掌握在MATLAB 命令窗口调试运行程序;

3) 掌握M 文件编写规则及在MATLAB 命令窗口运行程序;

4) 掌握利用欧拉法、梯形法、二阶显式Adams 法及四阶龙格库塔法构建

系统仿真模型的方法,并对仿真结果进行分析。

二.实验内容

电路如图1所示电路进行仿真试验。电路元件参数:V E 1=,Ω=10R ,

H L 01.0=,F C μ1=。电路元件初始值:A i L 0)0(=,V u c 0)0(=。系统输

出量为电容电压)(t u c 。

DC

R

C )

(t u c +-

)

(t i L 图1 RLC 串联电路

E

三. 实验步骤

1. 求连续系统传递函数

根据所示电路图,我们利用电路原理建立系统的传递函数模型,根据系统的传递函数是在零初始条件下输出量的拉普拉斯变换与输入量的拉普拉斯变换之比,可得该系统的传递函数:

LC

Ls R s LC

s E s U s G C /1//1)()()(2

++==

2. 离散系统仿真模型

在连续系统的数字仿真算法中,较常用的有欧拉法、梯形法、二阶显式Adams 法及显式四阶Runge-Kutta 法等。欧拉法、梯形法和二阶显式Adams 法是利用离散相似原理构造的仿真算法,而显式四阶Runge-Kutta 法是利用Taylor 级数匹配原理构造的仿真算法。对于线性系统,其状态方程表达式为:

()()()

()()()

t t t t t t ?=+?

=+?x Ax Bu y Cx Du 00)(x x =t 式(3-1)中,[]T

n t x t x t x )()()(21 =x 是系统的n 维状态向

量,[]

T

m t u t u t u t )()()()(21 =u 是系统的m 维输入向量,

[]T

r t y t y t y t )()()

()(21 =y 是系统的r 维输出向量。A 为n n ?阶参数矩阵,

又称动态矩阵,B 为m n ?阶输入矩阵,C 为n r ?阶输出矩阵,D 为m r ?阶交联矩阵。根据图所示电路,系统状态方程模型:

)

()()()(t t E t t Cx y B Ax x

=+=

式中,状态变量T C L T u i x x ],[],[21==x ,输出变量C u t =)(y ,系数矩阵为:

??????--=0/1/1/C L L R A ,??

?

???=0/1L B ,[]10=C 。 (1) 欧拉法

利用前向欧拉法构建线性系统的仿真模型为:

()1111

m m m m m

m m m h h h ++++?=+=++??

=+??x x x 1A x Bu y Cx Du 式中,h 为积分步长,1为单位矩阵。利用后向欧拉法构建线性系统的仿真模型为:

()()111

1111

m m m m m m m m h h h -++++++?=+=-+??

=+??x x x 1A x Bu y Cx Du 对于前向欧拉法,系数矩阵为:A 1A h z +=,B B h z =,C C =z ,D=0。对于后向欧拉法,系数矩阵为:()

1

z h -=-A 1A

,()

1

z h h -=-B 1A

B ,

C C =z 。

(2) 梯形法

利用梯形法构建线性系统的仿真模型为:

()()111

111112222m m

m m m m m m m m m h h h h ++-+++++?=++??

????????

=-+++???

? ????????

?=+???

x x x x x 1A 1A x B u u y Cx Du 对图所示的系统,利用梯形法构造的系统差分方程具有形式:

111

2m t m t m t m E +++=+=x A x B y C x

其系数矩阵为:()()1

/2

/2t h h -=-+A 1A 1A

,,

()

1

/2/2

t h h -=-B 1A B ,t =C C ,D = 0。

(3)二阶显式Adams 法

利用二阶显式Adams 法构建线性系统的仿真模型为:

112111

2316512m m m m m m m m h

+--+++???=+-+????

?=+?x x F F F y

Cx Du

式中: ()()()

111222m m m m m m m m m ------?=+??

=+??=+??F Ax Bu F Ax Bu F Ax Bu

二阶显式Adams 法为多步计算方法,利用多步计算方法对系统进行仿真时,需要与之具有相同计算精度的单步计算方法辅助计算。二阶显式Adams 法的计算精度为二阶,可以采用梯形法或改进的Euler 法等辅助计算。利用改进的Euler 法构建线性系统的仿真模型为:

()1211112(,)(,)()2m m m m m m m m f t x E f t h x h h E h +?

?==+??

=++=++??

?=++??

k Ax B k k A x k B x x k k 其中,0,1m =。由式计算出1x 和2x 后,便可以转入由二阶显式Adams 法构造的离散系统模型计算,即系统差分方程。其计算方程为:

()()()

1122m m m m m m E E E ----?=+??

=+??=+??F Ax B F Ax B F Ax B 11211

2316512m m m m m m m h +--++???=+-+????

?=?x x F F F y

Cx (1m >) (4)显式四阶Runge-Kutta 法

利用显式四阶Runge-Kutta 法构建线性系统的仿真模型为:

()()()121132243311

2341

1

(,)(,)/222(,)/222

(,)(22)6m m m m m m m m m m m m m m m m f t E

h h

f t h E h h

f t h E f t h h h E h

+++?==+??=++=++???=++=++??

?=++=++??=++++???=?k x Ax B k x k A x k B k x k A x k B k x k A x k B x x k k k k y Cx

3. 连续系统解析解

连续系统输出响应)(t u c 的解析解为:

))/sin (cos 1()(ωωωx t t e U t u at s c ?+?-=-

其中,L

R

x 2=,2

21??

? ??-=

L R LC

ω 4. Matlab 仿真

利用Matlab 软件进行编程仿真,分别利用欧拉法、梯形法、二阶显式Adams 法及显式四阶Runge-Kutta 法对电路进行仿真得到图形曲线,比较分析算法特性与积分步长h 的关系。

取不同的积分步长h ,仿真结果如下: (1)仿真时间t=0.01s ,积分步长

h=10-6s

(2)仿真时间t=0.01s,积分步长h=2*10-6s

(3)仿真时间t=0.01s,积分步长h=10-5s

(4)仿真时间t=0.01s,积分步长h=5*10-5s

(5)仿真时间t=0.01s,积分步长h=10-4s

(6)仿真时间t=0.01s,积分步长h=2*10-4s

(7)仿真时间t=0.01s,积分步长h=4*10-4s

四、实验结论

随着步长的增加,各种方法逐渐与曲线分离开来,仿真效果逐渐变差。故仿真步长越小,仿真效果越好。对比分析几种方法,有:

难易性:欧拉法为单步计算法,用到一个过去的值,只要给定初始值就能迭代进行,为自动起步的。梯形法也为单步法,可以自动起步计算。梯形法用了两条折线所谓面积来近似。二阶显示Adams法需要知道k个初始值,不能自起步,二次函数很复杂,常用单步法来得到所需的几个初始值,很为复杂。显式四阶Runge-Kutta法建模最为复杂,仿真时间也较长。

稳定性:我们看到欧拉法最先与解析解分离开来,最后振荡开来,故稳定性最低;显式四阶Runge-Kutta法、二阶显示Adams法和梯形法而则在较长时间可与曲线拟合收敛,故稳定性好。

精度:显式四阶Runge-Kutta法,二阶显示Adams法模型的精度较高,函数曲线与真实曲线较为接近。其次精确的是梯形法,取梯形面积,误差也较小。前向欧拉法和后向欧拉法模型的精度最低。

离散时间间隔:二阶显示Adams法和梯形法对离散时间间隔要求低,前向欧拉法和后向欧拉法由于取的是矩形面积,离散时间间隔要求高。

从以上几种方法的仿真,共同规律是在小步长下都收敛,步长越小,误差越小,函数曲线与真实曲线较为接近;步长太大,最后的到的结果不是绝对收敛。同时,同一算法隐式算法要比显式算法稳定性好,计算精度高。

Matlab仿真程序如下:

% 实验三利用数值积分算法的仿真实验 %

function []=RLC(R,L,C,U,t,h)

R=10;

L=0.01;

C=1.0e-6;

U=1;

t=0.01;

h = 2.0e-4;

m = fix(t/h);

n = 2;

A = [-R/L -1/L;1/C 0];

B = [1/L;0];

D = [0 1];

E = [1 0;0 1];

% 前向欧拉法 %

for i=1:1:n

x1(1:n,1) = 0;

end

for k=1:m

x1(1:n,k+1) = x1(1:n,k) + (A* x1(1:n,k)+B)*h;

end

for k=1:1:m

y1(k) = D*x1(1:n,k);

end

% 后向欧拉法 %

for i=1:1:n

x2(1:n,1) = 0;

end

A1 = inv(E-A*h);

for k=1:m

x2(1:n,k+1) = A1*(x2(1:n,k) + B*h);

end

for k=1:1:m

y2(k) = D*x2(1:n,k);

end

% 梯形法 %

for i=1:1:n

x3(1:n,1) = 0;

end

A2 = inv(E-A*h/2);

for k=1:m

x3(1:n,k+1) = A2*( x3(1:n,k) + B*h + A*x3(1:n,k)*h/2);

end

for k=1:1:m

y3(k) = D*x3(1:n,k);

end

% 二阶显示Adams法 %

for i=1:1:n

x4(1:n,1) = 0;

end

for k=1:m

x4(1:n,k+1) = A2*(x4(1:n,k) + B*h + A*x4(1:n,k)*h/2);

end

for k=3:m

fm1 = 23*(A*x4(1:n,k)+ B);

fm2 = -16*(A*x4(1:n,k-1)+ B);

fm3 = 5*(A*x4(1:n,k-2)+ B);

x4(1:n,k+1) = x4(1:n,k)+(fm1+fm2+fm3)*h/12;

end

for k=1:1:m

y4(k) = D*x4(1:n,k);

end

% 四阶Runge-Kutta法 %

for i=1:1:n % 状态变量初值

x5(1:n,1) = 0;

end

for k=1:m

x5(1:n,k+1) = A2*( x5(1:n,k) + B*h + A*x5(1:n,k)*h/2);

end

for k=1:1:m

k1=A*x5(1:n,k+1);

k2=A*(x5(1:n,k+1)+h*k1/2);

k3=A*(x5(1:n,k+1)+h*k2/2);

k4=A*(x5(1:n,k+1)+h*k3);

x5(1:n,k+1)=x5(1:n,k+1)+h.*(k1+2*k2+2*k3+k4)./6;

end

for k=1:1:m

y5(k) = D*x5(1:n,k);

end

% 解析解 %

p = R/(2*L);

w=sqrt(1/(L*C)-(R/(2*L))^2);

for k=1:1:m

y(k) = U*(1-exp(-p*(k-1)*h) * ( cos(w*(k-1)*h) + sin(w*(k-1)*h)*p/w));

end

%输出曲线 %

for k=1:1:m

t(k) = (k-1)*h;

end

subplot(2,3,1),plot(t,y,'g',t,y1,'r')

legend('y解析解,','y1前向欧拉')

title('前向欧拉法')

subplot(2,3,2),plot(t,y,'g',t,y2,'r')

legend('y解析解,','y2后向欧拉')

title('后向欧拉法')

subplot(2,3,3),plot(t,y,'g',t,y3,'r')

legend('y解析解,','y3梯形法')

title('梯形法')

subplot(2,3,4),plot(t,y,'g',t,y4,'r')

legend('y解析解,','y4Adams法')

title('二阶显式Adams法')

subplot(2,3,5),plot(t,y,'g',t,y5,'r')

legend('y解析解,','y5龙格库塔')

title('显式四阶Runge-Kutta法')

数据处理的基本方法

第六节数据处理的基本方法 前面我们已经讨论了测量与误差的基本概念,测量结果的最佳值、误差和不确定度的计算。然而,我们进行实验的最终目的是为了通过数据的获得和处理,从中揭示出有关物理量的关系,或找出事物的内在规律性,或验证某种理论的正确性,或为以后的实验准备依据。因而,需要对所获得的数据进行正确的处理,数据处理贯穿于从获得原始数据到得出结论的整个实验过程。包括数据记录、整理、计算、作图、分析等方面涉及数据运算的处理方法。常用的数据处理方法有:列表法、图示法、图解法、逐差法和最小二乘线性拟合法等,下面分别予以简单讨论。 列表法是将实验所获得的数据用表格的形式进行排列的数据处理方法。列表法的作用有两种:一是记录实验数据,二是能显示出物理量间的对应关系。其优点是,能对大量的杂乱无章的数据进行归纳整理,使之既有条不紊,又简明醒目;既有助于表现物理量之间的关系,又便于及时地检查和发现实验数据是否合理,减少或避免测量错误;同时,也为作图法等处理数据奠定了基础。 用列表的方法记录和处理数据是一种良好的科学工作习惯,要设 计出一个栏目清楚、行列分明的表格,也需要在实验中不断训练,逐步掌握、熟练,并形成习惯。 一般来讲,在用列表法处理数据时,应遵从如下原则:

(1) 栏目条理清楚,简单明了,便于显示有关物理量的关系。 (2) 在栏目中,应给出有关物理量的符号,并标明单位(一般不重复写在每个数据的后面)。 (3) 填入表中的数字应是有效数字。 (4) 必要时需要加以注释说明。 例如,用螺旋测微计测量钢球直径的实验数据列表处理如下。 用螺旋测微计测量钢球直径的数据记录表 从表中,可计算出 D i D = n = 5.9967 ( mm)

数值计算实验课题目

数值实验课试题 本次数值实验课结课作业,请按题目要求内容写一篇文章。按题目要求 人数自由组合,每组所选题目不得相同(有特别注明的题目除外)。试题如下: 1)解线性方程组的Gauss 消去法和列主元Gauss 消去法(2人)/*张思珍,巩艳华*/ 用C 语言将不选主元和列主元Gauss 消去法编写成通用的子程序,然后用你编写的程序求解下列84阶的方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 1681684 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 2)解线性方程组的平方根法(4人)/*朱春成、黄锐奇、张重威、章杰*/ 用C 语言将平方根法和改进的平方根法编写成通用的子程序,然后用你编写的程序求解对称正定方程组b Ax =,其中 (1)b 随机的选取,系数矩阵为100阶矩阵 ?????? ???? ? ? ?101 1101 1101 1101 1101110 ; (2)系数矩阵为40阶的Hilbert 矩阵,即系数矩阵A 的第i 行第j 列元素为 1 1-+= j i a ij ,向量b 的第i 个分量为∑=-+ = n j i j i b 1 1 1. 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编

3.《数值分析简明教程》,王能超编 3)三对角线方程组的追赶法(3人)/*黄佳礼、唐伟、韦锡倍*/ 用C 语言将三对角线方程组的追赶法法编写成通用的子程序,然后用你编写的程序求解如下84阶三对角线方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 16816 84 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值分析简明教程》,王能超编 4)线性方程组的Jacobi 迭代法(3人)/*周桂宇、杨飞、李文军*/ 用C 语言将Jacobi 迭代法编写成独立的子程序,并用此求解下列方程组, 精确到小数点后5位 ???? ? ??=????? ??????? ? ?-149012 2111221 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 5)线性方程组的Gauss-Seidel 迭代法(3人)/*张玉超、范守平、周红春*/ 用C 语言将Gauss-Seidel 迭代法编写成独立的子程序,并用此求解下列方程组,精确到小数点后5位 ???? ? ??=????? ??????? ? ?--39721 1111112 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 6)解线性方程组的最速下降法法(2人)/*赵育辉、阿热孜古丽*/ 用C 语言将最速下降法编写成通用的子程序,然后用你编写的程序求解对称

数值积分与数值微分实验报告

实验三 数值积分与数值微分 【实验内容】 选用复合梯形公式,复合Simpson 公式,Romberg 算法高斯算法计算 (1) )5343916.1(sin 44102≈-=? I dx x I (2) )9460831.0,1)0((sin 10≈==?I f dx x x I (3) dx x e I x ?+=1024 ;(4) dx x x I ?++=1021)1ln( 【实验前的预备知识】 1、 深刻认识数值积分法的意义; 2、 明确数值积分精度与步长的关系; 3、 根据定积分的计算方法,可以考虑二重积分的计算问题。 4、 比较各种积分方法复杂度及收敛速度。 【实验方法或步骤】 1、 编制数值积分算法的程序; 2、 分别用两种算法计算同一个积分,并比较其结果; 3、 分别取不同步长n a b h /)(-=,试比较计算结果(如20,10=n 等); 4、 给定精度要求ε,试用变步长算法,确定最佳步长。 程序: 复合梯形公式求函数f 在区间【a ,b 】上的定积分代码 function [I,step]=CombineTraprl(f,a,b,eps) if(nargin==3) eps=1.0e-4;

end n=1; h=(b-a)/2; I1=0; I2=(subs(sym(f),findsym(sym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)>eps n=n+1; h=(b-a)/n; I1=I2; I2=0; for i=0:n-1 x=a+h*i; x1=x+h; I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1)); end end I=I2;step=n; 用该方法计算)5343916.1(sin 44 102≈-=?I dx x I 的程序为 [q,s]=CombineTraprl('sqrt(4-(sinx)^2)',0,0.25,1.5343916) 得结果为q =0.4986 s =3即结果为0.4986积分区间为3个 辛普森公式求函数f 在区间【a ,b 】上的定积分代码 function [I,step]=IntSimpson(f,a,b,type,eps) %type 分别为1,2,3时分别为辛普森公式,3/8公式,复合辛普森 if(type==3&&nargin==4) eps=1.0e-4; end I=0; switch type case 1, I=((b-a)/6)*(subs(sym(f),findsym(sym(f)),a)+... 4*subs(sym(f),findsym(sym(f)),(a+b)/2)+... subs(sym(f),findsym(sym(f)),b)); step=1; case 2, I=((b-a)/8)*(subs(sym(f),findsym(sym(f)),a)+... 3*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+... 3*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+subs(sym(f),findsym(sym(f)),b)); step=1; case 3, n=2; h=(b-a)/2;

数值分析实验三

贵州师范大学数学与计算机科学学院学生实验报告 课程名称: 数值分析 班级: 12级信本 实验日期: 2014年 11月5日 学 号: 120703010031 姓名: 李盼 指导教师: 实验成绩: 一、实验名称 实验三:数值积分 二、实验目的及要求 1. 让学生掌握复化梯形法, 复化Simpson 法和Romberg 公式以及变步长梯形法,变步长Simpson 法 2. 让学生能够用这些方法解决一些具体问题 三、实验环境 每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0). 四、实验内容 1 . 要求:分别用复合梯形法,复合Simpson 法和 Romberg 公式计算. 2.给定积分dx x ?3 11, 分别用下列方法计算积分值要求准确到510-, 并比较分析计算时间. 1) 变步长梯形法; 2) 变步长 Simpson 法. 五、算法描述及实验步骤 1复合梯形法 输入:被积函数数据点t,a ; 输出:积分值n T 。 复合Simpson 输入:被积函数)(x f ,积分区间[a,b]和n, 输出:复合Simpson 积分值n S 。 步1 :b a h n -?; (a)(b)n S f f ?-;x a ?. 步2:对k=1,2,…,n 执行 ;4();;2().22 n n n n h h x x S S f x x x S S f x ?+?-?+?-

步3:*6 n n h S S ?。 步4:输出n S 。 Romberg 公式 根据已知数据对其进行多项式拟合得出p(x);()()f x p x ?。 输入 :被积函数)(x f ,积分区间端点a,b,允许误差ε, 输出:Romberg 积分值2n R 。 步1:a b h -?;));()((2 1b f a f h T +?.0;0;0;0111?===k R C S 步2:反复执行步3-步9 步3:.2 ;0h a x S +?? 步4:反复执行步5-步6 步5:.);(h x x x f S S +?+? 步6:若b x ≥,则退出本层循环。 步7:执行 ;3134;2212212T T S S h T T -?+?.63 16364;1511516122122C C R S S C -?-? 步8:执行 .1; ;; ;;2|;|2121212112+?????? -?k k R R C C S S T T h h R R e 步9:若ε≤e 且5≥k ,则退出循环。 步10:.22R R n ? 2:变步长梯形法 功能 求积分dx x ?3 1 1,允许误差为ε。 输入 被积函数)(x f ,a,b,ε. 步1:a b h -?。 步2:)).()((2 1b f a f h T +? 步3:反复执行步4--步10. 步4:.2;0h a x S +=?

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

数据分析实验报告

数据分析实验报告 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

第一次试验报告 习题1.3 1建立数据集,定义变量并输入数据并保存。 2数据的描述,包括求均值、方差、中位数等统计量。 分析—描述统计—频率,选择如下: 输出: 统计量 全国居民 农村居民 城镇居民 N 有效 22 22 22 缺失 均值 1116.82 747.86 2336.41 中值 727.50 530.50 1499.50 方差 1031026.918 399673.838 4536136.444 百分位数 25 304.25 239.75 596.25 50 727.50 530.50 1499.50 75 1893.50 1197.00 4136.75 3画直方图,茎叶图,QQ 图。(全国居民) 分析—描述统计—探索,选择如下: 输出: 全国居民 Stem-and-Leaf Plot Frequency Stem & Leaf 5.00 0 . 56788 数据分析实验报告 【最新资料,WORD 文档,可编辑修改】

2.00 1 . 03 1.00 1 . 7 1.00 2 . 3 3.00 2 . 689 1.00 3 . 1 Stem width: 1000 Each leaf: 1 case(s) 分析—描述统计—QQ图,选择如下: 输出: 习题1.1 4数据正态性的检验:K—S检验,W检验数据: 取显着性水平为0.05 分析—描述统计—探索,选择如下:(1)K—S检验

结果:p=0.735 大于0.05 接受原假设,即数据来自正太总体。 (2 )W 检验 结果:在Shapiro-Wilk 检验结果972.00 w ,p=0.174大于0.05 接受原假设,即数据来自正太总体。 习题1.5 5 多维正态数据的统计量 数据:

大学物理实验数据处理基本方法

实验数据处理基本方法 实验必须采集大量数据,数据处理是指从获得数据开始到得出最后结 论的整个加工过程,它包括数据记录、整理、计算与分析等,从而寻找出 测量对象的内在规律,正确地给出实验结果。因此,数据处理是实验工作 不可缺少的一部分。数据处理涉及的内容很多,这里只介绍常用的四种方 法。 1列表法 对一个物理量进行多次测量,或者测量几个量之间的函数关系,往往 借助于列表法把实验数据列成表格。其优点是,使大量数据表达清晰醒目, 条理化,易于检查数据和发现问题,避免差错,同时有助于反映出物理量 之间的对应关系。所以,设计一个简明醒目、合理美观的数据表格,是每 一个同学都要掌握的基本技能。 列表没有统一的格式,但所设计的表格要能充分反映上述优点,应注意以下几点:1.各栏目均应注明所记录的物理量的名称(符号 )和单位; 2.栏目的顺序应充分注意数据间的联系和计算顺序,力求简明、齐全、有条理; 3.表中的原始测量数据应正确反映有效数字,数据不应随便涂改,确实要修改数据时, 应将原来数据画条杠以备随时查验; 4.对于函数关系的数据表格,应按自变量由小到大或由大到小的顺序排列,以便于判 断和处理。 2图解法 图线能够明显地表示出实验数据间的关系,并且通过它可以找出两个 量之间的数学关系,因此图解法是实验数据处理的重要方法之一。图解法 处理数据,首先要画出合乎规范的图线,其要点如下: 1.选择图纸作图纸有直角坐标纸 ( 即毫米方格纸 ) 、对数坐标纸和 极坐标纸等,根据 作图需要选择。在物理实验中比较常用的是毫米方格纸,其规格多为17 25 cm 。 2.曲线改直由于直线最易描绘 , 且直线方程的两个参数 ( 斜率和截距 ) 也较易算得。所以对于两个变量之间的函数关系是非线性的情形,在用图解法时 应尽可能通过变量代换 将非线性的函数曲线转变为线性函数的直线。下面为几种常用的变换方法。 ( 1) xy c ( c 为常数 ) 。 令 z 1,则 y cz,即 y 与 z 为线性关系。 x ( 2) x c y ( c 为常x2,y 1 z ,即 y 与为线性关系。

数值分析实验报告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 姓名:万轩 实验二插值法

数值积分实验报告

数值分析实验报告 实验四数值积分 一、用复合辛普森和龙贝格算法计算: 复合辛普森主函数xps: function xps(a,b,eps) n=0;Sd=0; S=(f(a)+f(b))*(b-a)/2; while abs(Sd-S)>eps Sd=S; n=n+1; h=(b-a)/n; for i=1:n+1 x(i)=a+(i-1)*h; end S1=f(x(1))+f(x(n+1)); S2=0; S3=0; for i=2:n S2=S2+f(x(i)); end S2=2*S2; for i=1:n S3=S3+f((x(i)+x(i+1))/2); end S3=4*S3; S=(S1+S2+S3)*h/6; end fprintf('%.15f\n',S); 龙贝格主函数romberg2: function romberg2 (a,b,eps) %a,b为区间,eps为精度 Rd=0; R=(b-a)/2*(f(a)+f(b)); N=0; while abs(Rd-R)>eps Rd=R; N=N+1; for k=1:2 if k==1 n=N*2;

else; n=N; end h=(b-a)/n; for i=1:n+1 x(i)=a+(i-1)*h; end C=0; for i=1:n C1=7*f(x(i))+32*f(x(i)+1/4*h)+12*f(x(i)+2/4*h)+32*f(x(i)+3/4*h)+7*f(x(i+1)); C=C+C1*h/90; end if k==1 R=C*64/63; else R=R-C/63; end end end fprintf('结果为:%.15f',R); 1、建立被积函数文件f.m function y=f(x) y=exp(-x^2); 2、调用xps.m、romberg2.m求定积分. >> xps(0,0.5,0.0000001) 0.461281071728228 >>romberg2 (0,0.5,0.0000001) 结果为: 0.461281006413932

实验数据处理的几种方法

实验数据处理的几种方法 物理实验中测量得到的许多数据需要处理后才能表示测量的最终结果。对实验数据进行记录、整理、计算、分析、拟合等,从中获得实验结果和寻找物理量变化规律或经验公式的过程就是数据处理。它是实验方法的一个重要组成部分,是实验课的基本训练内容。本章主要介绍列表法、作图法、图解法、逐差法和最小二乘法。 1.4.1 列表法 列表法就是将一组实验数据和计算的中间数据依据一定的形式和顺序列成表格。列表法可以简单明确地表示出物理量之间的对应关系,便于分析和发现资料的规律性,也有助于检查和发现实验中的问题,这就是列表法的优点。设计记录表格时要做到:(1)表格设计要合理,以利于记录、检查、运算和分析。 (2)表格中涉及的各物理量,其符号、单位及量值的数量级均要表示清楚。但不要把单位写在数字后。 (3)表中数据要正确反映测量结果的有效数字和不确定度。列入表中的除原始数据外,计算过程中的一些中间结果和最后结果也可以列入表中。 (4)表格要加上必要的说明。实验室所给的数据或查得的单项数据应列在表格的上部,说明写在表格的下部。 1.4.2 作图法 作图法是在坐标纸上用图线表示物理量之间的关系,揭示物理量之间的联系。作图法既有简明、形象、直观、便于比较研究实验结果等优点,它是一种最常用的数据处理方法。 作图法的基本规则是: (1)根据函数关系选择适当的坐标纸(如直角坐标纸,单对数坐标纸,双对数坐标纸,极坐标纸等)和比例,画出坐标轴,标明物理量符号、单位和刻度值,并写明测试条件。 (2)坐标的原点不一定是变量的零点,可根据测试范围加以选择。,坐标分格最好使最低数字的一个单位可靠数与坐标最小分度相当。纵横坐标比例要恰当,以使图线居中。 (3)描点和连线。根据测量数据,用直尺和笔尖使其函数对应的实验点准确地落在相应的位置。一张图纸上画上几条实验曲线时,每条图线应用不同的标记如“+”、“×”、“·”、“Δ”等符号标出,以免混淆。连线时,要顾及到数据点,使曲线呈光滑曲线(含直线),并使数据点均匀分布在曲线(直线)的两侧,且尽量贴近曲线。个别偏离过大的点要重新审核,属过失误差的应剔去。 (4)标明图名,即做好实验图线后,应在图纸下方或空白的明显位置处,写上图的名称、作者和作图日期,有时还要附上简单的说明,如实验条件等,使读者一目了然。作图时,一般将纵轴代表的物理量写在前面,横轴代表的物理量写在后面,中间用“~”

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数值分析上机实验报告

数值分析上机实验报告

《数值分析》上机实验报告 1.用Newton 法求方程 X 7-X 4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。 1.1 理论依据: 设函数在有限区间[a ,b]上二阶导数存在,且满足条件 {}α?上的惟一解在区间平方收敛于方程所生的迭代序列 迭代过程由则对任意初始近似值达到的一个中使是其中上不变号 在区间],[0)(3,2,1,0,) (') ()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20 )()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f a b c f x f b a x f b f x f k k k k k k ==- ==∈≤-≠>+ 令 )9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3 2 2 5 333647>?''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f 故以1.9为起点 ?? ?? ? ='- =+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。当前后两个的差<=ε时,就认为求出了近似的根。本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码: #include #include main() {double x2,f,f1; double x1=1.9; //取初值为1.9 do {x2=x1; f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;} while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);} 1.3 运行结果: 1.4 MATLAB上机程序 function y=Newton(f,df,x0,eps,M) d=0; for k=1:M if feval(df,x0)==0 d=2;break else x1=x0-feval(f,x0)/feval(df,x0); end e=abs(x1-x0); x0=x1; if e<=eps&&abs(feval(f,x1))<=eps d=1;break end end

大学物理实验数据处理方法总结

有效数字 1、有效数字不同的数相加减时,以参加运算各量中有效数字最末一位位数最高的为准,最后结果与它对其,余下的尾数按舍入规则处理。 2、乘除法以参与运算的数值中有效位数最少的那个数为准,但当结果的第1位数较小,比如1、2、3时可以多保留一位(较小:结果的第一位数小于 有效数字最少的结果第一位数)! 例如:n=tg56° θ=56° d θ=1° θθθθθ2cos d d d dtg dn == 为保留) (,带入848.156n 15605.018056cos 1cos 22=?=∴?=??=≈?=?= ?tg n θθπθθ 3、可以数字只出现在最末一位:对函数运算以不损失有效数字为准。 例如:20*lg63.4 可疑最小位变化0.1 Y=20lgx 01.04 .631.010ln 2010ln 20ln 10ln 20≈===x dx dx dx x d dy 04.364.63lg 20=∴ 4、原始数据记录、测量结果最后表示,严格按有效数字规定处理。(中间过程、结果多算几次) 5、4舍5入6凑偶 6、不估计不确定度时,有效数字按相应运算法则取位;计算不确定度时以不确定度的处理结果为准。 真值和误差 1、 误差=测量值-真值 ΔN=N-A 2、 误差既有大小、方向与政府。 3、 通常真值和误差都是未知的。 4、 相对约定真值,误差可以求出。 5、 用相对误差比较测量结果的准确度。 6、 ΔN/A ≈ΔN/N 7、 系统误差、随机误差、粗大误差 8、 随机误差:统计意义下的分布规律。粗大误差:测量错误 9、 系统误差和随机误差在一定条件下相互转化。 不确定度 1、P (x )是概率密度函数 dx P dx x x P p )x (之间的概率是测量结果落在+当x 取遍所有可能的概率值为1. 2、正态分布且消除了系统误差,概率最大的位置是真值A 3、曲线“胖”精密度低“瘦”精密度高。 4、标准误差:无限次测量?∞∞-=-2 )()(dx X P A X x )(σ 有限次测量且真值不知道标准偏

数值计算方法实验5

实验报告 学院(系)名称: 主程序部分列选主元部分

实验结果: 一.列主元消去法 输入各个数据,最终使用列选主元法,得到结果为:x1=x2=x3=1二.高斯-赛德尔迭代法 输入各个数据,输出每一步迭代数据,最终结果为:x1=0.285716,附录(源程序及运行结果) 一.列主元高斯消去法 #include #include void print(double a[3][3],int n,double b[3]){ printf("输出矩阵:\n"); for(int i=0;ifabs(d)){ d=a[i][k]; l=i; } i++; } printf("选出主元:%lf\n",d); if(d==0) printf("矩阵奇异!\n"); else if(l!=k){ for(int j=k;j

数值分析实验报告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 的帮助。

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

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和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);

数值分析实验报告之常微分方程数值解

数学与计算科学学院实验报告 实验项目名称常微分方程数值解 所属课程名称数值方法B 实验类型验证 实验日期 2013.11.11 班级 学号 姓名 成绩

【实验过程】(实验步骤、记录、数据、分析) 注:以下图形是通过Excel 表格处理数据得出,并未通过MATLAB 编程序所得! 1、1(0)1dy y x dx y ?=-++???=? 由题可知精确解为:x y x e -=+,当x=0时,y(x)=0。 h=0.1 表1 h=0.1时三个方法与精确值的真值表 图1 h=0.1时三个方法走势图 步长 Euler 法 预估校正法 经典四阶库 精确值 0.1 1.010000 1.005000 1.004838 1.249080 0.2 1.029000 1.019025 1.018731 1.055455 0.3 1.056100 1.041218 1.040818 1.091217 0.4 1.090490 1.070802 1.070320 1.131803 0.5 1.131441 1.107076 1.106531 1.176851 0.6 1.178297 1.149404 1.148812 1.226025 0.7 1.230467 1.197211 1.196586 1.279016 0.8 1.287421 1.249975 1.249329 1.335536 0.9 1.348678 1.307228 1.306570 1.395322 1.0 1.413811 1.368541 1.367880 1.458127

h=0.05(此时将源程序中i的围进行扩大,即for(i=0;i<20;i++)) 表2 h=0.05时三个方法与精确值的真值表步长Euler法预估校正法经典四阶库精确值 0.05 1.002500 1.001250 1.001229 1.011721 0.10 1.007375 1.004877 1.004837 1.024908 0.15 1.014506 1.010764 1.010708 1.039504 0.20 1.023781 1.018802 1.018731 1.055455 0.25 1.035092 1.028885 1.028801 1.072710 0.30 1.048337 1.040915 1.040818 1.091217 0.35 1.063421 1.054795 1.054688 1.110931 0.40 1.080250 1.070436 1.070320 1.131801 0.45 1.098737 1.087752 1.087628 1.153791 0.50 1.118800 1.106662 1.106531 1.176851 0.55 1.140360 1.127087 1.126950 1.200942 0.60 1.163342 1.148954 1.148812 1.226025 0.65 1.187675 1.172193 1.172046 1.252062 0.70 1.213291 1.196736 1.196585 1.279016 0.75 1.240127 1.222520 1.222367 1.306852 0.80 1.268121 1.249485 1.249329 1.335536 0.85 1.297215 1.277572 1.277415 1.365037 0.90 1.327354 1.306728 1.306570 1.395322 0.95 1.358486 1.336900 1.336741 1.426362 1.00 1.390562 1.368039 1.367880 1.458127 图2 h=0.05时三个方法走势图

(完整版)数值计算方法上机实习题答案

1. 设?+=1 05dx x x I n n , (1) 由递推公式n I I n n 1 51+-=-,从0I 的几个近似值出发,计算20I ; 解:易得:0I =ln6-ln5=0.1823, 程序为: I=0.182; for n=1:20 I=(-5)*I+1/n; end I 输出结果为:20I = -3.0666e+010 (2) 粗糙估计20I ,用n I I n n 51 5111+- =--,计算0I ; 因为 0095.05 6 0079.01020 201 020 ≈<<≈??dx x I dx x 所以取0087.0)0095.00079.0(2 1 20=+= I 程序为:I=0.0087; for n=1:20 I=(-1/5)*I+1/(5*n); end I 0I = 0.0083 (3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。 首先分析两种递推式的误差;设第一递推式中开始时的误差为000I I E '-=,递推过程的舍入误差不计。并记n n n I I E '-=,则有01)5(5E E E n n n -==-=-Λ。因为=20E 20020)5(I E >>-,所此递推式不可靠。而在第二种递推式中n n E E E )5 1(5110-==-=Λ,误差在缩小, 所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制, 即算法是否数值稳定。 2. 求方程0210=-+x e x 的近似根,要求4 1105-+?<-k k x x ,并比较计算量。 (1) 在[0,1]上用二分法; 程序:a=0;b=1.0; while abs(b-a)>5*1e-4 c=(b+a)/2;

相关文档
最新文档