搜档网
当前位置:搜档网 › 数值计算方法实验程序(0).jsp

数值计算方法实验程序(0).jsp

数值计算方法实验程序(0).jsp
数值计算方法实验程序(0).jsp

第一部分 C 语言程序部分

一、误差与数值稳定性

例1数值方法计算积分dx

e x e

I x

n n

?

-=1

1

收敛和发散实例

法1I n =1-nI n-1

#include #include main() {int n,j; float i;

i=1-exp(-1);

printf("%2d %-20.8f",0,i); for(j=1;j<=20;j++) {i=1-j*i; printf("%2d %-20.8f",j,i); if((j+1)%3==0) printf("\n"); } printf("\n"); 法2)1(11

n n I n

I -=-

#include #include #define N 20 main() {int j; float I;

I=0;printf("%2d %-20.8f",20,I); for(j=19;j>=1;j--) {I=1.0/j*(1-I);

printf("%2d %-20.8f",j,I); if(j%3==0) printf("\n"); }

printf("\n"); }

二、大数吞掉小数的例子

#include"conio.h" main() {

double x=7e+33,y=0.001; clrscr();

printf("1===%d\n",x

三、二分法

例用二分法求方程

4

sin )(2

x

x x f -

=的非零实根的近似值,使误差不超过10-2

#include #include #include #define EPS 1e-2 #define DELTA 1e-6

float Bisection(float,float,float(*f)(float)); float f(float); main()

{float a=1.5,b=2; float x; clrscr();

x=Bisection(a,b,f);

printf("\nThe root of the equation is%f",x); getch(); }

float Bisection(float a,float b,float(*f)(float)) {float c,fc,fa=f(a),fb=f(b); int n=1;

printf("total bisection c\t\t f(c)\n");

printf("n a b c fa fb fc\n"); while(1) {if (fa*fb>0) exit(); c=(a+b)/2,fc=f(c); if(fabs(fc)

return c; }

float f(float x)

{return sin(x)-pow(x,2)/4; }

四、迭代法 1.简单迭代法

例:用迭代法求方程f(x)=x3-x-1=0的根,迭代公式为31+

x

=x

#include

#include

float diedai(float);

main()

{ int i;

float x0,x1,e;

scanf("%f %f",&e,&x0);

clrscr();

for (i=1;;i++)

{ x1=diedai(x0);

if(fabs(x1-x0)<=e) break;

{x0=x1;

printf("x[%d]=%f\n",i,x1);

}

}

printf("this equation's root is %lf\n" ,x1);

}

float diedai(float x)

{float z,y,v;

y=x+1.0; v=1/3.0;

z=pow(y,v);

return(z);

}

2.牛顿迭代法

例:用牛顿迭代法求方程x-cosx=0的实根,要求准确到|x k+1-x k|<10-5

#include

#include

#include

#define N 100

#define EPS 1e-6

#define ETA 1e-8

main()

{float f(float);

float f1(float);

float x0,y0;

float newton(float(*)(float),float(*)(float),float);

clrscr();

printf("please input x0\n");

scanf("%f",&x0);

printf("x(0)=%f\n",x0);

y0=newton(f,f1,x0);

printf("\nthe root of the equation is x=%f\n",y0); getch();

}

float newton(float (*f)(float),float(*f1)(float),float x0) {float x1,d;

int k=0;

do

{x1=x0-f(x0)/f1(x0);

if (k++>N||(fabs(f1(x1))

{printf("\nnewton method failed");

getch();

exit();

}

d=(fabs(x1)<1?x1-x0:(x1-x0)/x1);

x0=x1;

printf("x(%d)=%f\t",k,x0);

}

while(fabs(d)>EPS&&fabs(f(x1))>ETA);

return x1;

}

float f(float x)

{return x-cos(x);

}

float f1(float x)

{return 1+sin(x);

}

3.弦割法

例:用弦割法求方程f(x)=x3-x-1=0的根

#include

#include

#include

#define EPS 1e-6

main()

{float f(float);

float x0,x1,y0;

float xuan(float(*)(float),float,float);

clrscr();

printf("please input x0,x1:\n");

scanf("%f %f",&x0,&x1);

printf("x(0)=%f,x(1)=%f\n",x0,x1);

xuan(f,x0,x1);

printf("\nthe root of the equation is x=%f\n",x1);

getch();

}

float xuan(float (*f)(float),float x0,float x1) {float x2; int k=0; do {x2=x1-f(x1)/(f(x1)-f(x0))*(x1-x0); if(fabs(x1-x0)

while(1); return x1; }

float f(float x) {return x*x*x-x-1; }

五、列主元消去法

解方程组??

?

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

.3643.5072.1835.2137

.2623.4712.3347.1183.1555.3304.2101.0321321321x x x x x x x x x

#include"stdio.h"

#include"conio.h" #include"malloc.h" #include"math.h" main() { int i; float *x;

float c[3][4]={0.101,2.304,3.555,1.183,-1.347,3.712,4.623,2.137,-2.835,1.072,5.643,3.035}; float *colpivot(float *,int); x=colpivot(c[0],3); clrscr();

for(i=0;i<=2;i++)

printf("x[%d]=%f\n",i,x[i]); getch(); }

float *colpivot(float *c,int n) { int i,j,t,k; float *x,p;

x=(float *)malloc(n*sizeof(float)); for(i=0;i<=n-2;i++) {

k=i;

for(j=i+1;j<=n-1;j++) if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i)))) k=j; if(k!=i) for(j=i;j<=n;j++) { p=*(c+i*(n+1)+j); *(c+i*(n+1)+j)=*(c+k*(n+1)+j); *(c+k*(n+1)+j)=p; }

for(j=i+1;j<=n-1;j++) { p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i)); for(t=i;t<=n;t++) *(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t)); } }

