文档视界 最新最全的文档下载
当前位置:文档视界 › 哈工大 数值分析报告上机实验报告材料

哈工大 数值分析报告上机实验报告材料

哈工大  数值分析报告上机实验报告材料
哈工大  数值分析报告上机实验报告材料

实验报告一

题目: 非线性方程求解

摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和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 法通常预先要给出一个猜测初值x 0,然后根据其迭代公式

)

()

('

1k k k k x f x f x x -

=+ 产生逼近解x *的迭代数列{x k },这就是Newton 法的思想。当x 0接近x *时收敛很快,但是当x 0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为

)

()

('1k k k k x f x f r

x x -=+ 其中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);

%%%改进常数或重根数

miu=2;

%%%初始值x0

x0=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'))<1e-10);

break end

if k>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 end

k;%给出迭代次数 x=x0;%给出解

结果分析和讨论:

1. 用二分法计算方程02

sin 2

=-x x 在[1,2]的根。(610*5-=ε,下同) 计算结果为

x= 1.523;

f(x)= -3.4311e-007; k=18;

由f(x)知结果满足要求,但迭代次数比较多,方法收敛速度比较慢。

2. 用二分法计算方程013=--x x 在[1,1.5]的根。 计算结果为

x= 1.180;

f(x)= 2.4815e-006; k=17;

由f(x)知结果满足要求,但迭代次数还是比较多。

3. 用Newton 法求解下列方程 a) 01=-x xe x 0=0.5; 计算结果为

x= 0.978;

f(x)= 2.0313e-016; k=4;

由f(x)知结果满足要求,而且又迭代次数只有4次看出收敛速度很快。

b) 013=--x x x 0=1;

c) 0)12()1(2=--x x x 0=0.45, x 0=0.65;

当x 0=0.45时,计算结果为

x= 0.983;

f(x)= -8.4584e-014; k=4;

由f(x)知结果满足要求,而且又迭代次数只有4次看出收敛速度很快,实际上该方程确实有真解x=0.5。

当x 0=0.65时,计算结果为

x= 0.000; f(x)=0; k=9;

由f(x)知结果满足要求,实际上该方程确实有真解x=0.5,但迭代次数增多,实际上当取x 0〉0.68时,x ≈1,就变成了方程的另一个解,这说明Newton 法收敛与初值很有关系,有的时候甚至可能不收敛。

4. 用改进的Newton 法求解,有2重根,取2=μ

0)12()1(2=--x x x 0=0.55;并与3.中的c)比较结果。

当x 0=0.55时,程序死循环,无法计算,也就是说不收敛。改5.1=μ时,结果收敛为

x=0.286;

f(x)=4.1127e-007; k=16;

显然这个结果不是很好,而且也不是收敛至方程的2重根上。

当x 0=0.85时,结果收敛为

x= 1.489;

f(x)= 2.8737e-023; k=4;

这次达到了预期的结果,这说明初值的选取很重要,直接关系到方法的收敛性,实际上直接用Newton 法,在给定同样的条件和精度要求下,可得其迭代次数k=15,这说明改进后的Newton 法法速度确实比较快。 结论:

对于二分法,只要能够保证在给定的区间有根,使能够收敛的,当时收敛的速度和给定的区间有关,二且总体上来说速度比较慢。Newton 法,收敛速度要比二分法快,但是最终其收敛的结果与初值的选取有关,初值不同,收敛的结果也可能不一样,也就是结果可能不时预期需要得结果。改进的Newton 法求解重根问题时,如果初值不当,可能会不

收敛,这一点非常重要,当然初值合适,相同情况下其速度要比Newton法快得多。

实验报告二

题目: Gauss 列主元消去法

摘要:求解线性方程组的方法很多,主要分为直接法和间接法。本实验运用直接法的Guass 消去法,并采用选主元的方法对方程组进行求解。

前言:(目的和意义)

1. 学习Gauss 消去法的原理。

2. 了解列主元的意义。

3. 确定什么时候系数阵要选主元 数学原理:

由于一般线性方程在使用Gauss 消去法求解时,从求解的过程中可以看到,若)

1(-k kk a =0,则必须进行行交换,才能使消去过程进行下去。有的时候即使≠-)

1(k kk

a 0,但是其绝对值非常小,由于机器舍入误差的影响,消去过程也会出现不稳定得现象,导致结果不正确。因此有必要进行列主元技术,以最大可能的消除这种现象。这一技术要寻找行r ,使得

)

1()1(max ||->-=k ik k

i k rk a a

并将第r 行和第k 行的元素进行交换,以使得当前的)

1(-k kk a 的数值比0要大的多。这种列

主元的消去法的主要步骤如下: 1. 消元过程

对k =1,2,…,n -1,进行如下步骤。 1) 选主元,记

ik k

i 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,进行如下计算

)/(1

1,∑-=+-

=n

k j kk j kj

n k k a x a

a x

至此,完成了整个方程组的求解。

程序设计:

本实验采用Matlab 的M 文件编写。 Gauss 消去法源程序:

clear

a=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))

yzhuyuan=1;

else yzhuyuan=0;

end

if yzhuyuan; %%%%选主元

t=A(k,k); for r=k+1:n;

if abs(A(r,k))>abs(t) p=r; else p=k; end end %%%交换元素

if p~=k; for q=k:n+1; s=A(k,q); A(k,q)=A(p,q); A(p,q)=s; end

end end

%%%判断系数矩阵是否奇异或病态非常严重

if abs(A(k,k))< yipusilong

disp(‘矩阵奇异,解可能不正确’) 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; end end end

%%%%求解x

x(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); end

t=(A(k,n+1)-s)

x(k)=(A(k,n+1)-s)/A(k,k) end

结果分析和讨论:

例:求解方程??

??

?

?????=????????????????????10342212357562z y x ε。其中ε为一小数,当201410510,10,10,10----=ε时,分别采用列主元和不列主元的Gauss 消去法求解,并比较结果。 记E max 为求出的解代入方程后的最大误差,按要求,计算结果如下:

当510-=ε时,不选主元和选主元的计算结果如下,其中前一列为不选主元结果,后一列为选主元结果,下同。

0.391 0.651 2.972 2.163 2.451 2.721

E

= 9.2624e-010,0

max

此时,由于ε不是很小,机器误差就不是很大,由E max可以看出不选主元的计算结果精度还可以,因此此时可以考虑不选主元以减少计算量。

