哈工大数学实验实验报告
哈工大随机信号实验报告

H a r b i n I n s t i t u t e o f T e c h n o l o g y实验报告课程名称:随机信号分析院系:电信学院班级: 1205201 姓名:学号:指导教师:郑薇实验时间: 2014年 11月哈尔滨工业大学实验一 各种分布随机数的产生一、 实验目的在很多系统仿真的过程中,需要产生不同分布的随机变量。
利用计算机可以很方便地产生不同分布的随机变量,各种分布的随机变量的基础是均匀分布的随机变量。
有了均匀分布的随机变量,就可以用函数变换等方法得到其他分布的随机变量。
二、 实验内容产生均匀分布的随机数、高斯分布的随机数和其它分布的随机数。
三、 实验原理1. 均匀分布随机数的产生原理产生伪随机数的一种实用方法是同余法,它利用同余运算递推产生伪随机数序列。
最简单的方法是加同余法)(m od 1M c y y n n +=+My x n n 11++=为了保证产生的伪随机数能在[0,1]内均匀分布,需要M 为正整数,此外常数c 和初值y0亦为正整数。
加同余法虽然简单,但产生的伪随机数效果不好。
另一种同余法为乘同余法,它需要两次乘法才能产生一个[0,1]上均匀分布的随机数)(m od 1M ay y nn =+M y x n n 11++=式中,a 为正整数。
用加法和乘法完成递推运算的称为混合同余法,即)(m od 1M c ay y n n +=+My x n n 11++=用混合同余法产生的伪随机数具有较好的特性,一些程序库中都有成熟的程序供选择。
常用的计算语言如Basic 、C 和Matlab 都有产生均匀分布随机数的函数可以调用,只是用各种编程语言对应的函数产生的均匀分布随机数的范围不同,有的函数可能还需要提供种子或初始化。
Matlab 提供的函数rand()可以产生一个在[0,1]区间分布的随机数,rand(2,4)则可以产生一个在[0,1]区间分布的随机数矩阵,矩阵为2行4列。
哈工大数电自主设计实验报告

姓名班级学号实验日期2014.11. 节次教师签字成绩实验名称出租车计价表的简单逻辑设计1.实验目的(1)掌握并熟练运用集成同步加法计数器74LS160芯片的清零、置数和级联功能的接法,并能综合运用这些接法实现进制改变等功能。
(2)掌握并熟练运用中规模4位二进制码比较器74LS85芯片的数码比较功能。
(3)用若干集成同步加法计数器74LS160芯片和中规模4位二进制码比较器74LS85芯片组合设计出租车计价表电路,使之实现如下功能:起步价为3公里内8元,超过3公里每公里收2元,停车不计费,将最后的钱数通过数码管显示。
2.总体设计方案或技术路线(1)行车距离的模拟:在车轮上安装传感器,获得车轮转动信息,即获得行车距离信息,将出租车行驶距离转换成与之成正比的脉冲个数。
本实验设定每100m产生一个脉冲,脉冲频率反应行车速度,脉冲源由示波器的信号发生器提供。
(2)基本计数电路:,将该脉冲作为74LS160(I)的时钟,通过同步每100米产生一个脉冲CP置数对该脉冲进行5分频,那么得到的脉冲CP为每500m(1里)产生一次。
1作为距离计数单位以便距离累加电路进行距离累加。
CP1作为价格计数单位则为1元/里,以便计价电路进行价格累加;CP1(3)距离累加电路:将74LS160(II)和74LS160(III)通过级联构成一个0~99的加法计数器,作为他们的时钟。
然后分别把对行驶距离进行累计(距离单位:里),其中CP1两个芯片和数码管连接显示行驶距离。
因此该计价表行驶距离最大值为99里,即49.5公里。
(4)比较判断电路:将CP1作为74LS160(IV)的时钟,实现距离累加功能,与(3)不同的是它的输出端QD QCQBQA与74LS85的A3A2A1A相连,而B3B2B1B为0110,意味着6个500m即3公里,当74LS160(IV)输出小于或等于3公里时,A>B端为低电平,当输出大于3公里时,A>B端为高电平。
数学实验报告-哈工大

实验成绩实验报告
课程名称:数学实验
实验项目:常微分方程数值解
所在院系:
学生姓名:
学生学号:
授课学期: 2020秋
完成时间:
当1)0(=y ,取区间为[0,10],用改进欧拉法得到的结果与ode23得到的结果如下图所示:
(2)0cos =+''x y y 1)0(=y ,0)0(='y 取区间[0,10],用改进欧拉法得到的结果与ode23得到的结果如下图所示:
四、实验结果或结论分析
由实验结果可知,改进欧拉法与用ode23输出的结果十分相近,欧拉法在求解微分方程中具有极其重要的作用。
若改进式欧拉法取点越多,迭代次数越多,所得结果越接近真实值。
五、Matlab源程序
问题1的程序:
n=101;
y=zeros(n,1);
x=zeros(n,1);
y(1)=1;
x(1)=0;
long=10;
b=0;
m=0;
for i=1:100
m=y(i+1);
x(i+1)=(long/n)*i;
K1=8;
while k1>0.1
m=b;
b=y(i)+ long/n/2*(fun(x(i+1),m)+fun(x(i),y(i)));
%b=2*y(i+1)-y(i)+(long/n)^2/2*(fun(x(i+1),m)+fun(x(i),y(i))); K1=abs(m-b);
end
y(i+1)=b;
end
[m,n]=ode23(@(x,y)(x^2-y^2),[0,10],0.10);
plot(x,y);。
哈工大_数学实验报告

数学实验报告实验一Matlab的使用1.上机实验各种数据输入方法:程序语句:a=[1 2 3;4 5 6 ;7,8,9] 程序语句:linspace(1,10,5) 等等…………计算结果:a = 计算结果:ans =1 2 34 5 6 1.0000 3.2500 5.5000 7.7500 10.00007 8 92.(1) (a)方法:(b) 方法:程序语句:程序语句:a=[-3 5 0 8;1 -8 2 -1;0 -5 9 3;-7 0 -4 5]; a=[-3 5 0 8;1 -8 2 -1;0 -5 9 3;-7 0 -4 5];b=[0;2;-1;6]; b=[0;2;-1;6];inv(a)*b a\b计算结果:计算结果:ans = ans =-0.6386 -0.6386-0.4210 -0.4210-0.3529 -0.35290.0237 0.0237(2) 4个矩阵的生成语句:矩阵a 的生成语句:e=eye(3,3); a=[e r;o s]r=rand(3,2); 验证语句:o=zeros(2,3); a^2s=diag([1,2]);%此为一个任取的2X2 矩阵b=[e r+r*s; o s^2]计算结果相同:ans =1.0000 0 0 1.9003 1.45790 1.0000 0 0.4623 2.67390 0 1.0000 1.2137 2.28630 0 0 1.0000 00 0 0 0 4.00003.生成多项式的语句:poly ([2,-3,1+2i,1-2i,0,-6])计算结果:ans = 1 5 -9 -1 72 -180 0 计算x=0.8,-x=-1.2 之值的指令与结果:指令:polyval([1,5,-9,-1,72,-180,0],0.8) 结果:ans= -100.2179指令:polyval([1,5,-9,-1,72,-180,0],-1.2) 结果:ans= 293.29004.求a的指令与结果:指令:a=compan([1,0,-6,3,-8])结果:a =0 6 -3 81 0 0 00 1 0 00 0 1 0求a的特征值的指令与结果:roots(p)的指令与结果为:指令:eig(a) 指令:roots([1,0,-6,3,-8])结果:结果:ans = ans =-2.8374 -2.83742.4692 2.46920.1841 + 1.0526i 0.1841 + 1.0526i0.1841 - 1.0526i 0.1841 - 1.0526i结论:利用友元阵函数a=company(p) 和eig(a) 可以与roots(p)有相同的作用,结果相同。
哈工大模式识别实验报告

模式识别实验报告本次报告选做第一个实验,实验报告如下:1 实验要求构造1个三层神经网络,输出节点数1个,即多输入单输出型结构,训练它用来将表中的第一类样本和第二类样本分开。
采用逐个样本修正的BP算法,设隐层节点数为4,学习效率η=0.1,惯性系数α=0.0;训练控制总的迭代次数N=100000;训练控制误差:e=0.3。
在采用0~1内均匀分布随机数初始化所有权值。
对1)分析学习效率η,惯性系数α;总的迭代次数N;训练控制误差e、初始化权值以及隐层节点数对网络性能的影响。
要求绘出学习曲线----训练误差与迭代次数的关系曲线。
并将得到的网络对训练样本分类,给出错误率。
采用批处理BP算法重复1)。
比较两者结果。
表1 神经网络用于模式识别数据(X1、X2、X3是样本的特征)2 BP 网络的构建三层前馈神经网络示意图,见图1.图1三层前馈神经网络①网络初始化,用一组随机数对网络赋初始权值,设置学习步长η、允许误差ε、网络结构(即网络层数L 和每层节点数n l );②为网络提供一组学习样本; ③对每个学习样本p 循环a .逐层正向计算网络各节点的输入和输出;b .计算第p 个样本的输出的误差Ep 和网络的总误差E ;c .当E 小于允许误差ε或者达到指定的迭代次数时,学习过程结束,否则,进行误差反向传播。
d .反向逐层计算网络各节点误差)(l jp δ如果l f 取为S 型函数,即xl e x f -+=11)(,则 对于输出层))(1()()()()(l jp jdp l jp l jp l jp O y O O --=δ 对于隐含层∑+-=)1()()()()()1(l kj l jp l jp l jp l jp w O O δδe .修正网络连接权值)1()()()1(-+=+l ip l jp ij ij O k W k W ηδ式中,k 为学习次数,η为学习因子。
η取值越大,每次权值的改变越剧烈,可能导致学习过程振荡,因此,为了使学习因子的取值足够大,又不至产生振荡,通常在权值修正公式中加入一个附加动量法。
哈工大数值分析报告上机实验报告

实验报告一题目: Gauss 列主元消去法摘要:求解线性方程组地方法很多,主要分为直接法和间接法.本实验运用直接法地Guass 消去法,并采用选主元地方法对方程组进行求解.前言:(目地和意义)1. 学习Gauss 消去法地原理.2. 了解列主元地意义.3. 确定什么时候系数阵要选主元数学原理:由于一般线性方程在使用Gauss 消去法求解时,从求解地过程中可以看到,若)1(-k kk a =0,则必须进行行交换,才能使消去过程进行下去.有地时候即使≠-)1(k kk a 0,但是其绝对值非常小,由于机器舍入误差地影响,消去过程也会出现不稳定得现象,导致结果不正确.因此有必要进行列主元技术,以最大可能地消除这种现象.这一技术要寻找行r ,使得)1()1(max ||->-=k ik ki k rk a a 并将第r 行和第k 行地元素进行交换,以使得当前地)1(-k kk a 地数值比0要大地多.这种列主元地消去法地主要步骤如下:1. 消元过程对k =1,2,…,n -1,进行如下步骤.1) 选主元,记ik ki rk a a >=max || 若||rk a 很小,这说明方程地系数矩阵严重病态,给出警告,提示结果可能不对.2) 交换增广阵A 地r ,k 两行地元素.kj rj a a ↔ (j=k,…,n +1)3) 计算消元kk kj ik ij ij a a a a a /-= (i=k+1,…,n ; j =k +1,……,n +1)2. 回代过程对k = n , n -1,…,1,进行如下计算)/(11,∑-=+-=nk j kk j kj n k k a x a a x至此,完成了整个方程组地求解.程序设计:本实验采用Matlab地M文件编写.Gauss消去法源程序:cleara=input('输入系数阵:>>\n')b=input('输入列阵b:>>\n')n=length(b);A=[a b]x=zeros(n,1);%%%函数主体for k=1:n-1;%%%是否进行主元选取if abs(A(k,k))<yipusilong;%事先给定地认为有必要选主元地小数yzhuyuan=1;else yzhuyuan=0;endif yzhuyuan;%%%%选主元t=A(k,k);for r=k+1:n;if abs(A(r,k))>abs(t)p=r;else p=k;endend%%%交换元素if p~=k;for q=k:n+1;s=A(k,q);A(k,q)=A(p,q);A(p,q)=s;endendend%%%判断系数矩阵是否奇异或病态非常严重if abs(A(k,k))< yipusilongdisp(‘矩阵奇异,解可能不正确’)end%%%%计算消元,得三角阵for r=k+1:n;m=A(r,k)/A(k,k);for q=k:n+1;A(r,q)=A(r,q)-A(k,q)*m;endendend%%%%求解xx(n)=A(n,n+1)/A(n,n);for k=n-1:-1:1;s=0;for r=k+1:n;s=s+A(k,r)*x(r);endt=(A(k,n+1)-s)x(k)=(A(k,n+1)-s)/A(k,k)end结果分析和讨论:例:求解方程⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡321643.5072.12-623.4712.31-32108-z y x .求解地结果为:x =[]367257386.0,05088607.0-49105822.0-, 例:求解方程⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡73109104-10172-42-4z y x 求得地结果为:x =[]857142857.1,89285714.0-196428571.0, 结论:采用Gauss 消去法时,如果在消元时对角线上地元素始终较大(假如大于10-5),那么本方法不需要进行列主元计算,计算结果一般就可以达到要求,否则必须进行列主元这一步,以减少机器误差带来地影响,使方法得出地结果正确.实验报告二题目: Rung 现象产生和克服摘要:由于高次多项式插值不收敛,会产生Runge 现象,本实验在给出具体地实例后,采用分段线性插值和三次样条插值地方法有效地克服了这一现象,而且还取地很好地插值效果.前言:(目地和意义)1. 深刻认识多项式插值地缺点.2. 明确插值地不收敛性怎样克服.3. 明确精度与节点和插值方法地关系.数学原理:在给定n+1个节点和相应地函数值以后构造n 次地Lagrange 插值多项式,实验结果表明(见后面地图)这种多项式并不是随着次数地升高对函数地逼近越来越好,这种现象就是Rung 现象.解决Rung 现象地方法通常有分段线性插值、三次样条插值等方法.分段线性插值:设在区间[a, b ]上,给定n+1个插值节点a=x 0<x 1<…<x n =b和相应地函数值y 0,y 1,…,y n ,,求作一个插值函数)(x φ,具有如下性质:1) j j y x =)(φ,j=0,1,…,n .2) )(x φ在每个区间[x i , x j ]上是线性连续函数.则插值函数)(x φ称为区间[a, b ]上对应n 个数据点地分段线性插值函数.三次样条插值:给定区间[a, b ]一个分划⊿:a=x 0<x 1<…<x N =b若函数S(x)满足下列条件:1) S(x)在每个区间[x i , x j ]上是不高于3次地多项式.2) S(x)及其2阶导数在[a, b ]上连续.则称S(x)使关于分划⊿地三次样条函数. 程序设计流程:本实验采用Matlab 地M 文件编写.其中待插值地方程写成function 地方式,如下function y=f(x);y=1/(1+25*x*x );写成如上形式即可,下面给出主程序Lagrange 插值源程序:n=input('将区间分为地等份数输入:\n');s=[-1+2/n*[0:n]];%%%给定地定点,Rf为给定地函数x=-1:0.01:1;f=0;for q=1:n+1;l=1;%求插值基函数for k=1:n+1;if k~=q;l=l.*(x-s(k))./(s(q)-s(k));elsel=l;endendf=f+Rf(s(q))*l;%求插值函数endplot(x,f,'r')%作出插值函数曲线grid onhold on分段线性插值源程序clearn=input('将区间分为地等份数输入:\n');s=[-1+2/n*[0:n]];%%%给定地定点,Rf为给定地函数m=0;hh=0.001;for x=-1:hh:1;ff=0;for k=1:n+1;%%%求插值基函数switch kcase 1if x<=s(2);l=(x-s(2))./(s(1)-s(2));elsel=0;endcase n+1if x>s(n);l=(x-s(n))./(s(n+1)-s(n));elsel=0;endotherwiseif x>=s(k-1)&x<=s(k);l=(x-s(k-1))./(s(k)-s(k-1));else if x>=s(k)&x<=s(k+1);l=(x-s(k+1))./(s(k)-s(k+1));elsel=0;endendendff=ff+Rf(s(k))*l;%%求插值函数值endm=m+1;f(m)=ff;end%%%作出曲线x=-1:hh:1;plot(x,f,'r');grid onhold on三次样条插值源程序:(采用第一边界条件)clearn=input('将区间分为地等份数输入:\n');%%%插值区间a=-1;b=1;hh=0.001;%画图地步长s=[a+(b-a)/n*[0:n]];%%%给定地定点,Rf为给定地函数%%%%第一边界条件Rf"(-1),Rf"(1)v=5000*1/(1+25*a*a)^3-50/(1+25*a*a)^4;for k=1:n;%取出节点间距h(k)=s(k+1)-s(k);endfor k=1:n-1;%求出系数向量lamuda,miula(k)=h(k+1)/(h(k+1)+h(k));miu(k)=1-la(k);end%%%%赋值系数矩阵Afor k=1:n-1;for p=1:n-1;switch pcase kA(k,p)=2;case k-1A(k,p)=miu(p+1);case k+1A(k,p)=la(p-1);otherwiseA(k,p)=0;endendend%%%%求出d阵for k=1:n-1;switch kcase 1d(k)=6*f2c([s(k) s(k+1) s(k+2)])-miu(k)*v;case n-1d(k)=6*f2c([s(k) s(k+1) s(k+2)])-la(k)*v;otherwised(k)=6*f2c([s(k) s(k+1) s(k+2)]);endend%%%%求解M阵M=A\d';M=[v;M;v];%%%%m=0;f=0;for x=a:hh:b;if x==a;p=1;elsep=ceil((x-s(1))/((b-a)/n));endff1=0;ff2=0;ff3=0;ff4=0;m=m+1;ff1=1/h(p)*(s(p+1)-x)^3*M(p)/6;ff2=1/h(p)*(x-s(p))^3*M(p+1)/6;ff3=((Rf(s(p+1))-Rf(s(p)))/h(p)-h(p)*(M(p+1)-M(p))/6)*(x-s(p));ff4=Rf(s(p))-M(p)*h(p)*h(p)/6;f(m)=ff1+ff2+ff3+ff4 ;end%%%作出插值图形x=a:hh:b;plot(x,f,'k')hold ongrid on结果分析和讨论: 本实验采用函数22511)(xx f +=进行数值插值,插值区间为[-1,1],给定节点为 x j =-1+jh ,h=0.1,j =0,…,n .下面分别给出Lagrang e 插值,三次样条插值,线性插值地函数曲线和数据表.图中只标出Lagrang e 插值地十次多项式地曲线,其它曲线没有标出,从数据表中可以看出具体地误差.表中,L10(x)为Lagrang e插值地10次多项式,S10(x),S40(x)分别代表n=10,40地三次样条插值函数,X10(x),X40(x)分别代表n=10,40地线性分段插值函数.x f(x)L10(x)S10(x) S40(x) X10(x) X40(x) -1.00000000000000 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 -0.95000000000000 0.04244031830239 1.92363114971920 0.04240833151040 0.04244031830239 0.04355203619910 0.04244031830239 -0.90000000000000 0.04705882352941 1.57872099034926 0.04709697585458 0.04705882352941 0.04864253393665 0.04705882352941 -0.85000000000000 0.05245901639344 0.71945912837982 0.05255839923979 0.05245901639344 0.05373303167421 0.05245901639344 -0.80000000000000 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 -0.75000000000000 0.06639004149378 -0.23146174989674 0.06603986172744 0.06639004149378 0.06911764705882 0.06639004149378 -0.70000000000000 0.07547169811321 -0.22619628906250 0.07482116198866 0.07547169811321 0.07941176470588 0.07547169811321 -0.65000000000000 0.08648648648649 -0.07260420322418 0.08589776360849 0.08648648648649 0.08970588235294 0.08648648648649 -0.60000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 -0.55000000000000 0.11678832116788 0.21559187891257 0.11783833017713 0.11678832116788 0.12500000000000 0.11678832116788 -0.50000000000000 0.13793103448276 0.25375545726103 0.14004371555730 0.13793103448276 0.15000000000000 0.13793103448276 -0.45000000000000 0.16494845360825 0.23496854305267 0.16722724315883 0.16494845360825 0.17500000000000 0.16494845360825 -0.40000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 -0.35000000000000 0.24615384615385 0.19058046675376 0.24054799403464 0.24615384615385 0.27500000000000 0.24615384615385 -0.30000000000000 0.30769230769231 0.23534659131080 0.29735691695860 0.30769230769231 0.35000000000000 0.30769230769231 -0.25000000000000 0.39024390243902 0.34264123439789 0.38048738140327 0.39024390243902 0.42500000000000 0.39024390243902 -0.20000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 -0.15000000000000 0.64000000000000 0.67898957729340 0.65746969368431 0.64000000000000 0.62500000000000 0.64000000000000 -0.10000000000000 0.80000000000000 0.84340742982890 0.82052861660828 0.80000000000000 0.75000000000000 0.80000000000000 -0.05000000000000 0.94117647058824 0.95862704866073 0.94832323122810 0.94117647058824 0.87500000000000 0.941176470588240 1.00000000000000 1.00000000000000 1.00000000000000 1.00000000000000 1.000000000000001.000000000000000.05000000000000 0.94117647058824 0.95862704866073 0.94832323122810 0.94117647058824 0.87500000000000 0.941176470588240.10000000000000 0.80000000000000 0.84340742982890 0.82052861660828 0.80000000000000 0.75000000000000 0.800000000000000.15000000000000 0.64000000000000 0.67898957729340 0.65746969368431 0.64000000000000 0.62500000000000 0.640000000000000.20000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.500000000000000.25000000000000 0.39024390243902 0.34264123439789 0.38048738140327 0.39024390243902 0.42500000000000 0.390243902439020.30000000000000 0.30769230769231 0.23534659131080 0.29735691695860 0.30769230769231 0.350000000000000.307692307692310.35000000000000 0.24615384615385 0.19058046675376 0.24054799403464 0.24615384615385 0.27500000000000 0.246153846153850.40000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.200000000000000.45000000000000 0.16494845360825 0.23496854305267 0.16722724315883 0.16494845360825 0.17500000000000 0.164948453608250.50000000000000 0.13793103448276 0.25375545726103 0.14004371555730 0.13793103448276 0.15000000000000 0.137931034482760.55000000000000 0.11678832116788 0.21559187891257 0.11783833017713 0.11678832116788 0.12500000000000 0.116788321167880.60000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.100000000000000.65000000000000 0.08648648648649 -0.07260420322418 0.08589776360849 0.08648648648649 0.08970588235294 0.086486486486490.70000000000000 0.07547169811321 -0.22619628906250 0.07482116198866 0.07547169811321 0.07941176470588 0.075471698113210.75000000000000 0.06639004149378 -0.23146174989674 0.06603986172744 0.06639004149378 0.06911764705882 0.066390041493780.80000000000000 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.058823529411760.85000000000000 0.05245901639344 0.71945912837982 0.05255839923979 0.05245901639344 0.05373303167421 0.052459016393440.90000000000000 0.04705882352941 1.57872099034926 0.04709697585458 0.04705882352941 0.04864253393665 0.047058823529410.95000000000000 0.04244031830239 1.92363114971920 0.04240833151040 0.04244031830239 0.04355203619910 0.042440318302391.00000000000000 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154从以上结果可以看到,用三次样条插值和线性分段插值,不会出现多项式插值是出现地Runge现象,插值效果明显提高.进一步说,为了提高插值精度,用三次样条插值和线性分段插值是可以增加插值节点地办法来满足要求,而用多项式插值函数时,节点数地增加必然会使多项式地次数增加,这样会引起数值不稳定,所以说这两种插值要比多项式插值好地多.而且在给定节点数地条件下,三次样条插值地精度要优于线性分段插值,曲线地光滑性也要好一些.实验报告三题目: 多项式最小二乘法摘要:对于具体实验时,通常不是先给出函数地解析式,再进行实验,而是通过实验地观察和测量给出离散地一些点,再来求出具体地函数解析式.又因为测量误差地存在,实际真实地解析式曲线并不一定通过测量给出地所有点.最小二乘法是求解这一问题地很好地方法,本实验运用这一方法实现对给定数据地拟合. 前言:(目地和意义)1. 学习使用最小二成法地原理2. 了解法方程地特性 数学原理:对于给定地测量数据(x i ,f i )(i=1,2,…,n ),设函数分布为∑==mj j j x a x y 0)()(ϕ特别地,取)(x j ϕ为多项式j j x x =)(ϕ (j=0, 1,…,m )则根据最小二乘法原理,可以构造泛函∑∑==-=n i mj i j j i m x a f a a a H 110))((),,,(ϕ令0=∂∂ka H(k=0, 1,…,m ) 则可以得到法方程⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡),(),(),(),(),(),(),(),(),(),(),(),(1010101111000100m m m m m m m m f f f a a a ϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕ求该解方程组,则可以得到解m a a a ,,,10 ,因此可得到数据地最小二乘解∑=≈mj j j x a x f 0)()(ϕ程序设计:本实验采用Matlab 地M 文件编写.其中多项式函数j j x =ϕ写成function 地方式,如下function y=fai(x,j)y=1;for i=1:jy=x.*y;end写成如上形式即可,下面给出主程序.多项式最小二乘法源程序clear%%%给定测量数据点(s,f)s=[3 4 5 6 7 8 9];f=[2.01 2.98 3.50 5.02 5.47 6.02 7.05];%%%计算给定地数据点地数目n=length(f);%%%给定需要拟合地数据地最高次多项式地次数m=10;%%%程序主体for k=0:m;g=zeros(1,m+1);for j=0:m;t=0;for i=1:n;%计算内积(fai(si),fai(si))t=t+fai(s(i),j)*fai(s(i),k);endg(j+1)=t;endA(k+1,:)=g;%法方程地系数矩阵t=0;for i=1:n;%计算内积(f(si),fai(si))t=t+f(i)*fai(s(i),k);endb(k+1,1)=t;enda=A\b%求出多项式系数x=[s(1):0.01:s(n)]';y=0;for i=0:m;y=y+a(i+1)*fai(x,i);endplot(x,y)%作出拟合成地多项式地曲线grid onhold onplot(s,f,'rx') %在上图中标记给定地点结果分析和讨论:例用最小二乘法处理下面地实验数据.并作出)f地近似分布图.(x分别采用一次,二次和五次多项式来拟合数据得到相应地拟合多项式为:y1=-0.38643+0.82750x;y2=-1.03024+1.06893x-0.02012x2;y5=-50.75309+51.53527x-19.65947x2+3.66585x3-0.32886x4+0.01137x5;分别作出它们地曲线图,图中点划线为y1曲线,实线为y2曲线,虚线为y5曲线.’x’为给定地数据点.从图中可以看出并不是多项式次数越高越好,次数高了,曲线越能给定点处和实际吻合,但别地地方就很差了.因此,本例选用一次和两次地多项式拟合应该就可以了.实验报告四题目: Romberg 积分法摘要:对于实际地工程积分问题,很难应用Newton-Leibnitz 公式去求解.因此应用数值方法进行求解积分问题已经有着很广泛地应用,本文基于Romberg 积分法来解决一类积分问题.前言:(目地和意义)1. 理解和掌握Romberg 积分法地原理;2. 学会使用Romberg 积分法;3. 明确Romberg 积分法地收敛速度及应用时容易出现地问题. 数学原理:考虑积分⎰=ba dx x f f I )()(,欲求其近似值,通常有复化地梯形公式、Simpsion公式和Cotes 公式.但是给定一个精度,这些公式达到要求地速度很缓慢.如何提高收敛速度,自然是人们极为关心地课题.为此,记T 1,k 为将区间[a,b ]进行2k 等分地复化地梯形公式计算结果,记T 2,k 为将区间[a,b ]进行2k 等分地复化地Simpsion 公式计算结果,记T 3,k 为将区间[a,b ]进行2k 等分地复化地Cotes 公式计算结果.根据Richardson 外推加速方法,可以得到收敛速度较快地Romberg 积分法.其具体地计算公式为: 1. 准备初值,计算)]()([21,1b f a f ba T +-=2. 按梯形公式地递推关系,计算∑-=-+-+-+-+=1201,11,11))5.0(2(221k i k k k k i ab a f a b T T 3. 按Romberg 积分公式计算加速值1441,11,11,--=----+---m mk m m k m m m k m T T T m=2,…,k4. 精度控制.对给定地精度R ,若R T T m m <--1,11,则终止计算,并取1,m T 为所求结果;否则返回2重复计算,直至满足要求地精度为止. 程序设计:本实验采用Matlab 地M 文件编写.其中待积分地函数写成function 地方式,例如如下function yy=f(x,y); yy=x.^3;写成如上形式即可,下面给出主程序Romberg 积分法源程序%%% Romberg 积分法 clear%%%积分区间 b=3; a=1;%%%精度要求 R=1e-5;%%%应用梯形公式准备初值 T(1,1)=(b-a)*(f(b)+f(a))/2; T(1,2)=T(1,1)/2+(b-a)/2*f((b+a)/2); T(2,1)=(4*T(1,2)-T(1,1))/(4-1); j=2; m=2;%%%主程序体%%%while(abs(T(m,1)-T(m-1,1))>R);%%%精度控制 j=j+1; s=0;for p=1:2^(j-2);s=s+f(a+(2*p-1)*h/(2^(j-1))); endT(1,j)=T(1,j-1)/2+h*s/(2^(j-1)); %%%梯形公式应用 for m=2:j; k=(j-m+1);T(m,k)=((4^(m-1))*T(m-1,k+1)-T(m-1,k))/(4^(m-1)-1); end end%%%给出 Romberg 积分法地函数表 I=T(m,1)结果分析和讨论: 1. 求积分dx x10063.精确解I= 24999676.运行程序得Romberg 积分法地函数表为1.0e+007 *4.70101520000000 3.05022950000000 2.63753307500000 2.49996760000000 2.49996760000000 0 2.49996760000000 0 0由函数表知Romberg 积分给出地结果为2.4999676*10^7,与精确没有误差,精度很高.2. 求积分dx xx⎰10sin . 直接按前面方法进行积分,会发现系统报错,出现了0为除数地现象.出现这种情况地原因就是当x=0时,被积函数分母出现0,如果用一个适当地小数ε(最好不要小于程序给定地最小误差值,但不能小于机器地最大精度)来代替可以避免这个问题.本实验取R =ε,可得函数表为:0.92073548319659 0.93979327500190 0.94451351171417 0.94569085359489 0.94598501993743 0.94614587227034 0.94608692395160 0.94608330088846 0.94608307538495 0 0.94608299406368 0.94608305935092 0.94608306035138 0 0 0.94608306038722 0.94608306036726 0 0 0 0.94608306036718 0 0 0 0故该函数地积分为0.94608306036718,取8位有效数字.3. 求积分dx x ⎰12sin本题地解析解很难给出,但运用Romberg 积分可以很容易给出近似解,函数表为:0.42073549240395 0.33406972582924 0.31597536075922 0.31168023948094 0.31062036680949 0.31035626065456 0.30518113697100 0.30994390573588 0.31024853238818 0.31026707591900 0.31026822526959 0 0.31026142365354 0.31026884083167 0.31026831215439 0.31026830189296 0 0 0.31026895856465 0.31026830376269 0.31026830173008 0 0 0 0.31026830119484 0.31026830172211 0 0 0 0 0.31026830172262 0 0 0 0 0故该函数地积分为0.31026830172262,取8位有效数字.结论:Romberg 积分通常要求被积函数在积分区间上没有奇点.如有奇点,且奇点为第一间断点,那么采用例3地方法,还是能够求出来地,否则,必须采用其它地积分方法.当然,Romberg 积分地收敛速度还是比较快地.。
(完整版)哈工大-数值分析上机实验报告

(完整版)哈工大-数值分析上机实验报告实验报告一题目:非线性方程求解摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。
本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。
前言:掌握二分法与Newton法的基本原理和应用。
数学原理:对于一个非线性方程的数值解法很多。
在此介绍两种最常见的方法:二分法和Newton法。
对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; endx=c%给出解Newton法及改进的Newton法源程序:clear%%%% 输入函数f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);%%%改进常数或重根数 miu=2;%%%初始值x0x0=input('input initial value x0>>'); k=0;%迭代次数max=100;%最大迭代次数R=eval(subs(f,'x0','x'));%求解f(x0),以确定初值x0时否就是解while (abs(R)>1e-8)x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0', 'x')); R=x1-x0; x0=x1; k=k+1;if (eval(subs(f,'x0','x'))max;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值ss=input('maybe result is error,choose a new x0,y/n>>','s');if strcmp(ss,'y')x0=input('input initial value x0>>');k=0; else break end end endk;%给出迭代次数 x=x0;%给出解结果分析和讨论:1. 用二分法计算方程在[1,2]内的根。
哈工大 计算机仿真技术实验报告 实验3 利用数值积分算法的仿真实验

模型的稳定性:当步距 h=5.0e-5 时,前向欧拉法和后向欧拉法明显失真, 随着步距的减小, 二阶显式 Adams 法, 梯形法和显式四阶 Runge-Kutta 法的波形 变化不大,而前向欧拉法和后向欧拉法的波形得到明显改善。所以显式四阶 Runge-Kutta 法,二阶显式 Adams 法和梯形法的稳定性较好,前向欧拉法和后向 欧拉法的稳定性较差。 模型的精度和离散时间间隔:步距为 h=5.0e-6 时,显式四阶 Runge-Kutta 法 精度最高,其次是二阶显式 Adams 法和梯形法。步距为 h=5.0e-7 时,前向欧拉 法和后向欧拉法仿真精度才达到要求。所以,显式四阶 Runge-Kutta 法,二阶显 式 Adams 法和梯形法模型的精度较高,离散时间间隔要求低,其中,显式四阶 Runge-Kutta 法模型的精度最高,其次是二阶显式 Adams 法,由于是二次函数较 复杂,函数曲线与真实曲线较为接近;再次精确的是梯形法,取梯形面积,误差 也较小;前向欧拉法和后向欧拉法模型的精度较低,由于取的是矩形面积,离散 时间间隔要求高。
实验 3 利用数值积分算法的仿真实验
(
一、 实验目的
1) 熟悉 MATLAB 的工作环境;
2) 掌握 MATLAB 的 .M 文件编写规则,并在命令窗口调试和运行程序; 3) 掌握利用欧拉法、梯形法、二阶显式 Adams 法及四阶龙格库塔法构建系 统仿真模型的方法,并对仿真结果进行分析。
二、实验内容
上对应的标题。
四、实验原理
在连续系统的数字仿真算法中,较常用的有欧拉法、 梯形法、 二阶显式 Adams 法及显式四阶 Runge-Kutta 法等。欧拉法、梯形法和二阶显式 Adams 法是利用离 散相似原理构造的仿真算法,而显式四阶 Runge-Kutta 法是利用 Taylor 级数匹配 原理构造的仿真算法。 对于线性系统,其状态方程表达式为:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一
2(1)(a)
程序语句:
a=[-3 5 0 8;1 -8 2 -1;0 -5 9 3;-7 0 -4 5]; b=[0;2;-1;6];
inv(a)*b
(b)
程序语句:
a=[-3 5 0 8;1 -8 2 -1;0 -5 9 3;-7 0 -4 5]; b=[0;2;-1;6];
a\b
(2)
4个矩阵的生成语句:
e=eye(3,3);
r=rand(3,2);
o=zeros(2,3);
s=diag([1,2]);%此为一个任取的2X2 矩阵
矩阵a 的生成语句:
a=[e r;o s]
验证语句:
a^2
b=[e r+r*s; o s^2]
(3)(a)
生成多项式的语句:poly ([2,-3,1+2i,1-2i,0,-6])
(b)
计算x=0.8,-x=-1.2 之值的指令与结果:
指令:polyval([1,5,-9,-1,72,-180,0],0.8)
指令:polyval([1,5,-9,-1,72,-180,0],-1.2)
(4)
求a的指令与结果:指令:a=compan([1,0,-6,3,-8])
求a的特征值的指令与结果:指令:eig(a)
roots(p)的指令与结果为:
指令:roots([1,0,-6,3,-8])
结论:利用友元阵函数a=company(p) 和eig(a) 可以与roots(p)有相同的作用,结果相同。
(5)
作图指令:
x=0:0.01:1.5;
y=[x.^2;x.^3;x.^4;x.^5];
plot (x,y)
作图指令:
x=0:0.01:10;
y1=x.^2;
y2=x.^3;
y3=x.^4;
y4=x.^5;
subplot(2,2,1),plot (x,y1),title('x^2')
subplot(2,2,2),plot (x,y2),title('x^3')
subplot(2,2,3),plot (x,y3),title('x^4')
subplot(2,2,4),plot (x,y4),title('x^5')
(6)
建立函数:funfplot(x)
绘图语句:
(7)
绘图语句为
x=-3*pi:0.01:pi; y1=4*sin(x);
y2=x+2;
plot(x,y1,x,y2)
对x,y轴加标记并加网格:grid
xlabel('x 方向')
ylabel('y 方向')
(8)
绘图语句(a):
绘图语句(b)
(9)
(a)自然数的阶乘:
建立阶乘函数:jie(x)
求阶乘的主程序:
(b)n中取m的组合:建立组合函数:zu(x)
求组合的主程序:
(10)
(11)
绘图语句:
讨论
a=2, b=2,n=2
a=3, b=2,n=2
a=2, b=6,n=2
a=2, b=2,n=6
结论:a与图形的大小有关,b与图形的旋转度有关,n与图形的环数有关。
(12)
(13)
y=cos(x) n=10
实验二(1)
指令:
结果:
(2)指令:
结果:
(3)
当n>9 时p 值显示相同的结果,利用format double 也难以满足精度。
(4)
指令:
结果:
(5)
指令:
结果:
结论:较大的特征值为图形的拉伸系数(6)
指令:
结果:
(7)
指令:
结果:
(8)
通过计算a=1.1 及为A的特征之中较大者也就是n趋于无穷点列方向|λ1|<1, |λ2|<1 a →0; |λ1|>1, |λ2|<1 a→λ1; |λ1|<1, |λ2|>1 a→λ2; |λ1|>1, |λ2|>1 a→max{λ1, λ2};
(9)
指令:
结果:
点列经迭代后的方向与绝对值最大的特征值所对应的特征向量的方向相同即(0.7399 ,0.6727)
(10)
指令:
结果:
方向(-0.6690, 0.7433)(11)
程序:
指令:
结果:
(12)
矩阵:c=[1,2;5,2]画图程序:
图形:
结果:
求C的程序:
结果:
结论:
当特征值的绝对值大于1时图形被拉长,当特征值的绝对值小于1时图形被压缩拉长或压缩系数即为特征值,其方向为相应特征向量的方向。
压缩方案:
[1,1]方向拉长1.2倍[-1,1]方向压缩为原来的0.8倍。
实验三
(2)(a)t的维数由t的范围矩阵决定
(b)x两列表示x1,x2的数值解。
即θ,θ’解
(c)去掉分号,多显示了t的维数个xdot阵
(d)t 的赋值语句在第七句
(3)(a)
(b)
①程序:
结果:
②程序:
结果:
程序:
结果:
③程序:
结果:
(4)(a)
(b)
解析:
结果:
数值:
结果:
曲线拟和很好数值解准确
(5)(a)
结果:
指令:
结果:
(b)
r1=1;r2=3
r1=3;r2=4
X0=10,y0=100
X0=100,y0=10
通过改变r1,r2,x0,y0的值知:增长率和初始数量的改变并不能改变,乙灭绝的命运,乙增长率和初始数量的增大,一定程度上减缓了灭亡的速度。
S1=1.5,S2=0.7
程序:
结果:
S 越小,即资源被别的种族占用少的种族生存对种族越有利。
(c)
S1=0.8,S2=0.7
程序:
结果:
S>1甲乙两个种族,共同生存,趋于平衡,增长率和初始数量,大的种族有利。
S1=1.5,S2=1.7
程序:
结果:
S>1资源被别的种族占用都很大自身增长率相同S小的生存。
(6)
(a)
主函数:
绘制图像:
实验四(1)
图像:
(2)
图像:
(3)
(4)。