for(i=n-1;i>=0;i--) {

for(j=n-1;j>=i+1;j--) (*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j)); x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i)); }

return x; }

第二部分EXCEL 实验部分

一、 积分dx

e x e

I

x

n n

?

-=1

1

收敛和发散实例

具体操作说明:

1) 第A 列,第一、二行文字是直接输入的 2) 在B3中输入=1-exp(-1)即为I0

3) 在B4中输入=1-A4*B3即为I1=1-1*I0

4) 选中B4当鼠标成黑十字星时向下拖拽即可计算出In

二、 多项式计算

1.直接法

例求多项式P n (x)=2+3x+5x 2+6x 3-3x 4-x 5+4x 6+8x 7在x=1.4、1.5的值f(1.4)、f(1.5) f(1.4)=130.00991,

具体算法说明:

1) 数据的输入:第一行中A1中的1.4及0,1,2,3,…7直接输入的分别表示x=1.4和i ,第三

行中的元素是多项式的系数也是直接输入的,在b2中输入“=1”,b4中输入“=B2*B3”,即

就是a 0*x0,在J4中输入“=sum(B4:I4)即就是∑=7

i i

i x a 。

2) 在C2中输入=$A$1*B2,选定C2将光标放在右下角,当鼠标变成黑十字星后,向右拖拽到I7,释放鼠标,Excel 将进行自动填充,这也叫关系复制,其实质是计算x i-1*x 。 3) 选定B4操作如2)其实质是计算a i *x i 。

4) 在A1中输入1.5回车即可实现f(1.5)=197.46875的计算。

2.秦九韶算法

同样以1的多项式P n (x)=2+3x+5x 2+6x 3-3x 4-x 5+4x 6+8x 7为例,求f(x)在x=1.4、1.5的值f(1.4)、f(1.5), 操作说明:

1) A 、B 、C 列中的数据是直接输入的 2) 在D2输入“=B2”,即就是u 0=a 7,在

D3中输入“=D2*$B$1+B3”,即就是u 1=u 0*x+a 6

3) 选定D3向下进行关系复制拖拽到D9

为止(这里实质是u i =u k-1*x+a n-k ,k=1,2, …7,即得u 7=130.00991,即有f(1.4)= u 7

三、二分法

例:例用二分法求方程4

sin )(2

x

x x f -

=的

非零实根的近似值,使误差不超过10-2

具体操作如下:

1. 第一行的各单元格中的符号是直接输入的,第一列的序号也是直接输入的代表二分次数

2.B2,C2中的1.5,2直接输入的,在D2中输入=(b2+c2)/2,在E2中输入=sin(b2)-b2^2/4,选中E2鼠标变成黑十字星后拖拽到F2,G2即得到相当于f(b1),f(x1)的值, 3.在H2中输入=if(abs(c2-b2)/2<0.01,”结束计算”&round(d2),”继续计算”) 4.在B3中输入=if(E2*G2<0,B2,D2),在C3中输入=if(F2*G2<0,C2,D2)

5.其余单元格可由关系复制得到,直到在H 列中出现了“结束计算实根为****“时,不再继续拖拽。

四、弦割法、迭代法

1.弦割法

例1 用弦割法求方程f(x)=x 3-x-1=0在区间[1,1.5]内的一个根.[3] 解:取初始值x 0=1,x 1=1.5,计算结果如图

具体操作步骤说明:

1) B2、B3中的1、1.5是直接输入的(这里实质是输入弦割法的两个初始根x0和x1)。

2) 在C2中输入“=POWER(B2,3)-B2-1”(这是计算f(x 0)的值)。

3) 选定C2进行关系复制(选定需要复制的单元格,让鼠标落在右下角成黑十字星后,拖拽鼠标

到复制的目标单元格C3)得到C3的值(即计算f(x 1)的值。

4) D3中输入“=IF(AND(ABS(B2-B3)/B3<0.000005,C3<0.0000005),"结束计算","请继续计算")”(这

里实质是应用Excel 的IF 函数和逻辑函数AND 进行误差控制,用了两个条件进行误差控制即当根x*满足|x*|>1时,

11

1ε<-++k k

k x x x ,同时用到

f(x k )< 2ε)。如果这两个条件均为真,则

会得到“结束计算”,不再进行其它操作;如果有一个为假则IF 函数的条件表达式的值为假,

会得到“请继续计算”,则进行下面第5)步的操作。

5) 在

B4

=B3-C3/(C3-C2)*(B3-B2)

”,

)()

()()(111--+---=k k k k k k k x x x f x f x f x x ,这里k=1,得x 2。对C3、D3应用关系复制得到C4、

D4,当D4中得到“请继续计算”时,继续对B4进行关系复制得到B5(即x 3),如此继续直到在D 列的某单元格中得到“结束计算”为止。

2.牛顿迭代法

例2 用牛顿迭代法求方程x-cosx=0的实根,要求准确到|x k+1-x k |<10-5 取x 0=1计算结果如图2

操作过程说明:

1) B2中输入1是初始根,在B3中输入

“=B2-(B2-COS(B2))/(1+SIN(B2))”,即牛

顿迭代公式k

k k k k x x x x x sin 1cos 1+--

=+,这

里k=0,在C3中输入“=IF(ABS(B2-B3)<0.00005,"结束计算","请继续计算")”,这里是当|xk|<1时,利用|x k+1-x k |<ε进行误差控制。