ε时,不选主元和选主元的计算结果如下

当10

=

10-

1.877 0.348

1.807

2.174

3.731 2.609

E

= 2.4668e-005,0

max

此时由E max可以看出不选主元的计算精度就不好了,误差开始增大。

ε时,不选主元和选主元的计算结果如下

当14

10-

=

1.020 1.000

1.666

2.000

3.111 0000

= 0.503,0

E

max

此时由E max可以看出,不选主元的结果应该可以说是不正确了,这是由机器误差引起的。

ε时,不选主元和选主元的计算结果如下

当20

=

10-

NaN 1

NaN 2

NaN 3

=NaN, 0

E

max

不选主元时,程序报错:Warning: Divide by zero.。这是因为机器计算的最小精度ε就认为是0,故出现了错误现象。而选主元时则没有这种现为10-15,所以此时的20

=

10-

象,而且由E max可以看出选主元时的结果应该是精确解。

结论:

采用Gauss消去法时,如果在消元时对角线上的元素始终较大(假如大于10-5),那么本方法不需要进行列主元计算,计算结果一般就可以达到要求,否则必须进行列主元这一步,以减少机器误差带来的影响,使方法得出的结果正确。

实验报告三

题目: Rung 现象产生和克服

摘要:由于高次多项式插值不收敛,会产生Runge 现象,本实验在给出具体的实例后,采用分段线性插值和三次样条插值的方法有效的克服了这一现象,而且还取的很好的插值效果。

前言:(目的和意义)

1. 深刻认识多项式插值的缺点。

2. 明确插值的不收敛性怎样克服。

3. 明确精度与节点和插值方法的关系。 数学原理:

在给定n+1个节点和相应的函数值以后构造n 次的Lagrange 插值多项式,实验结果表明(见后面的图)这种多项式并不是随着次数的升高对函数的逼近越来越好,这种现象就是Rung 现象。

解决Rung 现象的方法通常有分段线性插值、三次样条插值等方法。 分段线性插值:

设在区间[a, b ]上,给定n+1个插值节点

a=x 0

1) j j y x =)(φ,j=0,1,…,n 。

2) )(x φ在每个区间[x i , x j ]上是线性连续函数。则插值函数)(x φ称为区间[a, b ]上对应n 个数据点的分段线性插值函数。

三次样条插值:

给定区间[a, b ]一个分划 ⊿:a=x 0

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));

else

l=l;

end

end

f=f+Rf(s(q))*l;%求插值函数

end

plot(x,f,'r')%作出插值函数曲线

grid on

hold on

分段线性插值源程序

clear

n=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 k

case 1

if x<=s(2);

l=(x-s(2))./(s(1)-s(2));

else

l=0;

end

case n+1

if x>s(n);

l=(x-s(n))./(s(n+1)-s(n));

else

l=0;

end

otherwise

if 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));

else

l=0;

end

end

end

ff=ff+Rf(s(k))*l;%%求插值函数值

end

m=m+1;

f(m)=ff;

end

%%%作出曲线

x=-1:hh:1;

plot(x,f,'r');

grid on

hold on

三次样条插值源程序:(采用第一边界条件)

clear

n=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);

end

for k=1:n-1;%求出系数向量lamuda,miu

la(k)=h(k+1)/(h(k+1)+h(k));

miu(k)=1-la(k);

end

%%%%赋值系数矩阵A

for k=1:n-1;

for p=1:n-1;

switch p

case k

A(k,p)=2;

case k-1

A(k,p)=miu(p+1);

case k+1

A(k,p)=la(p-1);

otherwise

A(k,p)=0;

end

end

end

%%%%求出d阵

for k=1:n-1;

switch k

case 1

d(k)=6*f2c([s(k) s(k+1) s(k+2)])-miu(k)*v; case n-1

d(k)=6*f2c([s(k) s(k+1) s(k+2)])-la(k)*v; otherwise

d(k)=6*f2c([s(k) s(k+1) s(k+2)]);

end

end

%%%%求解M阵

M=A\d';

M=[v;M;v]; %%%%

m=0; f=0;

for x=a:hh:b; if x==a; p=1; else

p=ceil((x-s(1))/((b-a)/n)); end ff1=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 on grid on

结果分析和讨论:

本实验采用函数2

2511

)(x

x 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)L

10(x)S

10

(x) S

40

(x) X

10

(x) X

40

(x)

-1.000 0.154 0.154 0.154 0.154 0.154 0.154

-0.000 0.239 1.920 0.040 0.239 0.910 0.239

-0.000 0.941 1.926 0.458 0.941 0.665 0.941

-0.000 0.344 0.982 0.979 0.344 0.421 0.344

-0.000 0.176 0.176 0.176 0.176 0.176 0.176

-0.000 0.378 -0.674 0.744 0.378 0.882 0.378

-0.000 0.321 -0.250 0.866 0.321 0.588 0.321

-0.000 0.649 -0.418 0.849 0.649 0.294 0.649

-0.000 0.000 0.000 0.000 0.000 0.000 0.000

-0.000 0.788 0.257 0.713 0.788 0.000 0.788

-0.000 0.276 0.103 0.730 0.276 0.000 0.276

-0.000 0.825 0.267 0.883 0.825 0.000 0.825

-0.000 0.000 0.000 0.000 0.000 0.000 0.000

-0.000 0.385 0.376 0.464 0.385 0.000 0.385

-0.000 0.231 0.080 0.860 0.231 0.000 0.231

-0.000 0.902 0.789 0.327 0.902 0.000 0.902

-0.000 0.000 0.000 0.000 0.000 0.000 0.000

-0.000 0.000 0.340 0.431 0.000 0.000 0.000

-0.000 0.000 0.890 0.828 0.000 0.000 0.000

-0.000 0.824 0.073 0.810 0.824 0.000 0.824

0 1.000 1.000 1.000 1.000 1.000 1.000 0.000 0.824 0.073 0.810 0.824 0.000 0.824

0.000 0.000 0.890 0.828 0.000 0.000 0.000

0.000 0.000 0.340 0.431 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.902 0.789 0.327 0.902 0.000 0.902

0.000 0.231 0.080 0.860 0.231 0.000 0.231

0.000 0.385 0.376 0.464 0.385 0.000 0.385

0.000 0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.825 0.267 0.883 0.825 0.000 0.825

0.000 0.276 0.103 0.730 0.276 0.000 0.276