2) 选定B3进行关系复制得到B4,

3) 选定C3进行关系复制得到B5,当单元格中出现“请继续计算”时进行B 列下行的单元格的

复制,当出现“结束计算”时,即停止操作。 3.埃特金迭代法

例2 用埃特金迭代法求方程x 3-x-1=0的实根,要求准确到|x k+1-x k |<10-5的

从迭代公式x k+1=x k 3-1,k=0,1,2…是发散的,但用埃特金迭代法却收敛,计算得到结果如图

操作说明:

1) 在B2输入1.5 2) 在D2、E2中输入“=POWER(B2,3)-1”、“=POWER(D2,3)-1”,即y0=2-x0、z0=2-y0。 3) 在B3中输入“=B2-POWER(D2-B2,2)/(E2-2*D2+B2)”即()0

002

01

2x y z x y x x +---

=,

4) 在C3中输入“=IF(ABS((B3-B2)/B3)<=0.00001,"最后的结果是:"&ROUND(B3,5),"

请继续计算 ")” 这里实质是|x k |>1时的误差控制方法,当|x k+1-x k |<ε为真时,输出“最后结果是:xx.xxxxx ”,当|x k+1-x k |<ε为假时,输出“请继续计算”,即继续计算y 1、z 1及x 2。 5) 第四行、第五行、第六行均由第三行的对应的单元格关系复制得到,当在C7中出现了“最后

结果是:1.32472”,即停止计算。

六、三对角追赶法

例:用追赶法解?????

???????=?????????????????????

??

?------500021

121

121

124321x x x x

显然此三对角阵线性方程组满足有唯一解的条件,所以可以用追赶法求解该线性方程组。

求解过程及结果如图

具体操作步骤如下:

1)A、B、C、D、E中的数据是直接输入的(即输入方程组的系数矩阵和常数项),

这里要注意因为三对阵中的a1、c4没有,所以在相应的单元格中没有输入数据。

2)计算β过程:在F2中输入“=D2/C2”,即就是追赶法中的β1=c1/b1,在F3中输入

公式“=D3/(C3-B3*F2)”,即就是追法中的β2=c2/(b2-a

2

*β1),F4由F3进行关系复制得到(选定需要复制的单元格如F3,将鼠标放到F3的右下角,当鼠标成黑十字星时,按住左键拖拽鼠标到复制目标单元格F4,Excel将自动填充相当于

“=D4/(C4-B4*F3)”),这就是求β

3=c

3

/(b

3

-a

3

2

)。这正体现了追赶法中求βi的

追的过程。

3)求解y的过程:在G2中输入“=E2/C2”,即就是求y1=f1/b1,在G3中输入“=

(E3-B3*G2)/(C3-B3*F2)”,即就是计算y

2=(f

2

-a

2

*y

1

)/(c

2

-a

2

1

),G4、G5由G3

关系复制得到。

4)求x的过程:在H5中输入“=G5”,即就是求x4=y4,在H4中输入公式“=G4-F4*H5”,

即就是求x

3=y

3

3

*x

4

,H3、H2由H4关系复制(选定H4,鼠标放在H4右下角成黑

十字星后,按住鼠标左键向上拖拽到H3、H2得到),这正体现了追赶法中求x i的

赶的过程。

具体操作公式如图2所示:(说明:中只需要在F、G、H列各单元格中多加入一个“=”便是计算公式)

七、线性方程组的迭代法

例:用Gauss-Seidel

迭代法求解线性方程组????

?

?????=????????????????????------1015352

1

11021210321x x x

解:迭代公式?????++=++=++=++++++2

4.02.0

5.11.02.03

.01.02.0)1(2)1(1)1(3

)

(3)1(1)1(2

)

(3)

(1)

1(1k k k k k K k k k x x x x x x x x x X (0)

=(0,0,0) T

如果用IF 函数来进行迭代的精度控制如图5:

操作说明:

1) B2、B3、B4中的(0,0,0)是直接输入的初始解。 2) 在C2中输入“=0.2*B3+0.1*B4+0.3”;C3中输入“=0.2*C2+0.1*B4+1.5”;C4输入

“=0.2*C2+0.4*C3+2”,即计算第一次迭代根?????++=++=++=++2

4.02.0

5.11.02.03

.01.02.0)1(2)1(1)1(3

)

0(3)1(1)1(2

)

0(3)

0(1)

1(1x x x x x x x x x k K 。 3) 在C5中输入“=POWER(ABS(C2-B2),2)”即计算|x 1(k+1)-x 1(k)|2,选定C5将鼠标放到该单元格

向下拖拽得到C6、C7的值(也可以称为关系复制)。

4) C8中输入“=POWER (SUM (C5:C7),0.5)”,这就是求2范数||X

(k+1)

-X (k)

||2=

=+-3

1

2

)

()

1(i k i

k i

x x

5) 在C9中输入“=IF(C8<0.000001,"计算结束","继续计算")”这里实质是利用解向量的2范数进

行精度控制,当||X (k+1)-X (k)||2<0.000001为真时,输出“计算结束”,当为假时,输出“继续计算”

6) 选定C2、C3、C4、C5、C6、C7、C8向右拖拽(关系复制)得到D 列相应单元格的值。 7) 拖拽C9得到D9 8) 重复6)、7)直到在第九行的某单元格得到“计算结束”为止。

八、差商计算

操作说明:1)第一行xk,f(xk),一阶差商、二阶差商,三阶差商直接的,第一列、第二列也是直

接输入的。