0.000 0.788 0.257 0.713 0.788 0.000 0.788

0.000 0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.649 -0.418 0.849 0.649 0.294 0.649

0.000 0.321 -0.250 0.866 0.321 0.588 0.321

0.000 0.378 -0.674 0.744 0.378 0.882 0.378

0.000 0.176 0.176 0.176 0.176 0.176 0.176

0.000 0.344 0.982 0.979 0.344 0.421 0.344

0.000 0.941 1.926 0.458 0.941 0.665 0.941

0.000 0.239 1.920 0.040 0.239 0.910 0.239

1.000 0.154 0.154 0.154 0.154 0.154 0.154

从以上结果可以看到,用三次样条插值和线性分段插值,不会出现多项式插值是出现的Runge现象,插值效果明显提高。进一步说,为了提高插值精度,用三次样条插值和线性分段插值是可以增加插值节点的办法来满足要求,而用多项式插值函数时,节点数的增加必然会使多项式的次数增加,这样会引起数值不稳定,所以说这两种插值要比多项式插值好的多。而且在给定节点数的条件下,三次样条插值的精度要优于线性分段插值,曲线的光滑性也要好一些。

实验报告四

题目: 多项式最小二乘法

摘要:对于具体实验时,通常不是先给出函数的解析式,再进行实验,而是通过实验的观察和测量给出离散的一些点,再来求出具体的函数解析式。又因为测量误差的存在,实际真实的解析式曲线并不一定通过测量给出的所有点。最小二乘法是求解这一问题的很好的方法,本实验运用这一方法实现对给定数据的拟合。

前言:(目的和意义)

1. 学习使用最小二成法的原理

2. 了解法方程的特性 数学原理:

对于给定的测量数据(x i ,f i )(i=1,2,…,n ),设函数分布为

∑==m

j j j x a x y 0)()(?

特别的,取)(x j ?为多项式

j j x x =)(? (j=0, 1,…,m )

则根据最小二乘法原理,可以构造泛函

∑∑==-=n

i m

j i j j i m x a f a a a H 1

10))((),,,(?

0=??k

a H

(k=0, 1,…,m ) 则可以得到法方程

????

?????

??

?=????????????????????????),(),(),(),(),(),(),(),(),(),(),(),(1010101111000100m m m m m m m m f f f a a a ????????????????????? 求该解方程组,则可以得到解m a a a ,,,10 ,因此可得到数据的最小二乘解

∑=≈m

j j j x a x f 0)()(?

程序设计:

本实验采用Matlab 的M 文件编写。其中多项式函数j j x =?写成function 的方式,如下

function y=fai(x,j) y=1; for i=1:j y=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); end g(j+1)=t; end

A(k+1,:)=g;%法方程的系数矩阵 t=0;

for i=1:n;%计算积(f(si),fai(si)) t=t+f(i)*fai(s(i),k); end b(k+1,1)=t; end

a=A\b%求出多项式系数

x=[s(1):0.01:s(n)]';

y=0;

for i=0:m;

y=y+a(i+1)*fai(x,i);

end

plot(x,y)%作出拟合成的多项式的曲线

grid on

hold on

plot(s,f,'rx') %在上图中标记给定的点

结果分析和讨论:

例用最小二乘法处理下面的实验数据.

x

3 4 5 6 7 8 9

i

f

2.01 2.98

3.50 5.02 5.47 6.02 7.05

i

并作出)

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 积分法的收敛速度及应用时容易出现的问题。 数学原理:

考虑积分?=b