2)在C3中输入”=(B4-B2)/(A4-A2)”得一阶差商f[x0,x1],选定C3单元格,单击鼠标右键,选择复制,将鼠标放到C5单元格中,单击鼠标右键选择“选择性粘贴”,选中公式,单击确定即得f[x1,x2],以下一阶差商如法刨制。

3)在D4单元格中输入”=(c5-c3)/(a6-a2)”,得二阶差商f[x0,x1,x2],下面的二阶差商仿照一阶差商的方法得,

4)同理可得三阶差商

九、中心差的数值微分计算

操作说明:1)A1、B1、D1、E1中的h,G(h)进直接输入,C1、F1的数据为通过输入”=1/(2*sqrt(2)”即计算f(x)在x=2

2)A2、A3、…A10,D2、D3、…D10中的数据也是直接输入的

3)B2中输入”=(sqrt(2+a2)-sqrt(2-a2))/(2*a2)”回车得到数值微分值()2G h h

=

,在C2

中输入”=ABS(B2-$C$1”

与数值微分值之间的偏差。

4)选定B2、C2向下作关系复制得到不同h 下的数值微分值及其与准确微分微分值之偏差。

5)E2中输入”=(sqrt(2+D2)-sqrt(2-D2))/(2*D2)”回车得到数值微分值()2G h h

=

,在

F2中输入”=ABS(E2-$C$1” 1

与数值微分值之间的偏差

6)选定E2、F2向下作关系复制得到不同h 下的数值微分值。

十、欧拉方法与改进的欧拉方法数值实验

操作说明:

1)第一行的xi ,yi ,y(xi)、 |yi-y(xi)|是直接输入的

2)A2、A3中输入0和0.1选定A2、A3 作关系复制得到步长为0.1的各数据点xi 3)在B2中输入1,在C2中输入”= A2+EXP(-A2)”即计算解函数y(x)=x+e -x 的准确值 4)在B3中输入”= 0.095*A2+0.905*B2+0.1”,即就是输入改进的欧拉公式

10.0950.9050.1i i i y x y +=++

5)在D2中输入”= ABS(C2-B2)”,计算准确值与数值解之间的偏差 6)选定B3、C2、D2作关系复制即得表中各数据

第三部分 MATLAB 实验部分

一、LU 分解法及列主元消去法解线性方程组

1.LU 分解法

function X=lu_decomposs(A,B)

%基于矩阵的LU 分解求解线性方程组AX=B %A 表示系数矩阵 %B 表示常数项 n=length(B);

L=eye(n);U=zeros(n,n); X=zeros(n,1);Y=zeros(n,1);

%对矩阵进行lu分解

for i=1:n

U(1,i)=A(1,i)

if i==1

L(i,1)=1;

else

L(i,1)=A(i,1)/U(1,1);

end

end

for i=2:n

for j=i:n

sum=0;

for k=1:i-1

sum=sum+L(i,k)*U(k,j);

end

U(i,j)=A(i,j)-sum;

if j~=n

sum=0;

for k=1:i-1

sum=sum+L(j+1,k)*U(k,i);

end

L(j+1,i)=(A(j+1,i)-sum)/U(i,i);

end

end

end

%解方程L Y=B

Y(1)=B(1);

for k=2:n

sum=0;

for j=1:k-1

sum=sum+L(k,j)*Y(j);

end

Y(k)=B(k)-sum;

end

%解方程ux=y

X(n)=Y(n)/U(n,n);

for k=n-1:-1:1

sum=0;

for j=k+1:n

sum=sum+U(k,j)*X(j);

end

X(k)=(Y(k)-sum)/U(k,k);

end

2.高斯列主元消去法

function X=Gauss_pivot(A,B)

% 用Gauss列主主元消去法解线性方程组AX=B

%X是未知向量

n=length(B);

X=zeros(n,1);

c=zeros(1,n);

d1=0

for i=1:n-1

max=abs(A(i,i));

m=i;

for j=i+1:n

if max

max=abs(A(j,i));

m=j;

end

end

if(m~=i)

for k=i:n

c(k)=A(i,k);

A(i,k)=A(m,k);

A(m,k)=c(k);

end

d1=B(i);

B(i)=B(m);

B(m)=d1;

end

for k=i+1:n

for j=i+1:n

A(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);

end

B(k)=B(k)-B(i)*A(k,i)/A(i,i);

A(k,i)=0;

end

end

%回代求解

X(n)=B(n)/A(n,n);

for i=n-1:-1:1

sum=0;

for j=i+1:n

sum=sum+A(i,j)*X(j);

end

X(i)=(B(i)-sum)/A(i,i);

End

例分别用高斯消去法和列主元消去法求解方程组其中

?

????

?

???

???=????

?

?

?????

??

?

--?=-2178

.4617.59,12152

912.112113

.6291

.51314.59103.015B A

A=[0.3*10^(-15) 59.14 3 1;5.291 -6.13 -1 2;11.2 9 5 2;1 2 1 1]; B=[59.17 46.78 1 2 ]' ;

X=Gauss_pivot(A,B) B-A*X

X=lu_decomposs(A,B) B-A*X

二、追赶法

function x=threedia(a,b,c,f)

%求解线性方程组AX=f,其中A 是三对角阵 %a 是矩阵A 的下对角线元素a(1)=0 %b 是矩阵A 的主对线元素

%c 是矩阵A 的上对角线元素a(N)=0 %f 是方程组的右端向量 N=length(f); x=zeros(1,N); y=zeros(1,N);

d=zeros(1,N);u=zeros(1,N); format rat %预处理 d(1)=b(1); for i=1:N-1

u(i)=c(i)/d(i);