a 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. 准备初值,计算

)]()([2

1,1b f a f b

a T +-=

2. 按梯形公式的递推关系,计算

∑-=-+-+-+-+=120

1,11

,11

))5.0(2(221k i k k k k i a

b a f a b T T 3. 按Romberg 积分公式计算加速值

1

441,11,11,--=

----+---m m

k m m k m m m k m T T T m=2,…,k

4. 精度控制。对给定的精度R ,若

R T T m m <--1,11,

则终止计算,并取1,m T 为所求结果;否则返回2重复计算,直至满足要求的精度为止。

哈工大单片机实验报告(上传)

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 单片机原理与应用 实验报告 学生姓名: 学号: 班级: 专业: 任课教师: 所在单位: 2013年5月

软件实验 在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000~20FFh的内容清零。 三、程序框图 四、实验过程 实验中利用MOVX语句,将外部存储器指定内容清零。利用数据指针DPTR完成数据传送工作。程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。 五、实验结果及分析 清零前清零后

【问题回答】清零前2000H~20FFH中为内存里的随机数,清零后全变为0。 六、实验源程序 AJMP MAIN ORG 0640H MAIN: MOV R0, #00H MOV DPL, #00H MOV DPH, #20H LOOP: MOV A, #00H MOVX @DPTR, A INC DPTR INC R0 CJNE R0, #0FFH, LOOP MOVX @DPTR, A END 实验二拆字程序 一、实验目的 掌握汇编语言设计和调试方法。 二、实验内容 把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。 三、程序框图 四、实验过程 将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H 和2002H中。利用MOVX语句、DPTR指针可实现数据的传送,利用高低四位交换语句SWAP和与语句ANL可进行对高低位的清零。

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

哈工大_控制系统实践_磁悬浮实验报告

研究生自动控制专业实验 地点:A区主楼518房间 姓名:实验日期:年月日斑号:学号:机组编号: 同组人:成绩:教师签字:磁悬浮小球系统 实验报告 主编:钱玉恒,杨亚非 哈工大航天学院控制科学实验室

磁悬浮小球控制系统实验报告 一、实验内容 1、熟悉磁悬浮球控制系统的结构和原理; 2、了解磁悬浮物理模型建模与控制器设计; 3、掌握根轨迹控制实验设计与仿真; 4、掌握频率响应控制实验与仿真; 5、掌握PID控制器设计实验与仿真; 6、实验PID控制器的实物系统调试; 二、实验设备 1、磁悬浮球控制系统一套 磁悬浮球控制系统包括磁悬浮小球控制器、磁悬浮小球实验装置等组成。在控制器的前部设有操作面板,操作面板上有起动/停止开关,控制器的后部有电源开关。 磁悬浮球控制系统计算机部分 磁悬浮球控制系统计算机部分主要有计算机、1711控制卡等; 三、实验步骤 1、系统实验的线路连接 磁悬浮小球控制器与计算机、磁悬浮小球实验装置全部采用标准线连接,电源部分有标准电源线,考虑实验设备的使用便利,在试验前,实验装置的线路已经连接完毕。 2、启动实验装置 通电之前,请详细检察电源等连线是否正确,确认无误后,可接通控制器电源,随后起动计算机和控制器,在编程和仿真情况下,不要启动控制器。 系统实验的参数调试

根据仿真的数据及控制规则进行参数调试(根轨迹、频率、PID 等),直到获得较理想参数为止。 四、实验要求 1、学生上机前要求 学生在实际上机调试之前,必须用自己的计算机,对系统的仿真全部做完,并且经过老师的检查许可后,才能申请上机调试。 学生必须交实验报告后才能上机调试。 2、学生上机要求 上机的同学要按照要求进行实验,不得有违反操作规程的现象,严格遵守实验室的有关规定。 五、系统建模思考题 1、系统模型线性化处理是否合理,写出推理过程? 合理,推理过程: 由级数理论,将非线性函数展开为泰勒级数。由此证明,在平衡点)x ,(i 00对 系统进行线性化处理是可行的。 对式2x i K x i F )(),(=作泰勒级数展开,省略高阶项可得: )x -)(x x ,(i F )i -)(i x ,(i F )x ,F(i x)F(i,000x 000i 00++= )x -(x K )i -(i K )x ,F(i x)F(i,0x 0i 00++= 平衡点小球电磁力和重力平衡,有 (,)+=F i x mg 0 |,δδ===00 i 00 i i x x F(i,x) F(i ,x )i ;|,δδ===00x 00i i x x F(i,x)F (i ,x )x 对2 i F(i,x )K()x =求偏导数得:

DB1-西工大数据库实验一数据库及表的创建和管理

《数据库原理》实验报告 题目:实验一 学号姓名班级日期数据库和表的创建与管理 一.实验内容、步骤以及结果 1.利用图形用户界面创建,备份,删除和还原数据库和数据表(50分,每小题5分) 数据库和表的要求(第四版教材第二章习题5要求的数据库) 数据库名:SPJ,其中包含四张表:S表, P表, J表, SPJ表 图2.1 S表(供货商表) 图2.2 P表(零件表) 图2.4 SPJ表(供应情况表) 图2.3 J表(工程项目表)

完成以下具体操作: (1)创建SPJ数据库,初始大小为10MB,最大为50MB,数据库自动增长,增长 方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB 增长。数据库的逻辑文件名和物理文件名均采用默认值。 (2)在SPJ数据库中创建如图2.1-图2.4的四张表(只输入一部分数据示意即可)。 (3)备份数据库SPJ(第一种方法):备份成一个扩展名为bak的文件。(提示:最 好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4)备份数据库SPJ(第二种方法):将SPJ数据库定义时使用的文件(扩展名为 mdf,ldf的数据文件、日志文件等)复制到其他文件夹进行备份。 (5)删除已经创建的工程项目表(J表)。 (6)删除SPJ数据库。(可以在系统默认的数据存储文件夹下查看此时SPJ数据库 对应的mdf,ldf文件是否存在) (7)利用备份过的bak备份文件还原刚才删除的SPJ数据库。(还原数据库) (8)利用备份过的mdf,ldf的备份文件还原刚才删除的SPJ数据库。(附加) (9)将SPJ数据库的文件大小修改为100MB。 (10)修改S表,增加一个联系电话的字段sPhoneNo,数据类型为字符串类型。 实验具体步骤: (1)创建SPJ数据库:右击数据库-->新建数据库-->填写相应参数-->点击确定。如下图: (2)在SPJ数据库中创建四张表:单击数据库SPJ-->右击‘表’-->新建表-->填写参数-->确定。如下图:

哈工大计算机网络实验报告之五

计算机网络课程实验报告 实验5:利用Ethereal分析TCP、UDP、ICMP协议 继续学习Ethereal的使用; 利用Ethereal分析TCP、UDP和ICMP协议。 TCP协议采用了哪些机制保证可靠数据传输。(3分) 数据重传和数据确认应答机制 Traceroute的工作过程,用自己的话来描述,200字以内,超过酌情扣分。 (4分) 构造数据包,来检查到达一个主机时经过了哪些路由。主机发送给目的地址的数据包的TTL是从1逐个递增的,而数据包每到达一个路由器,它的TTL值就会减1,当TTL减到0时,该数据包被取消,传回一个数据包给主机,我们就能捕获这个路由器的IP地址了。如果收到"超时错",表示刚刚到达的是路由器,而如果收到的是"端口不可达" 错误,表示刚刚到达的就是目的主机,路由跟踪完成,程序结束。 阐述一下为什么应用程序开发者会选择将应用程序运行在UDP而不是TCP 之上?(3分) UDP没有拥塞控制机制,发送方可以以任何速率向下层注入数据。很多实时应用是

可以容忍一定的数据丢失的,同时又对速率有很高要求(比如在线视频播放),这时开发者会倾向选择UDP协议,避免使用TCP协议的拥塞控制机制产生的分组开销。 实验过程: 使用Ethereal分析TCP协议: (15分)得分:抓取本机与https://www.docsj.com/doc/b97344714.html,/ethereal-labs/alice.txt通信过程中的网络数据包。根据操作思考以下问题: 客户服务器之间用于初始化TCP连接的TCP SYN报文段的序号(sequence number)是多少?在该报文段中,是用什么来标示该报文段是SYN报文段的? Seq=0 Flags中的syn位为1,ack位为0,说明是syn报文段 服务器向客户端发送的SYNACK报文段序号是多少?该报文段中,Acknowledgement字段的值是多少?https://www.docsj.com/doc/b97344714.html,服务器是如何决定此值 的?在该报文段中,是用什么来标示该报文段是SYNACK报文段的? Seq=0 Ack=1,服务器根据客户端发送的SYN报文的Seq值加一后得到此值 Flags中的Ack和Syn位都为1,所以是SYNACK报文

数据库实验三

实验三订购数据库 (一)数据定义 一、基本表操作 1.建立基本表 1)创建仓库表,由以下属性组成:仓库号(CHAR 型),城市(CHAR 型),面积(INT 型)。其中仓库号为主码,并且有面积>0 的限定条件 2)创建职工表,由以下属性组成:仓库号(CHAR型),职工号(CHAR型),工资(INT型)。其中职工号为主码,仓库号为外码,工资的限定条件为1000<=工资<=5000。 3)创建供应商表,由以下属性组成:供应商号(CHAR型),供应商名(CHAR型),地址(CHAR 型)。其中供应商号为主码。 4)创建订购单表,由以下属性组成:职工号(CHAR型),供应商号(CHAR型),订购单号(CHAR 型),订购日期(CHAR型)。其中订购单号为主码,职工号和供应商号为外码。 2.修改基本表 1)往订购单表中增加一个新的属性“完成日期”,DATETIME型,并且允许为空值。 2)将职工表中的工资属性类型改为SMALLINT 型。 3)删除刚才在订购单表中加入的“完成日期”属性。 二、索引操作 1.建立索引 1)在订购单表上建立关于供应商号的普通索引supidx。 2)在订购单表的多个字段建立索引sup_empidx,先按照供应商号升序索引,然后按照职工号升序索引。 2.删除索引 1)删除订购单表上的索引supidx。 2)删除订购单表上的索引sup_empidx。 (二)数据操作 一、插入数据 1)向仓库表插入下列数据:WH1,北京,370 WH2,上海,500 WH3,广州,200 WH4,武汉,400 2)向职工表插入下列数据:WH2,E1,1220 WH4,E2,1270 WH1,E3,1210 WH2,E4,1250 WH3,E5,1200 WH3,E6,1230 WH1,E7,1250 3)向供应商表插入下列数据: S1,利民电子元件厂,上海 S2,联华电子公司,武汉 S3,振华电子厂,西安