d(i+1)=b(i+1)-a(i+1)*u(i); end

%追的过程 y(1)=f(1)/d(1); for i=2:N

y(i)=(f(i)-a(i)*y(i-1))/d(i); end

%赶的过程 x(N)=y(N); for i=N-1:-1:1

x(i)=y(i)-u(i)*x(i+1); end

用追赶法求解方程组?

?

?

??

?

?

???????-

=

?

?

????????????????

?????

???0002121

21221002122

100124321x x x x

a=[0 0.5 0.5 1];

b=[2 2 2 2]; c=[1 0.5 0.5 0]; f=[-0.5 0 0 0] threedia(a,b,c,f)

三、线性方程组的迭代法

1.Jacobi 迭代法

function [x,k]=Jacobimethod(A,b,N,x0,emg) %A 是线性方程组的系数矩阵 %B 是线性方程组的右端向量 %x0是迭代初始值

%N 是表示迭代次数上限若迭代次数,则迭代失败 %emg 表示控制精度 %k 表示迭代次数

%x 表示线性方程组的近似解 n=length(b); x1=zeros(n,1); x2=zeros(n,1); x1=x0; k=0;

r=max(abs(b-A*x1)); while r>emg for i=1:n sum=0; for j=1:n if i~=j

sum=sum+A(i,j)*x1(j); end end

x2(i)=(b(i)-sum)/A(i,i); end

r=max(abs(x2-x1)); x1=x2; k=k+1; if k>N

disp('迭代失败,返回'); return; end end x=x1;

例8:用迭代法解线性方程组

??

?=+=+5

2532121x x x x

A=[3 1;1 2]

b=[5 5]'

N=10

x0=[0 0]'

emg=0.001

Jacobimethod(A,b,N,x0,emg) 2.Gauss_Seidel迭代法

function [x,k]=Gaussmethod(A,b,N,x0,emg)

%A是线性方程组的系数矩阵

%B是线性方程组的右端向量

%x0是迭代初始值

%N是表示迭代次数上限若迭代次数,则迭代失败%emg表示控制精度

%k表示迭代次数

%x表示线性方程组的近似解

n=length(b);

x1=zeros(n,1);

x2=zeros(n,1);

x1=x0;

k=0;

r=max(abs(b-A*x1));

while r>emg

for i=1:n

sum=0;

for j=1:n

if j>i

sum=sum+A(i,j)*x1(j);

elseif j

sum=sum+A(i,j)*x2(j);

end

end

x2(i)=(b(i)-sum)/A(i,i);

end

r=max(abs(x2-x1));

x1=x2;

k=k+1;

if k>N

disp('迭代失败,返回');

return;

end

end

x=x1;

3.超松驰迭代法

例11用SOR

法解线性方程组????

?

?????-=???????????????

?????----7310910

4

10

172424321x x x

function [x,k]=SORmethod(A,b,N,x0,emg,w)

%A 是线性方程组的系数矩阵 %B 是线性方程组的右端向量 %x0是迭代初始值

%N 是表示迭代次数上限若迭代次数,则迭代失败 %emg 表示控制精度 %k 表示迭代次数

%x 表示线性方程组的近似解 n=length(b); x1=zeros(n,1); x2=zeros(n,1); x1=x0; k=0;

r=max(abs(b-A*x1)); while r>emg for i=1:n sum=0; for j=1:n if j>i

sum=sum+A(i,j)*x1(j); elseif j

sum=sum+A(i,j)*x2(j); end end

x2(i)=(1-w)*x1(i)+w*(b(i)-sum)/A(i,i); end

r=max(abs(x2-x1)); x1=x2; k=k+1; if k>N

disp('迭代失败,返回'); return; end end x=x1;

A=[4 -2 -4;-2 17 10;-4 10 9]

b=[10 3 -7]' N=25

x0=[0 0 0]' w=1.46

SORmethod(A,b,N,x0,emg,w)

jsp课程设计—学生管理系统

Jsp课程设计 题目:学生管理系统 学号:1041011109 姓名:何琴 指导老师:姜俊坡

目录 一.概述 (3) 二.系统的结构分析与设计 (3) 2.1 整体设计 (3) 2.2 模块设计 (4) 三.系统的实现 (5) 3.1 登录界面 (5) 3.2 学生信息界面 (6) 3.3 学生信息查询,编辑,新增界面 (7) 3.4 连接数据库 (11) 四.总结................................................................................................. .16

一概述 一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为课程设计的课题。 本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可 二系统的结构分析与设计 2.1 整体结构设计 基于系统的使用对象是管理员,系统根据功能需要分为三个模块,即学生基本信息管理、新增学生信息管理和查询学生信息管理。采用B/S模式,jsp+SQL JavaBean 的技术形式实现。 2.1.1 用户角色设计及权限分配 管理员:拥有管理系统所有功能的权限,同时负责系统的用户的增删,服务功能的起停,数据的备份、还原等维护操作; 2.1.2 系统模块设计 学生信息管理系统包括三个基本模块:学生基本信息管理、新增学生信息管理和查询学生信息管理。三个模块管理功能不一,同时相互之间又有联系。 图1 2.1.3 系统运行模式设计 系统采用B/S(Browser/Server)模式,使管理更加方便和简单,B/S结构中各个客户

数值计算实验课题目

数值实验课试题 本次数值实验课结课作业,请按题目要求内容写一篇文章。按题目要求 人数自由组合,每组所选题目不得相同(有特别注明的题目除外)。试题如下: 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 语言将最速下降法编写成通用的子程序,然后用你编写的程序求解对称

JSP个人图书管理系统