数据库实验报告1

一. 实验内容、步骤以及结果: 1.利用图形用户界面创建,备份,删除和还原数据库和数据表(30分,每小题5分) ●数据库和表的要求 (1)依据课本P127(第四版教材,下同)的第三题,创建一个名为SPJ的数据库,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5% 比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库 的逻辑文件名和物理文件名均采用默认值。 (2)数据库SPJ包含供应商表,零件表,工程项目表,供应情况表。具体每张表的定义以及数据参看课本P74页的第五题。 ● 完成以下具体操作: (1)创建的SPJ数据库。 (2)在SPJ数据库中分别创建上述的四张表(只输入一部分数据示意即可)。 (3)备份SPJ数据库。 (4)删除已经创建的工程项目表(J表)。 (5)删除SPJ数据库。 还原刚才删除的SPJ数据库。 实验具体步骤: (1)创建SPJ数据库:右击数据库-->新建数据库-->填写相应参数-->点击确定。(2)创建表:单击数据库SPJ-->右击‘表’-->新建表-->填写参数-->确定。

(3)备份数据库:右击数据库SPJ-->任务-->备份-->填参数-->确定。 (4)删除表:单击数据库SPJ--》单击表--》右击J--》选择删除。 (5)删除数据库:右击数据库SPJ--》选择删除命令。 (6)还原数据库。右击数据库--》选择还原数据库命令--》填写参数--》确定。 2. 利用SQL语言创建和删除数据库和数据表(30分,每小题5分) 数据库和表的要求 (1)创建用于学生信息的数据库,数据库名为Student,初始大小为20MB,最大为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初 始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文 件名,日志文件名请自定义。 (2)数据库Student包含学生信息,课程信息和学生选课的信息。包含下列3个表:S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。各表的结 构以及数据如下所示: 表 2.1 学生基本信息表(表名:S)

北邮大数据库实验三

实验三完整性及视图、索引 视图是基于某个查询结果的一个虚拟表,只是用来查看数据的窗口而已。索引能够提供一种以一列或多列的值为基础迅速查找数据表(或视图)中行的能力,用来快速访问数据表(或视图)中的数据。触发器是一种特殊的存储过程,它在特定语言事件发生时自动执行,通常用于实现强制业务规则和数据完整性。 【实验目的】 掌握MySQL视图、索引的使用,理解什么是数据库的完整性。 【实验要求】 1、每完成一个任务,截取全屏幕快照1~3作为中间步骤和结果的贴图,粘贴在最后的实验报告中。 2、除了使用我们提供的数据外还要自己向表中添加些新数据,以保证每个查询结果不为空集,或计数结果不为0。 3、思考题可以选做,作为优秀加分的依据。 【实验任务】 1、创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号 及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。

2、创建一个视图,该视图为每门课程的平均成绩,视图包括的列有课程号、 课程名及平均成绩,并用利用该视图查询所有课程的平均成绩,要求给出课程号、课程名及平均成绩。

3、为院系代码表(dept_code)创建基于“院系代码”列的索引。 4、为教室信息表(classroom_info)创建基于room_id列的惟一索引并插入一 条room_id列与表中已有的值重复的数据,观察系统的反馈。

5、重新修改表stud_info、lesson_info及stud_grade,修改的容为: ①为三表增加主码约束,stud_info的主码为stud_id,lesson_info的主码为 course_id,stud_grade的主码为stud_id、course_id。

数据库系统概论实验指导(第七版)

数据库系统概论实验指导 (第七版) 计算机学院 2013/09

改版履历

目录 目录 (3) 1.实验概要 (4) 1.1.实验说明 (4) 1.2.实验环境和配置 (4) 1.3.上机要求 (5) 2.实验1:数据库/表的基本操作和表级约束 (5) 2.1.目的和要求 (5) 2.2.实验准备 (5) 2.3.实验内容 (5) 3.实验2:库级约束和基本表的数据操作 (8) 3.1.目的和要求 (8) 3.2.实验准备 (8) 3.3.实验内容 (8) 4.实验3:视图操作和安全性控制 (10) 4.1.目的和要求 (10) 4.2.实验准备 (10) 4.3.实验内容 (10) 5.实验4:存储过程/触发器/ODBC数据库编程 (12) 5.1.目的与要求 (12) 5.2.实验准备 (12) 5.3.实验内容 (12) 6.实验5:数据库综合实验 (14) 6.1.目的与要求 (14) 6.2.实验准备 (14) 6.3.实验内容 (15) 5.3.1.题目一:零件交易中心管理系统 (15) 5.3.2.题目二:图书管理系统 (15) 5.3.3.题目三:民航订票管理系统 (15) 5.3.4.题目四:学生学籍管理系统 (16) 5.3.5.题目五:车站售票管理系统 (16) 5.3.6.题目六:企业人事管理系统 (16)

5.3.7.题目七:电话交费管理系统 (16) 5.3.8.题目八:医药销售管理系统 (17) 7.附录:实验报告格式 (18) 1.实验概要 1.1.实验说明 内容:本课程实验分5次完成,每次完成一部分。具体内容参考本指导的后半部分。 成绩:每次实验100分,最后取5次实验的加权平均分作为实验的总成绩,其中第五次实验占40%,其余各次占15%。每次实验中各个环节的评分标准如下: 上述每一项按照百分制给出分值,最后按照比率计算每次实验的最终成绩。 实验报告 每次实验需提交电子版的实验报告(最后一次实验需提交设计文档,源程序等相关资料)。每次实验结束时,将写好的实验报告,提交给各班辅导老师。如果确有困难没有完成的情况下,课后自己完成之后提交到辅导老师的邮箱里。由辅导老师根据课堂上机实验检查状况和实验报告的内容给出每次实验的成绩。 实验报告的内容包括:实验内容、实验步骤、程序源码、运行结果(可以是程序的输出,也可以是运行画面的抓屏,抓屏图片要尽可能的小,否则文件太大)。每份实验报告是一个WORD文档。实验报告命名规则如下:DBx(实验次数)_XXXXXX(学号)_姓名例如:20052978的学生的第一次实验报告文件名: DB1_20052978_李宁注意:请每个人保存好自己的实验报告的电子版,直到该门课考试成绩公布之后。 1.2.实验环境和配置 SQL Server 2008(Microsoft SQL Server 2008 Express With Advance Service)

哈工大天线实验报告

Harbin Institute of Technology 天线原理实验报告 课程名称:天线原理 班级: 姓名: 学号: 同组人: 指导教师: 实验时间: 实验成绩: 注:本报告仅供参考 哈尔滨工业大学

一、实验目的 1. 掌握喇叭天线的原理。 2. 掌握天线方向图等电参数的意义。 3. 掌握天线测试方法。 二、实验原理 1. 天线电参数 (1).发射天线电参数 a.方向图:天线的辐射电磁场在固定距离上随空间角坐标分布的图形。 b.方向性系数:在相同辐射功率,相同距离情况下,天线在该方向上的辐射功率密度Smax与无方向性天线在该方向上的辐射功率密度S0之比值。 c.有效长度:在保持该天线最大辐射场强不变的条件下,假设天线上的电流均匀分布时的等效长度。 d.天线效率:表征天线将高频电流或导波能量转换为无线电波能量的有效程度。 e.天线增益:在相同输入功率、相同距离条件下,天线在最大辐射方向上的功率密度Smax与无方向性天线在该方向上的功率密度S0之比值。 f.输入阻抗:天线输入端呈现的阻抗值。 g.极化:天线的极化是指该天线在给定空间方向上远区无线电波的极化。 h.频带宽度:天线电参数保持在规定的技术要求范围内的工作频率范围。 (2).接收天线电参数:除了上述参数以外,接收天线还有一些特有的电参数:等效面积和等效噪声温度。 a.等效面积:天线的极化与来波极化匹配,且负载与天线阻抗共轭匹配的最佳状态下,天线在该方向上所接收的功率与入射电波功率密度之比。 b.等效噪声温度:描述天线向接收机输送噪声功率的参数。 2. 喇叭天线 由逐渐张开的波导构成,是一种应用广泛的微波天线。按口径形状可分为矩形喇叭天线与圆形喇叭天线等。波导终端开口原则上可构成波导辐射器,由于口径尺寸小,产生的波束过宽;另外,波导终端尺寸的突变除产生高次模外,反射较大,与波导匹配不良。为改善这种情况,可使波导尺寸加大,以便减少反射,又可在较大口径上使波束变窄。 (1).H面扇形喇叭:若保持矩形波导窄边尺寸不变,逐渐张开宽边可得H面扇

数据库实验三

注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。 一、实验课时:4 二、实验目的 (1) 掌握使用T-SQL语句创建、删除数据库的方法。 (2) 掌握使用T-SQL语句创建、修改、删除表的方法。 (3) 掌握使用T-SQL语句创建、删除数据库完整性约束条件的方法。 (4) 掌握使用T-SQL语句对表添加、修改、删除数据的方法。 (5) 掌握使用T-SQL语句创建、修改、删除、查询视图的方法。 三、实验要求 (1) 使用SQL Server 2008查询分析器。 (2) 严格依照操作步骤进行。 (3) 在本地服务器中创建和管理数据库。 四、实验环境 (1) PC机。 (2) SQL Server 2008。 五、实验内容及步骤(请特别注意实验步骤:第6项的第1小项,即“插入数据”操作必须在第4项以前执行) ??? 1.使用Transact-SQL语句创建JOBS数据库,数据库名格式为 JOBS_SunYu(即JOBS_你的中文名字拼音) CREATE Database JOBS_DengZhiPeng;