课程设计说明书 设计题目:个人图书管理系统 专业:网络工程班级:2010级2班 设计人:王露1001050527 山东科技大学 2013年05月07日

一、需求分析 随着科技的发展,我们的生活越来越倾向于各种各样的无纸化,无纸化办公,无纸化阅读等等,本次的课程设计就是要做一个个人图书管理系统,具备登录功能,用户在输入正确的用户名和密码之后,可以进入个人主页,个人主页功能包括图书的录入、查询、浏览、删除功能,此外,我还添加了一个阅读笔记的功能,用户可以查看以前的阅读笔记,也可以写阅读笔记。 本次课程设计采用的语言是Java,编译环境选择的是Myeclipse,Web服务则是Tomcat6.0,项目框架是Struts2,浏览器选择的是IE。 二、详细设计 2.1 系统流程图 流程图功能介绍: 本次课程设计个人图书管理系统分为五大功能,分别是查询、添加、浏览、删除和阅读笔记功能,如下图2.1所示,首先是登录界面,用户根据提示输入自己的用户名和密码,提交后台LoginAction处理,和数据库中的用户信息表进行验证,验证失败则提示用户名或密码不正确,仍然停留在该登录页面,验证成功则进入个人主页,个人主页上方是欢迎语,左侧会出现上述提到的五大功能,用户可以任选一个并进入相应的页面,五个功能后边我们会一一介绍。

图2.1 系统流程图

2.2 界面规划设计 以下截取了程序设计的主要框架,具体的功能界面会在后边介绍: 图2.2 Action类及项目的基本框架图2.3 Jsp页面及导入的包 2.3 数据库设计 数据库中主要有三个表,分别是Book、Info和Note。Info表中存着用户的用户名和密码,用于登录时对用户信息进行验证;Book 表中存着个人图书管理系统中的书名和图书的相对路径,文件上传时也需要对数据库更新,只需要存储文件的相对路径,极大地节省了数

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

学生信息管理系统JSP版(Eclipse)

学生信息管理系统JSP版(Eclipse)1、新建new->Dynamic Web Project->名字为StudentJSP。 2、准备工作 1)编写JSP测试文件,名称为hello.jsp 修改hello.jsp的charset为UTF-8 加入代码:Hello!

代码: <%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding=" UTF-8"%> Insert title here Hello! 附:修改默认字符集步骤: Windows->Preference->Web->JSPfiles->将Encoding改为UTF-8

2)右击项目->Properties->Resurce->修改字符集为UTF-8.

3)右击项目->Properties->Java Build Path改为如图(需先在WEB-INF下新建classes)

4)将MySQL中一个jar包复制到/WEB-INF/lib下,如图: 3、在/WebContent下new一个JSPfile,名字为display0.jsp 代码如下: <%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.sql.*"%> //(注意要引入sql的包) Insert title here <% String connStr = "jdbc:mysql://localhost:3306/yStudent?characterEncoding=utf8"; Connection conn = null; Statement stmt = null; ResultSet rs; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(connStr, "root", "123456"); stmt = conn.createStatement(); } catch (Exception ex) { ex.printStackTrace(); System.out.println("exception in getConnection"); }

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

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(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使得拟合模型与实际观测值在

JSP课程设计个人信息管理系统

1.1业务流程分析 用户需要使用账号与密码通过登陆页面登陆个人信息管理系统,新用户可注册新账号登陆。登陆后进入系统主窗体,可对个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理进行操作。退出系统时返回登陆页面。 1.2系统功能分析 个人信息管理系统主要由:个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理等模块组成。进入该系统后,用户可以对系统中的信息进行添加、修改、删除和查询等操作。包括以下功能: 1)通讯录信息:包括通讯人姓名、联系方式、工作地 点、城市、备注等。 2)备忘录信息:包括什么时间、事件、地点等。

3)日记信息:包括什么时间、地点、事件等。 4)个人财物管理:包括总收入,消费项目、消费金额、消费时间、余额。 每个用户可以自己注册一个用户名,对自己的个人信息进行独立的管理。 1、系统总体设计 2.1个人信息管理系统业务流程图如图2.1所示

2.2个人信息管理系统功能结构图如图2.2所示 2.1系统业务流程图

2 、 在需求分析阶段已经完成系统的所有数据分析。根据该阶段建立的概念模型,已经得出满足第三范式的几个关系描述,此阶段主要的工作就是把前一阶段的成果转化为具体的数据库。 3.1系统的基本E-R图

根据之前的分析规划出的个人信息管理系统实体有:个人信息实体、备忘录实体、通讯录实体、日记实体、财务管理实体。 个人信息实体图如图3.1所示 3.1个人信息实体 备忘录实体图如图3.2所示 3.2备忘录实体

同通讯录实体如图3.3所示 3.3通讯录实体 日记实体如图3.4所示 3.4日记实体 财务管理实体如图3.5所示

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

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

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

基于JSP的学生成绩管理系统论文

成绩管理系统的设计与实现 院系北方软件学院 专业计算机科学与技术(软件工程)班级92330103 学号2009023301063 姓名张雪 指导教师王作彤 负责教师王作彤 沈阳航空航天大学 2011年6月

摘要 随着信息技术的发展、电脑化教学与远程的网络化教学的普及,使得基于WEB 技术的教学管理平台成为现代教育技术改革与发展的方向。但是由于大多数学校的成绩管理都还停留在比较原始的手工阶段,成绩修改信息主要依靠办公软件等。上述现象致使学生成绩信息更新不及时,教师容易弄不清楚成绩是否正确等问题。因此构建一个高效完善学生成绩管理系统,保证师生间具有实效性,同时能快速、方便地发布和检索各种学习内容,成为高校信息化建设的一项重要任务。 该论文首先分析了当前高校教学管理平台的应用现状和不足之处,明确了基于web的教学管理平台的主要功能和核心流程。在此基础上应用MVC模型,通过对系统进行一系列需求分析、设计、编码、测试等工作使系统实现了教学管理、成绩管理、用户信息管理等功能,其中重点分析核心子系统(教师和学生的成绩管理子系统)。

Abstract Along with the development of information technology, computerized teaching and remote network teaching based on WEB, makes the popularity of technical teaching management platform to be modern education technology reform and development direction. But since most school score management are still stay in relatively primitive manual stage, rely mainly on score information office software The above phenomenon causes students to submit score not timely, teachers easy not clear whether problems such as correcting socre. So building an efficient operation management system to ensure the perfect between teachers and students, and at the same time with effectiveness quickly and easily release and retrieval various learning contents, become the university informatization construction of an important task. Firstly analyzes the current college teaching management platform application status and deficiencies, made clear the teaching management platform based on web the main function and core processes. On this basis, through application MVC model of system and a series of requirement analysis, design, code, test etc make the system realized the teaching management, score management, customer information management, and other functions, which focuses on analyzing the core subsystem (teachers' and students' score management subsystem).

电影院管理系统JSP网页制作

武汉理工大学华夏学院课程报告 课程名称:网页设计与制作Ⅱ 题目:电影院管理系统的JSP网页设计 专业 班级 学号 姓名 成绩 _ 指导教师 2012年9月3日至2012年11月30日

1 设计目的 减少影院售票人员大量繁琐的工作,方便人们提前购票。网站用户通过使用本系统,可以随时根据需要,查询上映电影信息,对电影票预订网站中的个人信息进行修改,并可以根据个人喜好提前预定电影票,避免了现场排队购票之苦,同时也减少影院在售票方面的人力和物力的投资。作为一个在线订票网站,除了要功能强大、操作简单、符合上述需求分析,还应实现其他目标,以适用于各类城市影院,具体要求如下: (1)界面在设计上要美观、友好,操作要快捷、准确; (2)数据存储要安全可靠; (3)注册用户可以随时修改个人信息; (4)对于用户输入的数据,系统要有严格的检错机制,尽可能排除人为错误; (5)系统要最大限度的实现易维护性,运行要稳定、可靠、安全。 2 开发环境 (1)操作系统:windows 2000/windows 2003/windowsXP/windows vista (2)开发工具: JSP+Java (3)数据库:Microsoft Access (4)服务器:Tomcat 6.0 (5)浏览器:IE 6.0以上

3 需求分析 首先对现有系统进行分析,现有系统是信息的重要来源。分析已有系统的功能和实现,从而确定新系统的设计目标和模型。由于条件有限,调研主要是在网上进行,即通过在网上查看已有的电影票预订网站,注册成为其会员来了解该网站具备的功能。 3.1 用户需求 “用户是上帝”,设计网站前应详细了解用户需求,这样才能避免日后因不满足用户需求而造成大量修改。电影票预订网站前台应考虑以下几个方面的要求: 用户通过在线注册成为网站的用户,可以获得以下功能:电影浏览,购买电影票,查看订单,修改订单,修改个人信息,评价电影等。 (1)用户注册:只有注册为本网站的会员后才有权限浏览网页。 (2)用户登录:分为普通用户和管理员。身份验证后,普通用户进入网站前台进行信息浏览,管理员进入网站后台进行信息管理。 (3)电影浏览:用户可以一览近期影院上映电影的信息。 (4)电影票预订:在查看电影信息后,用户可硬根据个人需求预定电影票,选择方位和购买数量。 (5)修改订单:用户可以查看自己的购物车,确认订单信息,发现有误时,可以删除订单。 (6)修改个人信息:用户可以在观看电影之后对其做出评价,以供其他网友参考电影是否具有观看价值。 3.2 功能性需求 功能性需求分析是指对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析是软件设计、实现测试直至维护的主要基础,良好的需求分析

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

基于JSP的学生成绩管理系统的开发

学生成绩管理系统 1.背景 (1)项目名称。 学生成绩管理系统 2.目提出者 广州康大职业技术学院 (3)项目承接者。 15 软件2 班 (4)用户。 15 软件2 班 内容摘要: 学生成绩管理系统采用java,jsp,servlet和Mysql数据库等工具,在工作MyEclipse上开发而成。 学生成绩管理系统主要用于各类高校对教师的管理,同时初始化教师的登录信息;以及教师对学生,课程,学生成绩信息的管理,同时初始化了学生的登录信息。学生可以查询课程信息和自己的成绩信息。 本系统能提高了教务的管理效率,大大地减轻了教师的负担,使学生能随时随地查询课程信息和自己的成绩。 关键字:Java Web ,学生成绩管理系统,信息管理系统 1.选题的目的和意义 1.1 项目开发的背景 几年前,各个学校对于学生成绩的管理还是停留在运用手工操作,随着各个学校的规模不断壮大,学生人数逐年增加。关于学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。但人工管理又有着许多缺陷,比如:效率底、易出错、检索信息慢、对学校的管理提供决策信息较为困难等。所以我想借本次毕业设计之际,开发一个适用于高校的学生成绩管理系统,方便学校对各类信息的管理,减轻学校的负担。