2.使用Transact-SQL语句创建JOBS数据库包含的所有表 EMPLOYEE CREATE TABLE EMPLOYEE( EMPNO SMALLINT NOT NULL, SUPNAME VARCHAR(50)NOT NULL, FORENAMES VARCHAR(50)NOT NULL, DOB DATE NOT NULL, ADDRESS VARCHAR(50)NOT NULL, TELNO CHAR(10)NOT NULL, DEPNO SMALLINT NOT NULL ); JOBHISTORY CREATE TABLE JOBHISTORY( EMPNO SMALLINT NOT NULL, POSITION VARCHAR(50)NOT NULL, STARDATE DATE NOT NULL, ENDDATE DATE NULL, SALARY INT NOT NULL ); COURSE CREATE TABLE COURSE( COURSENO SMALLINT NOT NULL, CNAME VARCHAR(50)NOT NULL, CDATE DATE NOT NULL ); DEPARTMENT CREATE TABLE DEPARTMENT( DEPNO SMALLINT NOT NULL, DNAME VARCHAR(50)NOT NULL, LOCATION VARCHAR(10)NOT NULL, HEAD SMALLINT NOT NULL ); EMPCOURSE CREATE TABLE EMPCOURSE( EMPNO SMALLINT NOT NULL,

数据库实验报告

数据库实验报告

武汉理工大学 学 生 实 验 报 告 书 实验课程名称 数据库系统概论 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 学生学号 实验课成绩

2013 — 2014 学年第二学期实验课程名称:数据库系统概论 实验项目名称SQL SEVER 2000的系 统工具及用户管理 实验 成绩 实验者专业班 级 组别 同组者实验 日期 2014年4 月24日

第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000工具创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 二、实验基本原理与设计(包括实验方案设计,实 验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (2)创建数据库和查看数据库属性。 (3)创建表、确定表的主码和约束条件。 (4)查看和修改表的结构。 (5)向数据库输入数据,观察违反列级约束时出现的情况。 (6)修改数据。 (7)删除数据,观察违反表级约束时出现的情况。 三、主要仪器设备及耗材 Windows XP SQL SERVER 2000

第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录, 实验现象记录,实验过程发现的问题等) 没有错误 错误:未能建立与WORKEPLACE\XUMENGXING的链接SQL Server 不存在或访问被拒绝 原因:未启动数据库服务 二、实验结果及分析(包括结果描述、实验现象分 析、影响因素讨论、综合分析和结论等) 实验结果部分截图:

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

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

计算机网络与通信实验报告(一)学号姓名班级报告日期 2015.04.15 实验内容网络常用命令的使用 实验目的1.熟悉网络命令的使用,例如ping,tracert,netstat,ipconfig等,对结果进行分析判断。 2.熟悉dns的层次查询,以及smtp协议。 实验预备知识结合实验报告相关知识以及老师课堂演示、笔记。 实验过程描述1.按照实验报告步骤所指,一步步熟悉ping tracert ipconfig 等网络命令,并对结果进行相应分析、截图。 2.Dns层次查询时,首先网上搜索全球13 个根域名服务器的ip,选择其中一个ip 对学校主页https://www.docsj.com/doc/b97344714.html, 进行层次分析,依次进行cn https://www.docsj.com/doc/b97344714.html, https://www.docsj.com/doc/b97344714.html, https://www.docsj.com/doc/b97344714.html, 的域名分析,最终得到主页ip,然后使用ping命令ping得主页ip 相比较,结果一致,查询成功。 3.熟悉掌握SMTP协议。Dos 命令下依次输入telnet相关命令,并使用事先转换成base64 的用户名、密码登陆邮箱。登陆成功后给自己的邮箱发送信息,最后退出。操作、邮箱截图如下。 实验结果见表格下方截图。 实验当中问题及解决方法1、telnet命令刚开始dos无法识别,属于不认识的命令。上网查询资料后,在控制面板中设置后成功解决。 2、熟悉SMTP协议时,telnet 登陆邮箱并发送信件,期间出现好多错误,比如单词拼写错误,指令错误。重复多次后最终成功实现。 成绩(教师打分)优秀良好及格不及格

实验相关截图 一、网络命令的使用 1.ping 命令

2.tracert 命令

数据库第一次实验报告

《数据库系统概论》实验报告 题目:实验一 数据库和表的基本操作和约束条件姓名班级学号日期 刘凯10031201 2012302606 2014.10 一、实验内容、步骤以及结果 1.利用图形用户界面创建,备份,删除和还原数据库和数据表 创建初始数据库信息如下 备份数据库

删除表 2.利用SQL语言创建和删除数据库和数据表创建数据库 CREATE DATABASE studentdata ( FILENAME = 'D:\studentdata.mdf' , SIZE = 20480KB , MAXSIZE = 102400KB , FILEGROWTH = 10240KB ) LOG ON ( FILENAME = 'D:\studentdata_1.ldf' , SIZE = 2048KB , MAXSIZE = 5120KB , FILEGROWTH = 1024KB ) GO 创建三张表

CREATE TABLE dbo.C( Cno char(4)PRIMARY KEY , Cname char(40) , Cpno int , Ccredit int,) GO CREATE TABLE dbo.S( Sno char(4)PRIMARY KEY , Sname char(40) , Ssex char(4) , Sbirth] char(40) , Sdept char(4) , ) CREATE TABLE [dbo].[SC]( Sno char(4) , Cno char(4) , Grade int ) GO 备份数据库 Backup database studentdata to disk = ‘D:\studentdata.db.bak’ 删除数据库 Deleta database studentdata.db 还原数据库 Restore database studentdata from disk = ‘D:\studentdata.db.bak’ 3.利用图形用户界面对上题中创建的Student库的S表中,增加以下的约束和索引 主键 Sname唯一键

数据库实验三报告

江西师范大学计算机信息工程学院学生实验报告专业___计算机科学与技术__ 姓名___燕悦__ 学号__1408091077_ 日期__ __

四.程序及运行结果(或实验数据记录及分析) 针对S_T数据库: 1)创建三个表:student course sc。程序: use S_T go /*创建Student表*/ create table student( Sno char(5) primary key not null check(Sno like '[0-9][0-9][0-9][0-9][0-9]'), Sname char(20) not null, Ssex char(2) not null check(Ssex in ('男','女')), Sage smallint not null check(Sage between 14 and 38), Sdept char(20) not null ); /*创建Course表*/ create table course( Cno char(4) not null primary key check(Cno like '[0-9][0-9][0-9][0-9]'), Cname char(40) not null, Cpno char(4), Ccredit smallint not null ); /*创建SC表*/ create table sc( Sno char(5) not null , Cno char(4) not null, Grade smallint check(Grade between 0 and 100), primary key(Sno,Cno)); 执行结果: 2)对course表进行修改。程序: /*修改course表,为Cpno列添加一个外键约束*/ alter table course add foreign key (Cpno) references course(Cno); 执行结果:

数据库实验报告5

1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。(5分) exec sp_rename v_spj, v_spj_三建; 2.针对SPJ数据库,创建并执行如下的存储过程:(共计35分) (1)创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工 程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME) 以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。(10 分) create proc jsearch @jno char(2) as select sname, pname, jname from s,p,j,spj where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and spj.jno=@jno; 执行: exec jsearch 'J1'

(2)使用S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执 行该存储过程时,将返回北京供应商的所有信息。(10分) 创建加密存储过程: create proc jmsearch with encryption as select * from s where s.city='北京'; sp_helptext jmsearch; (3)使用系统存储过程sp_helptext查看jsearch, jmsearch的文本信息。(5分) 用系统存储过程sp_helptext查看jsearch: exec sp_help jsearch; exec sp_helptext jsearch;

数据库 实验三答案

实验3 SQL语言 一、实验目的 1、掌握SQL中运算符和表达式的使用。 2、掌握实用SQL语言查询数据库。 二、实验要求 1、所有的实验过程请严格按照实验内容的步骤进行。 2、对关键步骤截屏并复制到实验报告的相应位置。 三、实验设备、环境 设备:计算机 环境:WINDOWS XP、SQL SERVER 2000中文版 四、实验原理、方法 上机操作 五、实验内容 准备工作:还原学生成绩管理数据库; 注意:写SQL语句时,注意学生成绩管理数据库中表名称和字段名称的对应。 1、使用SQL查询分析器,对学生成绩管理数据库完成如下查询操作: 1)简单查询 (1)求数学系学生的学号和姓名。 (2)求选修了课程的学生学号。

(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。 (4)求选修课程0001且成绩在80~90之间的学生学号和成绩,并将成绩乘以系数0.8输出。 (5)求数学系或计算机应用系姓王的学生的信息。 (6)求缺少了成绩的学生的学号和课程号。

2)连接查询 (1)查询每个学生的情况以及他(她)所选修的课程。 (2)求学生的学号、姓名、选修的课程名及成绩。 (3)求选修0001课程且成绩为90分以上的学生学号、姓名及成绩。

3)嵌套查询 (1)求选修了0003的学生学号和姓名。 (2)求0001课程的成绩高于王军的学生的学号和成绩。

(3)求其他系中比计算机系某一学生年龄小的学生。 4)使用分组和函数查询 (1)求学生的总人数。 (2)求选修了课程的学生人数。

(3)求课程和选修0001的人数。 (4)求选修课超过3门课的学生学号。

数据库实验三作业及答案.docx

实验3 SQL Server 数据表的管理 一、实验目的 1.学会使用企业管理器和Transact-SQL语句CREATE TABLE和ALTER TABLE创建和修改表。 2.学会在企业管理器中对表进行插入、修改和删除数据操作。 3.学会使用Transact-SQL语句对表进行插入、修改和删除数据操作。 4.了解SQL Server的常用数据类型。 二、实验准备 1.了解在企业管理器中实现表数据的操作,如插入、修改和删除等。 2.掌握用Transact-SQL语句对表数据进行插入(INSERT)、修改(UPDATE)和删除(DELETE和TRANCATE TABLE)操作。 三、实验内容及步骤 1.启动企业管理器,展开studentsdb数据库文件夹。 2.在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2、图1-3和图1-4所示。 图1-2 学生基本情况表student_info 图1-3 课程信息表curriculum 图1-4 学生成绩表grade 3.在企业管理器中创建student_info、curriculum表。 4.在企业管理器中,将student_info表的学号列设置为主键,非空。 5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade表。 CREATE TABLE grade (学号varchar(4), 课程编号varchar(4), 分数decimal(5,0) ) 6.student_info、curriculum、grade表中的数据如图1-5、图1-6和图1-7所示。 图1-5 student_info的数据

西北工业大学大数据库实验报告材料6

实用文档 实验内容、步骤以及结果.一 50分)ODBC1.配置以及程序调试:(表。学生信息)s(ODBC(1)配置一个数据源,要求数据源名称:student,其中包含 ODBC,点击“添加”:用系统工具配置 SQL Sever出现以下对话框,选中,点击完成: 在出现的对话框中设置属性,如图,点击下一步: 实用文档

: 点击下一步后出现如下,更改默认数据库,点击下一步 实用文档

在出现的对话框中点击测试连接后出现测试成功的对话框:实用文档

点击确定退出ODEC数据源管理器。编程,要求简单写出自己对这段ODBC(2)阅读并运行实验给出的例子程序,理解程序的理解或者流程图,并且请给出程序运行结果示例图。对程序的流程: 1.定义句柄和变量(句柄包括环境句柄,连接句柄,语句句柄) 2.初始化环境 (3).连接数据库 (1).分配环境句柄(2).设置管理环境属性建立连接3. 连接失败则返回错误值 (1)分配连接句柄(2) 4.初始化语句句柄 5.执行语句 6.处理结果集合中止处理7. (3).(3).(2). (1).释放语句句柄断开数据源释放连接句柄释放环境句柄 实用文档 结果显示: 技术,编写一个简单的程序,包含对数编程示例,使用ODBC参考给出的2.ODBC 50据库SPJ的连接,查询,插入,修改和删除。(分)插入数据:') 胜利insert into s values('S6','','47','北京 实用文档

检验数据库内: 删除数据: S1Delete from s where sno=‘' 实用文档

查询数据:pname from P Select pno, 实用文档 更新数据:

哈工大数字信号处理实验报告

实验一: 用FFT 作谱分析 实验目的: (1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。 (2) 熟悉FFT 算法原理和FFT 子程序的应用。 (3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。 实验原理: DFT 的运算量: 一次完整的DFT 运算总共需要2N 次复数乘法和(1)N N -复数加法运算,因而 直接计算DFT 时,乘法次数和加法次数都和2N 成正比,当N 很大时,运算量很客观的。例如,当N=8时,DFT 运算需64位复数乘法,当N=1024时,DFT 运算需1048576次复数乘法。而N 的取值可能会很大,因而寻找运算量的途径是很必要的。 FFT 算法原理: 大多数减少离散傅里叶变换运算次数的方法都是基于nk N W 的对称性和周期 性。 (1)对称性 ()*()k N n kn kn N N N W W W --==

(2)周期性 ()(mod`)()()kn N kn n N k n k N N N N N W W W W ++=== 由此可得 ()()/2 (/2)1 n N k N n k nk N N N N N k N k N N W W W W W W ---+?==?=-??=-? 这样: 1.利用第三个方程的这些特性,DFT 运算中有些项可以合并; 2.利用nk N W 的对称性和周期性,可以将长序列的DFT 分解为短序列的DFT 。 前面已经说过,DFT 的运算量是与2N 成正比的,所以N 越小对计算越有利, 因而小点数序列的DFT 比大点数序列的DFT 运算量要小。 快速傅里叶变换算法正是基于这样的基本思路而发展起来的,她的算法基本 上可分成两大类,即按时间抽取法和按频率抽取法。 我们最常用的是2M N =的情况,该情况下的变换成为基2快速傅里叶变换。 完成一次完整的FFT 计算总共需要 2log 2 N N 次复数乘法运算和2log N N 次复数加法运算。很明显,N 越大,FFT 的优点就越突出。 实验步骤 (1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。 (2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。 (3) 编制信号产生子程序, 产生以下典型信号供谱分析用:

相关文档
相关文档 最新文档