1.2 项目概述 本管理系统主要内容是学生信息管理,课程信息管理,学生成绩管理和教师信息管理,管理员添加教师记录,初始化教师的登录信息,教师添加学生记录,初始化学生登录信息等等。全文共分为概述、系统分析、系统总体设计、详细设计、开发总结、参考文献、附录等。 1.3 设计目的与意义 本系统是将现代化的计算机技术和传统的教学、教务工作相结合设计完成的系统,实现了工作过程的计算机化,提高工作效率和工作质量,该系统的完成将具有以下几点重要的意义: (1)系统具有较强的实用性、可靠性和适用性 (2)对各个数据的输入进行了检测,大大减少了异常的发生。(3)能够按照用户输入的关键字进行查询 (4) 注意到了数据的安全性。 (5)简化了用户的操作过程,尽量减少用户的工作量 2 系统的开发技术及主要架构 2.1 开发技术的选择 由于JAVA面向对象,安全性高,跨平台,易移植,易掌握等特点,尤其是在安全性和跨平台性两个方面非常显著。因此,最后我选择采用Java技术开发这个系统。 2.2 项目开发的工具 这个web系统的服务器采用开源的Tomcat6.0,数据库采用开源的MySQL。在MyEclipse 工作平台上使用Java、JavaScript与JSP技

jsp课程设计学生管理系统

课程设计报告课程:jsp 学号: 姓名: 班级: 教师: 徐州师范大学 计算机科学与技术学院

课程设计任务书 学生选课管理系统一.系统需求分析

学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟 的优点。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理, 与世界接轨的重要条件。 因此,开发这样一套软件成为很有必要的事情,在下面的各章中我们将以开发一套学生选课系统为例,谈谈其开发过程和所涉及到的问题及解决方法。 本实验实现的学生选课管理系统主要包括以下功能: 1.完成数据的录入和修改,并提交数据库保存。其中的数据包括:学生信息、课程设置、学生成绩以及操作员信息等; 2.设计实现学生信息查询,选课管理、退选管理、分数查询,课程的浏览教师信息查询、教室空闲时间查询等JSP页面。 3.具备一定的安全性管理功能。包括操作员的权限设置、修改密码设置、注销和等功能。 二.系统总概括 1.系统的总设计 本系统结合数据库和JSP编程实现了学生选课管理系统。学生选课管理系统分为三个子模块:第一模块是学生选课的页面操作,包括个人信息,密码修改,查询成绩,选课,退选五个功能;第二模块是教师操作页面,包含个人信息,密码修改,录入成绩,查询选课情况,查看教室信息;第三模块是管理员,包含学生信息管理(增加、修改、删除、查询),教师信息管理(增加、修改、删除、查询),管理员信息管理(增加、修改、删除、查询)。 图1系统的功能模块图 2.数据库设计 数据库概念结构设计 本系统主要有三个实体,其中有学生和课程两个实体集,一个学生可以选修若干门课程,一门课程也可以被多个学生选修,这两个实体集之间是多对多联系,还有教师和课程两个实体,一个老师可以教授若干门课程,一门课程却只能有一个老师教授,这两个实体集之间是一对多联系。通过选课成绩将老师和学生联系在一起。为保证系统的安全性,设置了操作员 这一实体集,用来存放合法用户的编号、姓名、密码。本系统的E-R图如下:

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

jsp学生管理系统课程设计报告

目录 一.概述 (3) 二.系统的结构分析与设计 (3) 2.1 整体设计 (3) 2.2 模块设计 (4) 三.系统的实现 (5) 3.1 登录界面 (5) 3.2 学生信息界面 (6) 3.3 学生信息查询,编辑,新增界面 (7) 3.4 连接数据库 (11) 四.总结.................................................................................................... .16

一概述 一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。 本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可 二系统的结构分析与设计 2.1 整体结构设计 基于系统的使用对象是管理员,系统根据功能需要分为三个模块,即学生基本信息管理、新增学生信息管理和查询学生信息管理。采用B/S模式,jsp+SQL 2008+JavaBean的技术形式实现。 2.1.1 用户角色设计及权限分配 管理员:拥有管理系统所有功能的权限,同时负责系统的用户的增删,服务功能的起停,数据的备份、还原等维护操作;

数值计算方法实验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

jsp实现通讯录系统

个人通信录管理系统 计算机学院2008级2班张俊发学号:20082101032 1 需求分析 由于纸制或电子形式的通讯录,携带不方便,或容易忘记等方面的缺点,所以要开发一个网络通讯录,方便用户提供使用: 1.用户注册、登录功能 2.登录后,显示出与当前用户相关的联系人名单 3.添加新联系人 4.删除联系人 5.根据联系人类型查找联系人信息 根据以上要求,开发一个网络通讯录。 2 数据库实现过程 创建在线通讯录数据库、表,数据库名为:addressBook。数据表为:USERS、BOOK.实现代码如下: User表: Book表: SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `book` -- ---------------------------- DROP TABLE IF EXISTS `book`; CREATE TABLE `book` ( `bookID` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `sex` char(2) CHARACTER SET utf8 DEFAULT NULL,

`phone` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `homeAddr` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `mobilePhone` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `email` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `company` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `comAddr` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `relation` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `userID` int(11) NOT NULL, PRIMARY KEY (`bookID`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `userID` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) CHARACTER SET utf8 DEFAULT NULL, `password` varchar(50) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`userID`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; 3在线通讯录的实体类设计 用户类:UserBean.java 通讯录类:BookBean.java 4在线通讯录的功能 ● 用户登录验证 ● 添加新联系人 ● 删除联系人信息 ● 查找所有联系人 ● 按照类别查找联系人 实体类 数据库表 UserBean.jav a BookBean.java User book 对应关 属性对应字段

相关主题