实验代码
MATLAB实验代码与运行结果

MATLAB实验代码及运行结果第一部分MATLAB语言编程、科学绘图与基本数学问题求解第二题>> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1]A =1 2 3 44 3 2 12 3 4 13 24 1>>B=[1+4j,2+3j,3+2j,4+1j;4+1j,3+2j,2+3j,1+4j;2+3j,3+2j,4+1j,1+4j;3+2j,2+3j,4+1j,1+4j]B =1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i 1.0000 + 4.0000i3.0000 + 2.0000i 2.0000 + 3.0000i4.0000 + 1.0000i 1.0000 + 4.0000i >> A(5,6)=5A =1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 24 1 0 00 0 0 0 0 5第三题>> A=magic(8);A =64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62 63 1 B=A(2:2:end,:)B =9 55 54 12 13 51 50 1640 26 27 37 36 30 31 3341 23 22 44 45 19 18 488 58 59 5 4 62 63 1 第四题>> format long;sum(2.^[0:63])ans =1.844674407370955e+19>> sum(sym(2).^[0:63])ans =18446744073709551615第五题(1)>> x=[-1:0.001:1];y=sin(1./x);plot(x,y)(2)>>t=[-pi:0.005:pi];y=sin(tan(t))-tan(sin(t));plot(t,y)第六题[x,y]=meshgrid(-2:0.1:2);z=1./(sqrt((1-x).^2+y.^2))+1./(sqrt((1+x).^2+y.^2));subplot(2 24),surf(x,y,z),shadingflat;subplot(221),surf(x,y,z),view(0,90);subplot(222),surf(x,y,z),view(90,0);subplot(22 3),surf(x,y,z),view(0,0)>>Warning: Divide by zero.Warning: Divide by zero.xx=[-2:0.1:-1.2,-1.1:0.02:-0.9,-0.8:0.1:0.8,0.9:0.02:1.1,1.2:0.1:2];yy=[-1:0.1:-0.2,-0.1:0 .02:0.1,0.2:0.1:1];[x,y]=meshgrid(xx,yy);z=1./((sqrt(1-x).^2+y.^2))+1./(sqrt((1+x).^2+y. ^2));subplot(224),surf(x,y,z),shadingflat;zlim([0,15]);subplot(221),surf(x,y,z),view(0,90);subplot(222),surf(x,y,z),view(90,0) ;subplot(223),surf(x,y,z),view(0,0)第七题(1)>> syms x;f=(3^x+9^x)^(1/x);limit(f,x,inf)ans =9(2)>> syms x y;f=x*y/(sqrt(x*y+1)-1);limit(limit(f,y,0),x,0)ans =2(3)>> syms x y;f=(1-cos(x^2+y^2))/((x^2+y^2)*exp(x^2+y^2));limit(limit(f,y,0),x,0) ans =第八题第一步新建脚本function result=paradiff(y,x,t,n)if mod(n,1)~=0,error('n should positive innteger,please correct')else if n==1,result=diff(y,t)/diff(x,t);else result=diff(y,x,t,n-1)/diff(x,t);end,end(1)syms t;x=log(cos(t));y=cos(t)-t*sin(t);f=simplify(paradiff(y,x,t,1))f =(cos(t)*(2*sin(t) + t*cos(t)))/sin(t)(2)syms t;f=(cos(t)*(2*sin(t) + t*cos(t)))/sin(t);f1=diff(f)f1 =(cos(t)*(3*cos(t) - t*sin(t)))/sin(t) - t*cos(t) - (cos(t)^2*(2*sin(t) + t*cos(t)))/sin(t)^2 - 2*sin(t)t=pi/3;f1 =(cos(t)*(3*cos(t) - t*sin(t)))/sin(t) - t*cos(t) - (cos(t)^2*(2*sin(t) + t*cos(t)))/sin(t)^2 - 2*sin(t)f1 =-2.6651第九题>> syms x y t;f=int(exp(-t^2),t,0,x*y);F=(x/y)*(diff(f,x,2))-2*(diff(diff(f,x,1),y,1))+diff(f,y,2)F =2*x^2*y^2*exp(-x^2*y^2) - 2*x^3*y*exp(-x^2*y^2) - 2*exp(-x^2*y^2)第十题(1)>> syms n m;limit(symsum(1/((2*m)^2-1),m,1,n),n,inf)1/2(2)>> syms m n;limit(symsum(n*(1/(n^2+m*pi)),m,1,n),n,inf)ans =1第十一题(1)>> syms t;syms a positive;x=a*(cos(t)+t*sin(t));y=a*(sin(t)-t*cos(t));I=int((x^2+y^2)*sqrt(diff(y,t)^2+diff (x,t)^2),t,0,2*pi)I =2*pi^2*a^3*(2*pi^2 + 1)(2)>> syms t x y;syms a c b positive;x=c*cos(t)/a;y=c*sin(t)/b;F=[y*x^3+exp(y),x*y^3+x*exp(y)-2*y];ds=[diff(x,t); diff(y,t)]; I=int(F*ds,t,pi,0)I =(2*c*(15*b^4 - 2*c^4))/(15*a*b^4)第十二题>> syms a b c d e;A=[a^4,a^3,a^2,a,1;b^4,b^3,b^2,b,1;c^4,c^3,c^2,c,1;d^4,d^3,d^2,d,1;e^4,e^3,e^2,e,1];simplify (det(A))ans =(a - b)*(a - c)*(a - d)*(b - c)*(a - e)*(b - d)*(b - e)*(c - d)*(c - e)*(d - e)第十三题>> A=[2 0.5 -0.5 0.5;0 -1.5 0.5 -0.5;2,0.5 -4.5 0.5;2 1 -2 -2];[V,J]=jordan(sym(A))V =[ 0, 1/8, 1/2, 3/8][ 0, 0, -2, -3][ -1/6, 1/24, -1/2, 1/8][ -1/6, 1/24, -5/2, 9/8]J =[ -4, 0, 0, 0][ 0, 2, 0, 0][ 0, 0, -2, 1][ 0, 0, 0, -2]第十四题编写函数代码function X=lyapsym(A,B,C)if nargin==2,C=B;B=A';end[nr,nc]=size(C);A0=kron(A,eye(nc))+kron(eye(nr),B');tryC1=C';x0=-inv(A0)*C1(:);X=reshape(x0,nc,nr)';catch,error('singular matrix found.'),end>> A=[3 -6 -4 0 5;1 4 2 -2 4;-6 3 -6 7 3;-13 10 0 -11 0;0 4 0 3 4];B=[3 -2 1;-2 -9 2;-2 -1 9];C=-[-2 1 -1;4 1 2;5 -6 1;6 -4 -4;-6 6 -3];X=lyap(A,B,C),norm(A*X+X*B+C);X=lyapsym(sym(A),B,C),norm(A*X+X*B+C)X =4.0569 14.5128 -1.5653-0.0356 -25.0743 2.7408-9.4886 -25.9323 4.4177-2.6969 -21.6450 2.8851-7.7229 -31.9100 3.7634X =[ 434641749950/107136516451, 4664546747350/321409549353, -503105815912/321409549353][ -3809507498/107136516451, -8059112319373/321409549353, 880921527508/321409549353][ -1016580400173/107136516451, -8334897743767/321409549353, 1419901706449/321409549353][ -288938859984/107136516451, -6956912657222/321409549353, 927293592476/321409549353][ -827401644798/107136516451, -10256166034813/321409549353, 1209595497577/321409549353](2)>> A=[3 -6 -4 0 5;1 4 2 -2 4;-6 3 -6 7 3;-13 10 0 -11 0;0 4 0 3 4];B=[3 -2 1;-2 -9 2;-2 -1 9];C=-[-2 1 -1;4 1 2;5 -6 1;6 -4 -4;-6 6 -3];X=lyap(A,B,C),norm(A*X+X*B+C)X =4.0569 14.5128 -1.5653-0.0356 -25.0743 2.7408-9.4886 -25.9323 4.4177-2.6969 -21.6450 2.8851-7.7229 -31.9100 3.7634ans =3.4356e-13第十五题>> syms t;A=[-4.5,0,0.5,-1.5;-0.5,-4,0.5,-0.5;1.5,1,-2.5,1.5;0,-1,-1,-3];B=simplify(expm(A*t))B =[ (exp(-5*t)*(exp(2*t) - t*exp(2*t) + t^2*exp(2*t) + 1))/2, (exp(-5*t)*(2*t*exp(2*t) - exp(2*t) + 1))/2, (t*exp(-3*t)*(t + 1))/2, -(exp(-5*t)*(exp(2*t) + t*exp(2*t) - t^2*exp(2*t) - 1))/2][ (exp(-5*t)*(t*exp(2*t) - exp(2*t) + 1))/2, (exp(-5*t)*(exp(2*t) + 1))/2, (t*exp(-3*t))/2, (exp(-5*t)*(t*exp(2*t) - exp(2*t) + 1))/2][ (exp(-5*t)*(exp(2*t) + t*exp(2*t) - 1))/2, (exp(-5*t)*(exp(2*t) - 1))/2, (exp(-3*t)*(t + 2))/2, (exp(-5*t)*(exp(2*t) + t*exp(2*t) - 1))/2][ -(t^2*exp(-3*t))/2, -t*exp(-3*t), -(t*exp(-3*t)*(t + 2))/2, -(exp(-3*t)*(t^2 - 2))/2]>> C=simplify(sin(A*t))C =[ -sin((9*t)/2), 0, sin(t/2), -sin((3*t)/2)][ -sin(t/2), -sin(4*t), sin(t/2), -sin(t/2)][ sin((3*t)/2), sin(t), -sin((5*t)/2), sin((3*t)/2)][ 0, -sin(t), -sin(t), -sin(3*t)]>> D=simplify(expm(A*t)*sin(A^2*expm(A*t)*t))D =[ (exp(-5*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2)*(2*t*exp(2*t) - exp(2*t) + 1))/2 + (exp(-5*t)*sin((t*exp(-3*t)*(9*t^2 - 12*t + 2))/2)*(exp(2*t) + t*exp(2*t) - t^2*exp(2*t) - 1))/2 + (exp(-5*t)*sin((t*exp(-5*t)*(17*exp(2*t) - 21*t*exp(2*t) + 9*t^2*exp(2*t) + 25))/2)*(exp(2*t) - t*exp(2*t) + t^2*exp(2*t) + 1))/2 + (t*exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2)*(t + 1))/2, (exp(-5*t)*sin((t*exp(-5*t)*(9*exp(2*t) + 25))/2)*(2*t*exp(2*t) - exp(2*t) + 1))/2 + (exp(-5*t)*sin((t*exp(-5*t)*(18*t*exp(2*t) - 21*exp(2*t) + 25))/2)*(exp(2*t) - t*exp(2*t) + t^2*exp(2*t) + 1))/2 + (exp(-5*t)*sin(3*t*exp(-3*t)*(3*t - 2))*(exp(2*t) + t*exp(2*t) - t^2*exp(2*t) - 1))/2 + (t*exp(-3*t)*sin((t*exp(-5*t)*(9*exp(2*t) - 25))/2)*(t + 1))/2, (exp(-5*t)*sin((3*t*exp(-3*t)*(3*t - 2))/2)*(2*t*exp(2*t) - exp(2*t) + 1))/2 - (exp(-5*t)*sin((t*exp(-3*t)*(- 9*t^2 + 3*t + 4))/2)*(exp(2*t) - t*exp(2*t) + t^2*exp(2*t) + 1))/2 + (exp(-5*t)*sin((t*exp(-3*t)*(9*t^2 + 6*t - 10))/2)*(exp(2*t) + t*exp(2*t) - t^2*exp(2*t) - 1))/2 + (t*exp(-3*t)*sin((3*t*exp(-3*t)*(3*t + 4))/2)*(t + 1))/2, (exp(-5*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2)*(2*t*exp(2*t) - exp(2*t) + 1))/2 - (exp(-5*t)*sin((t*exp(-5*t)*(exp(2*t) + 21*t*exp(2*t) - 9*t^2*exp(2*t) - 25))/2)*(exp(2*t) - t*exp(2*t) + t^2*exp(2*t) + 1))/2 - (exp(-5*t)*sin((t*exp(-3*t)*(- 9*t^2 + 12*t + 16))/2)*(exp(2*t) + t*exp(2*t) - t^2*exp(2*t) - 1))/2 + (t*exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2)*(t + 1))/2][ (exp(-5*t)*sin((t*exp(-5*t)*(1 7*exp(2*t) - 21*t*exp(2*t) + 9*t^2*exp(2*t) + 25))/2)*(t*exp(2*t) - exp(2*t) + 1))/2 - (exp(-5*t)*sin((t*exp(-3*t)*(9*t^2 - 12*t + 2))/2)*(t*exp(2*t) - exp(2*t) + 1))/2 + (t*exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2))/2 + (exp(-5*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2)*(exp(2*t) + 1))/2, (exp(-5*t)*sin((t*exp(-5*t)*(18*t*exp(2*t) - 21*exp(2*t) + 25))/2)*(t*exp(2*t) - exp(2*t) + 1))/2 - (exp(-5*t)*sin(3*t*exp(-3*t)*(3*t - 2))*(t*exp(2*t) - exp(2*t) + 1))/2 + (t*exp(-3*t)*sin((t*exp(-5*t)*(9*exp(2*t) - 25))/2))/2 + (exp(-5*t)*sin((t*exp(-5*t)*(9*exp(2*t) + 25))/2)*(exp(2*t) + 1))/2, (exp(-3*t)*sin((3*t*exp(-3*t)*(3*t - 2))/2))/2 + (exp(-5*t)*sin((3*t*exp(-3*t)*(3*t - 2))/2))/2 + (exp(-3*t)*sin((t*exp(-3*t)*(- 9*t^2 + 3*t + 4))/2))/2 - (exp(-5*t)*sin((t*exp(-3*t)*(- 9*t^2 + 3*t + 4))/2))/2 + (exp(-3*t)*sin((t*exp(-3*t)*(9*t^2 + 6*t - 10))/2))/2 - (exp(-5*t)*sin((t*exp(-3*t)*(9*t^2 + 6*t - 10))/2))/2 + (t*exp(-3*t)*sin((3*t*exp(-3*t)*(3*t + 4))/2))/2 - (t*exp(-3*t)*sin((t*exp(-3*t)*(- 9*t^2 + 3*t + 4))/2))/2 - (t*exp(-3*t)*sin((t*exp(-3*t)*(9*t^2 + 6*t - 10))/2))/2, (exp(-5*t)*sin((t*exp(-3*t)*(- 9*t^2 + 12*t + 16))/2)*(t*exp(2*t) - exp(2*t) + 1))/2 - (exp(-5*t)*sin((t*exp(-5*t)*(exp(2*t) + 21*t*exp(2*t) - 9*t^2*exp(2*t) - 25))/2)*(t*exp(2*t) - exp(2*t) + 1))/2 + (t*exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2))/2 + (exp(-5*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2)*(exp(2*t) + 1))/2][ (exp(-5*t)*sin((t*exp(-5*t)*(17*ex p(2*t) - 21*t*exp(2*t) + 9*t^2*exp(2*t) + 25))/2)*(exp(2*t) + t*exp(2*t) - 1))/2 - (exp(-5*t)*sin((t*exp(-3*t)*(9*t^2 - 12*t + 2))/2)*(exp(2*t) + t*exp(2*t) - 1))/2 + exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2)*(t/2 + 1) + (exp(-5*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2)*(exp(2*t) - 1))/2, exp(-3*t)*sin((t*exp(-5*t)*(9*exp(2*t) - 25))/2)*(t/2 + 1) + (exp(-5*t)*sin((t*exp(-5*t)*(9*exp(2*t) + 25))/2)*(exp(2*t) - 1))/2 + (exp(-5*t)*sin((t*exp(-5*t)*(18*t*exp(2*t) - 21*exp(2*t) + 25))/2)*(exp(2*t) + t*exp(2*t) - 1))/2 - (exp(-5*t)*sin(3*t*exp(-3*t)*(3*t - 2))*(exp(2*t) + t*exp(2*t) - 1))/2, exp(-3*t)*sin((3*t*exp(-3*t)*(3*t + 4))/2)*(t/2 + 1) - (exp(-5*t)*sin((t*exp(-3*t)*(9*t^2 + 6*t - 10))/2)*(exp(2*t) + t*exp(2*t) - 1))/2 - (exp(-5*t)*sin((t*exp(-3*t)*(- 9*t^2 + 3*t + 4))/2)*(exp(2*t) + t*exp(2*t) - 1))/2 + (exp(-5*t)*sin((3*t*exp(-3*t)*(3*t - 2))/2)*(exp(2*t) - 1))/2, (exp(-5*t)*sin((t*exp(-3*t)*(- 9*t^2 + 12*t + 16))/2)*(exp(2*t) + t*exp(2*t) - 1))/2 + exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2)*(t/2 + 1) + (exp(-5*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2)*(exp(2*t) - 1))/2 - (exp(-5*t)*sin((t*exp(-5*t)*(exp(2*t) + 21*t*exp(2*t) - 9*t^2*exp(2*t) - 25))/2)*(exp(2*t) + t*exp(2*t) - 1))/2][exp(-3*t)*sin((t*exp(-3*t)*(9*t^2 - 12*t + 2))/2)*(t^2/2 - 1) - (t^2*exp(-3*t)*sin((t*exp(-5*t)*(17*exp(2*t) - 21*t*exp(2*t) + 9*t^2*exp(2*t) + 25))/2))/2 - t*exp(-3*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2) - (t*exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2)*(t + 2))/2, exp(-3*t)*sin(3*t*exp(-3*t)*(3*t - 2))*(t^2/2 - 1) - t*exp(-3*t)*sin((t*exp(-5*t)*(9*exp(2*t) + 25))/2) - (t^2*exp(-3*t)*sin((t*exp(-5*t)*(18*t*exp(2*t) - 21*exp(2*t) + 25))/2))/2 - (t*exp(-3*t)*sin((t*exp(-5*t)*(9*exp(2*t) - 25))/2)*(t + 2))/2, -(exp(-3*t)*(2*sin((t*exp(-3*t)*(9*t^2 + 6*t - 10))/2) - t^2*sin((t*exp(-3*t)*(- 9*t^2 + 3*t + 4))/2) - t^2*sin((t*exp(-3*t)*(9*t^2 + 6*t - 10))/2) + 2*t*sin((3*t*exp(-3*t)*(3*t - 2))/2) + 2*t*sin((3*t*exp(-3*t)*(3*t + 4))/2) + t^2*sin((3*t*exp(-3*t)*(3*t + 4))/2)))/2, exp(-3*t)*sin((t*exp(-3*t)*(- 9*t^2 + 12*t + 16))/2) - (t^2*exp(-3*t)*sin((t*exp(-3*t)*(- 9*t^2 + 12*t + 16))/2))/2 - t*exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2) - t*exp(-3*t)*sin((t*exp(-5*t)*(9*t*exp(2*t) - 15*exp(2*t) + 25))/2) - (t^2*exp(-3*t)*sin((t*exp(-5*t)*(3*exp(2*t) + 9*t*exp(2*t) - 25))/2))/2 + (t^2*exp(-3*t)*sin((t*exp(-5*t)*(exp(2*t) + 21*t*exp(2*t) - 9*t^2*exp(2*t) - 25))/2))/2]第二部分数学问题求解与数据处理第一题(1)>> syms a t;f=sin(a*t)/t;F=simplify(laplace(f))F =atan(a/s)(2)>> syms a t;f=t^5*sin(a*t);F=simplify(laplace(f))F =(240*a*s*(3*a^4 - 10*a^2*s^2 + 3*s^4))/(a^2 + s^2)^6(3)>> syms a t;f=t^8*cos(a*t);F=simplify(laplace(f))F =(40320*s*(9*a^8 - 84*a^6*s^2 + 126*a^4*s^4 - 36*a^2*s^6 + s^8))/(a^2 + s^2)^9 第二题(1)>> syms a s b t;f=1/(sqrt(s*s)*(s^2-a^2)*(s+b));f1=ilaplace(f,s,t)f1 =-ilaplace(1/((b + s)*(a^2 - s^2)*(s^2)^(1/2)), s, t)(2)>> syms s a b t;f=sqrt(s-a)-sqrt(s-b);f1=ilaplace(f,s,t)f1 =ilaplace((s - a)^(1/2), s, t) - ilaplace((s - b)^(1/2), s, t)(3)>> syms a b s t;f=log((s-a)/(s-b));f1=ilaplace(f,s,t)f1 =exp(b*t)/t - exp(a*t)/t第三题(1)>> syms x t;f=x^2*(3*pi-abs(2*x));f1=ifourier(f,x)f1 =-(24/x^4 + 6*pi^2*dirac(x, 2))/(2*pi)(2)>> syms t;f=t^2*(t-2*pi);f1=ifourier(f,t)f1 =(pi*dirac(t, 3)*2*i + 4*pi^2*dirac(t, 2))/(2*pi)第四题(1)>> syms a T K;f=cos(K*a*T);f1=ztrans(f);f2=iztrans(f1)f2 =cos(K*T*n)(2)>> syms a T K;f=(K*T)^2*exp(-a*K*T);f1=ztrans(f);f2=iztrans(f1)f2 =K^2*T^2*kroneckerDelta(n, 0) - K^2*T^2*exp(-K*T)*(exp(K*T)*kroneckerDelta(n, 0) - exp(-K*T)^n*exp(K*T))(3)>> syms a K T;f=(a*T*K-1+exp(-a*T*K))/a;f1=ztrans(f);f2=iztrans(f1)f2 =exp(-K*T)^n/n - 1/n - K*T*(kroneckerDelta(n, 0) - 1) + K*T*kroneckerDelta(n, 0)第五题(1)>> syms x;f=exp(-(x+1)^2+pi/2)*sin(5*x+2);t=solve(f)t =-2/5>> subs(f,x,-2/5)ans =(2)>> syms x y;f=(x^2+y^2+x*y)*exp(-x^2-y^2-x*y);x1=solve('(x^2+y^2+x*y)*exp(-x^2-y^2-x*y)','x') x1 =- y/2 + (3^(1/2)*y*i)/2- y/2 - (3^(1/2)*y*i)/2>> simplify(subs(f,x,x1))ans =第六题>> syms c x;solve(diff(int((exp(x)-c*x)^2,x,0,1),c))ans =3第七题写函数: function [c,ce]=c6exmcon(x)ce=[];c=[x(1)+x(2);x(1)*x(2)-x(1)-x(2)+1.5;-10-x(1)*x(2)];>> clear P;P.nonlcon=@c6exmcon;P.solver='fmincon';P.options=optimset;P.objective=@(x)exp(x(1))*(4*x( 1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);...ff=optimset;ff.TolX=1e-20;ff.TolFum=1e-20;P.options=ff;P.lb=[-10;-10];P.ub=-P.lb;P.x0=[0;0];[x,f1,fla g]=fmincon(P)Local minimum found that satisfies the constraints.Optimization completed because the objective function is non-decreasing infeasible directions, to within the default value of the function tolerance,and constraints are satisfied to within the default value of the constraint tolerance.<stopping criteria details>x =1.1825-1.7398f1 =3.0608flag =1第八题N=10;[x1,x2,x3,x4,x5,x6,x7]=ndgrid(1:N,1:N,4:N,1:N,2:N,5:N,6:N);i=find((-x1<=0)&(-x2<=0)&(-x3< =0)&(-x4<=0)&(-x5<=0)&(-x6<=0)&(-x7<=0)&(3534*x1+2356*x2+1767*x3+589*x4+528*x5+451* x6+304*x7<=119567));x1=x1(i);x2=x2(i);x3=x3(i);x4=x4(i);x5=x5(i);x6=x6(i);x7=x7(i);f=592*x1+381 *x2+273*x3+55*x4+48*x5+37*x6+23*x7;[fmax,ii]=sort(f);index=ii(1);x=[x1(index),x2(index),x3(in dex),x4(index),x5(index),x6(index),x7(index)]x =1 1 4 12 5 6第九题syms x y;y1=dsolve('D2y-(2-1/x)*Dy+(1-1/x)*y=x^2*exp(-5*x)','x');simplify(y1)ans =(exp(-5*x)*(30*x - 6*ei(-6*x)*exp(6*x) + 36*x^2 + 1296*C7*exp(6*x) + 1296*C8*exp(6*x)*log(x) + 11))/1296>> y=dsolve('D2y-(2-1/x)*Dy+(1-1/x)*y=x^2*exp(-5*x)','y(1)=sym(pi)','y((pi))=1','x');simplify(y)ans =(exp(-5*x)*(30*x + 6*log(x) + 108*x^2*log(x) + 216*x^3*log(x) - 6*ei(-6*x)*exp(6*x) + 36*x*log(x) + 36*x^2 + 11))/1296 - (exp(-5*x)*log(x)*(216*x^3 + 108*x^2 + 36*x + 6))/1296 + (exp(-6)*exp(x)*(6*ei(-6)*exp(6) + 1296*exp(5)*sym(pi) - 77))/1296 - (exp(-6*pi)*exp(-6)*exp(x)*log(x)*(11*exp(6) - 77*exp(6*pi) + 30*pi*exp(6) + 36*pi^2*exp(6) - 1296*exp(5*pi)*exp(6) + 6*ei(-6)*exp(6*pi)*exp(6) + 1296*exp(6*pi)*exp(5)*sym(pi) - 6*exp(6*pi)*exp(6)*ei(-6*pi)))/(1296*log(pi))第十题(1)>> syms t;x=dsolve('D2x+2*t*Dx+t^2*x=t+1');simplify(x)ans =C4*exp(-(t*(t - 2))/2) + C5*exp(-(t*(t + 2))/2) - (2^(1/2)*pi^(1/2)*erf(2^(1/2)*((t*i)/2 - i/2))*exp(-(t - 1)^2/2)*i)/2(2)>> syms x y;y=dsolve('Dy+2*x*y=x*exp(-x^2)')y =(exp(-x^2)*(C2*exp(-2*t*x) + 1))/2第十一题>>f=@(t,x)[-x(2)-x(3);x(1)+0.2*x(2);0.2+(x(1)-5.7)*x(3)];[t,x]=ode45(f,[0,100],[0;0;0]);plot(t,x) ;grid ;view(0,90)第十二题>>f=inline(['[x(2);-x(1)-x(3)-(3*x(2))^2+(x(4))^3+6*x(5)+2*t;','x(4);x(5);-x(5)-x(2)-exp(-x(1))-t]'],'t','x'); [t1,x1]=ode45(f,[1,0],[2,-4,-2,7,6]'); [t2,x2]=ode45(f,[1,2],[2,-4,-2,7,6]'); t=[t1(end:-1:1);t2];x=[x1(end:-1:1,:);x2];plot(x(:,1),x(:,3));plot(t,x)>> plot(x(:,1),x(:,3))第十三题[t,x,y]=sim('untitled12',[0,10]);plot(t,x)figure;plot(t,y)第十四题t=0:0.2:2; y=t.^2.*exp(-5*t).*sin(t);plot(t,y,'o')ezplot('t.^2.*exp(-5*t).*sin(t)',[0,2]);hold on;x1=0:0.01:2;y1=interp1(t,y,x1,'spline');plot(x1,y1)。
赫夫曼树实验代码(绝对正确的)

河北大学专业:数电信息年级:09 姓名:学号:20099999简单哈夫曼编/译码的设计与实现一、实验目的和要求(1)掌握树的有关操作算法(2)熟悉树的基本存储方法二、实验内容和原理定义哈夫曼树的存储结构;输入要编码的字符权重,根据权重建立哈夫曼树,并进行编码,最后输出哈夫曼编码。
三、算法描述及实验步骤1.算法描述(1).建立哈夫曼树的算法定义各节点类型其中应包含两类数据一是权重域weight;一是指针域而指针域中应该包括指向左右孩子和指向双亲的指针这里分别用lchild、rdhild和parent来表示因此可用静态三叉链表来实现,在实际构造中由于是叶子节点来构造新的根节点其构造过程中仅与叶子节点的权重有关而与其数据域无关所以构造过程中不用考虑其数值域,并且在链表中从叶子开始存放,让后不断的将两颗最小权值的子树合并为一颗权值为其和的较大的子树,逐步生成各自内部节点直到树根。
(2).哈夫曼编码的算法将建立的哈夫曼树从每个叶子节点开始沿着双亲域回到根节点,梅走一步进行编码得到一位编码值;由于每个叶子节点的哈夫曼编码是从根节点到相应的叶子的路径的各个分支的代码组成的0和1序列,所以先得到了低位编码后得到高位编码因此可用一维数组从后向前来存放各位编码值,并用start来记录编码的起始位置。
2.算法流程图构建哈夫曼树算法流程哈夫曼编码算法流程3.代码#include <stdio.h>#include <malloc.h>#define maxvalue 10000 //定义最大权值常量#define maxnodenumber 100 //定义节点最大数#define maxbit 10 //定义哈弗曼编码最大长度typedef struct //定义新数据类型即节点结构{int weight; //权重域int parent,lchild,rchild; //指针域}htnode; //节点类型标识符//typedef htnode * huffmanstree; //定义哈弗曼数类型htnode ht[maxnodenumber]; //定义三叉链表存储数组typedef struct //定义保存一个叶子节点哈弗曼编码的结构{int bit[maxbit]; //定义一维数组为编码域int start; //定义位置域}hcnodetype; //定义编码类型htnode * creatstree(int n) //huffmanstree creatstree(int n) //建立哈夫曼树算法实现函数{int i,j,m1,m2,k1,k2; //局部变量for(i=0;i<2*n-1;i++) //初始化各节点{ht[i].weight=0; //权重初始化为0ht[i].parent=-1; //根节点和给左右孩子初始化为-1ht[i].lchild=-1;ht[i].rchild=-1;}for(i=0;i<n;i++) //权重赋初值,由用户输入{scanf("%d",&ht[i].weight);}for(i=0;i<n-1;i++) //生成新节点构造哈夫曼树{m1=maxvalue; //预置最小权值变量为最大权值m2=maxvalue; //预置次小权值变量为最大权值k1=0; //预置最小权值节点位置为下标为0处k2=0; //预置次小权值节点位置为下标为0处for(j=0;j<n+i;j++) //循环找出每趟最下权值和所在位置if(ht[j].parent==-1&&ht[j].weight<m1){m2=m1;k2=k1;m1=ht[j].weight;k1=j;}else //当小于当前次小m2则更新m2及其位置if(ht[j].parent==-1&&ht[j].weight<m2){m2=ht[j].weight;k2=j;}ht[k1].parent=n+i; //修改最小权值节点的双亲为刚生成的新节点ht[k2].parent=n+i; //修改次小权值节点的双亲为刚生成的新节点ht[n+i].weight=ht[k1].weight+ht[k2].weight; //将新生成的权重值填入新的根节点ht[n+i].lchild=k1; //新生节点左孩子指向k1ht[n+i].rchild=k2; //新生节点右孩子指向k2}return ht; //返回哈夫曼树指针}void getstree(htnode * ht,int n) //哈夫曼编码算法及打印函数的实现{int i,j,c,p; //局部变量的定义hcnodetype cd[maxnodenumber]; //定义存储哈夫曼编码的数组for(i=0;i<n;i++) //循环控制对每一个节点进行编码{c=i; //为编码各节点初始化c和jj=maxbit;do{j--; //j指向bit中存放编码为的正确位置p=ht[c].parent; //p指向c的双亲节点if(ht[p].lchild==c) //如果c是p的左孩子cd[i].bit[j]=0; //编码为赋值0else //否则即c是p的右孩子cd[i].bit[j]=1; //编码赋值1c=p;//更新当前指针,为下一节点编码做准备}while(ht[p].parent!=-1); //判断是否编码结束即循环至最终根节点cd[i].start=j; //编码完成,记下编码开始位置}for(i=0;i<n;i++) //循环打印各节点哈夫曼编码{for(j=cd[i].start;j<maxbit;j++)//循环逐一输出printf("%d",cd[i].bit[j]);printf("\n"); //每输出一编码后换行}}int main() //主函数{int n;printf("请输入节点数:"); //用户输入节点数scanf("%d",&n);htnode * p; // huffmanstree p //定义哈夫曼树类型pp=(htnode * )malloc(sizeof(htnode *));//p=(huffmanstree)malloc(sizeof(huffmanstree))//分配内存空间p=creatstree(n);//调用建立哈夫曼树函数赋返回值给pgetstree(p,n); //调用编码函数读入建立的哈夫曼树p进行编码return 0;}四、调试过程出现该错误是因为type识别不了,即定义哈夫曼树时确切的说是type并不能定义htnode *标识符为huffmanstree:type htnode * huffmanstree这个小错误可以通过连个方法来修改一是将type改为typedef,当然直接删除该定义完全不会影响程序的执行,但在定义建立哈夫曼树函数时返回值应直接用htnode *;该错原因是参数未能成功传递,其中的ht[p]系统当做是未定义的类型可知,在getstree(htnode ht,int n)时正确的应当是传递哈夫曼树的头指针即数组首位置ht因此改为getstree(htnode * ht,int n)五、实验结果通过改正后成功编译连接,进行数据测试{5,20,12,7,47,9}当然编码因为定义时大小的左右排序是不同的所以编码也不唯一,但在这里是以左小右大来分布的,所以编码结果符合预期的。
页面置换算法实验源代码

#include <stdio.h>#include <stdlib.h>#include <time.h>#include <malloc.h>#define M 4 //物理页数#define N 20 //需要调入的页数#define LEN sizeof(struct node)/** @auther by 12281201 sunyangwei*/typedef struct page{int num;int time;}Page; //物理页项,包括调入的页号和时间struct node //定义空闲链表数据结构{int num;struct node *next;};Page mm[M]; //3个物理页int K=0,S=0,T=0,Q=0; //记录缺页率int pos=0;//记录存在最长时间项//初始化内存页表项及存储内存情况的空间void INIT(){int i;for(i=0;i<M;i++){mm[i].num =-1;mm[i].time =0;}}//建立链表struct node* create(){struct node *head;head = (struct node*)malloc(LEN);head->next = NULL;return (head);}//打印链表void print(struct node * head)struct node * p;printf("Now,链表页面:");p=head->next;if(p==NULL){printf("链表为空\n");}else {do{printf("%3d",p->num);p=p->next;}while(p!=NULL);}printf("\n");}//链表插入结点(页)struct node* insert(struct node* head,struct node * newnode){struct node *p1;p1=head->next;if(p1==NULL)//原来的链表是空表,新的节点直接插到头结点后面{head->next=newnode;newnode->next = NULL;}else//如果不是空表,则遍历寻找合适的插入位置{while((p1->next!=NULL)){p1=p1->next;//后移}p1->next = newnode;newnode->next = NULL;}return(head);}//删除结点struct node* delete(struct node* head,int num){struct node *p1,*p2;p1=head->next;p2 = head;while(p1!=NULL&&num!=p1->num){p2=p1;p1=p1->next;}if(p1!=NULL&&num==p1->num){p2->next=p1->next;}return (head);}//取得内存中存在时间最久的位置int GetMax(){int max=-1;int i;for(i=0;i<M;i++){if(mm[i].time > max){max=mm[i].time ;pos=i;}}return pos;}//检查最长时间不使用页面int longesttime(int i,int array[]){int max=-1;mm[0].time=0;mm[1].time=0;mm[2].time=0;for(int q=0;q<M;q++){for(int count=i;count<N;count++){if(mm[q].num==array[count]){mm[q].time=count;break;}}}for(int iii=0;iii<M;iii++){if(mm[iii].time==0){pos = iii;break;}else if((mm[iii].time!=0) && (mm[iii].time>max) ){max=mm[iii].time;pos=iii;}}return pos;}int getPrePos(int i,int array[])//得到最久没有使用的页面位置{int min=20;mm[0].time=0;mm[1].time=0;mm[2].time=0;for(int r=0;r<M;r++){for(int p=i;p>=0;p--){if(mm[r].num == array[p]){mm[r].time = p;break;}}}for(int j=0;j<M;j++){if(mm[j].time<min){min = mm[j].time;pos=j;}}return pos;}int is_intable(int pagenum,struct node * head){struct node *temp;temp=head->next;/*取得链表的头指针*/while(temp!=NULL)/*只要是非空表*/{if(pagenum ==temp->num){return 1;}temp=temp->next;/*跟踪链表增长*/}return 0;}//检查某页是否在内存,不存在返回-1,存在返回物理块编号int Equation(int fold){int i;for(i=0;i<M;i++){if(mm[i].num == fold)return i;}return -1;}//检查物理内存是否已满,-1表满,其他不满int Check(){int i;for(i=0;i<M;i++){if(mm[i].num == -1)return i;}return -1;}//先进先出void FIFO(int fold){int i;int a,b,c;a=Equation(fold);//a代表物理块编号//页已存在if(a != -1){}//页不存在b=Check();//内存还有空闲if(b != -1){mm[b].num = fold;}//内存已满,需要置换else {c=GetMax();mm[c].num = fold;mm[c].time = 0;K++;}}printf("访问页面%d",fold);for(int j=0;j<M;j++){printf("%3d",mm[j].num);}printf("\n");for(i=0;i<M;i++){if(mm[i].num != -1){mm[i].time ++;}}}void OPT(int i,int array[]){int a,b,c;a=Equation(array[i]);if(a == -1){//页不在内存b=Check();//内存还有空闲if(b != -1){mm[b].num = array[i];}//内存已满,需要置换else{c=longesttime(i,array);mm[c].num = array[i];T++;}printf("访问页面%d",array[i]);for(int j=0;j<M;j++){printf("%3d",mm[j].num);}printf("\n");}void LRU(int i,int array[]){int a,b,c;a = Equation(array[i]);if(a == -1){//页不在内存b=Check();//内存还有空闲if(b != -1){mm[b].num = array[i];}//内存已满,需要置换else{c=getPrePos(i,array);mm[c].num = array[i];S++;}}printf("访问页面%d",array[i]);for(int j=0;j<M;j++){printf("%3d",mm[j].num);}printf("\n");}void PBA(int i,int array[],struct node * head)//与fifo算法类似,只是置换下来的页面存放在链表里面{int a,c;struct node * newnode;if(Equation(array[i]) !=-1){}//页已在内存else {//页不在内存a=Check();if(a != -1){//检查内存是否有空闲,有空闲,则不需要调换mm[a].num = array[i];}else{//内存没有空闲,需要置换页面//页面在链表里面if(is_intable(array[i],head)==1) {//页面在链表里面c=GetMax();//得到物理块中要被置换出来的页面//从链表里删除节点(页面)head = delete(head,array[i]);//在表尾插入置换下来的节点(页面)newnode=(struct node*)malloc(LEN);newnode->num= mm[c].num;head = insert(head,newnode);mm[c].num =array[i];mm[c].time = 0;}else{//不在链表里面c=GetMax();newnode=(struct node*)malloc(LEN);newnode->num= mm[c].num;head = insert(head,newnode);mm[c].num = array[i];mm[c].time = 0;Q++;printf("Q:%d\n",Q);print(head);}}}printf("访问页面%d",array[i]);for(int j=0;j<M;j++){printf("%3d",mm[j].num);}printf("\n");for(int p=0;p<M;p++){if(mm[p].num != -1){mm[p].time ++;}}}/*符合局部访问特性的随机生成算法确定虚拟内存的尺寸pageNum,工作集的起始位置p,工作集中包含的页数e,工作集移动率m(每处理m个页面访问则将起始位置p +1),以及一个范围在0和1之间的值t;生成m个取值范围在p和p + e间的随机数,并记录到页面访问序列串中;生成一个随机数r,0 ≤r ≤1;如果r < t,则为p生成一个新值,否则p = (p + 1) mod N;如果想继续加大页面访问序列串的长度,请返回第2步,否则结束。
EDA实验代码

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CAR ISPORT(CLK:IN STD_LOGIC;RESET:IN STD_LOGIC;DIS0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );DIS1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );DIS2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );DIS3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);BT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);MONEY0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );MONEY1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );MONEY2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );MONEY3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0 );PING:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ONE OF CAR ISSIGNAL DIS0_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL DIS1_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL DIS2_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL DIS3_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A:INTEGER RANGE 0 TO 15;SIGNAL MONEY0_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL MONEY1_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL MONEY2_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL MONEY3_COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0 ); SIGNAL TEMP:STD_LOGIC;SIGNAL COUNT:INTEGER RANGE 0 TO 1000;BEGIN--分频模块PIN:PROCESS(RESET,CLK)BEGINIF RESET='1' THENCOUNT<=0;ELSIF CLK'EVENT AND CLK='1' THENIF COUNT>50 THENCOUNT<=0;TEMP<='1';ELSE COUNT<=COUNT+1;END IF;END IF;END PROCESS;PING<=TEMP;--计程模块DISTANCE:PROCESS(RESET,CLK)BEGINIF RESET='1' THENDIS0_COUNT <="0000";DIS1_COUNT <="0000";DIS2_COUNT <="0000";DIS3_COUNT <="0000";ELSIF CLK'EVENT AND CLK='1' THENIF DIS0_COUNT<"1001" THENDIS0_COUNT<=DIS0_COUNT+"0001";ELSIF DIS2_COUNT="1001" AND DIS1_COUNT="1001" AND DIS0_COUNT="1001" THENDIS3_COUNT <=DIS3_COUNT+"0001";DIS2_COUNT <="0000";DIS1_COUNT <="0000";DIS0_COUNT <="0000";ELSIF DIS1_COUNT="1001" AND DIS0_COUNT="1001" THENDIS2_COUNT <=DIS2_COUNT+"0001";DIS1_COUNT <="0000";DIS0_COUNT <="0000";ELSIF DIS0_COUNT="1001" THENDIS1_COUNT <=DIS1_COUNT+"0001";DIS0_COUNT <="0000";END IF;END IF;END PROCESS DISTANCE;DIS0 <= DIS0_COUNT;DIS1 <= DIS1_COUNT;DIS2 <= DIS2_COUNT;DIS3 <= DIS3_COUNT;--计费模块COST:PROCESS(RESET,CLK)BEGINIF RESET='1' THENMONEY0_COUNT <="0011";MONEY1_COUNT <="0000";MONEY2_COUNT <="0000";MONEY3_COUNT <="0000";ELSIF CLK'EVENT AND CLK='1' THENIF MONEY0_COUNT<"1001" THENMONEY0_COUNT <= MONEY0_COUNT +"0001";ELSIF MONEY2_COUNT="1001" AND MONEY1_COUNT="1001" AND MONEY0_COUNT="1001" THENMONEY3_COUNT <=MONEY3_COUNT+"0001";MONEY2_COUNT <="0000";MONEY1_COUNT <="0000";MONEY0_COUNT <="0000";ELSIF MONEY1_COUNT="1001" AND MONEY0_COUNT="1001" THENMONEY2_COUNT <=MONEY2_COUNT+"0001";MONEY1_COUNT <="0000";MONEY0_COUNT <="0000";ELSIF MONEY0_COUNT="1001" THENMONEY1_COUNT <=MONEY1_COUNT+"0001";MONEY0_COUNT <="0000";END IF;END IF;END PROCESS COST;MONEY0 <=MONEY0_COUNT;MONEY1 <=MONEY1_COUNT;MONEY2 <=MONEY2_COUNT;MONEY3 <=MONEY3_COUNT;--显示模块COM1:PROCESS(CNT8)BEGINCASE CNT8 ISWHEN "000" => BT <="00000001";A<=1;WHEN "001" => BT <="00000010";A<=3;WHEN "010" => BT <="00000100";A<=5;WHEN "011" => BT <="00001000";A<=7;WHEN "100" => BT <="00010000";A<=9;WHEN "101" => BT <="00100000";A<=11;WHEN "110" => BT <="01000000";A<=13;WHEN "111" => BT <="10000000";A<=15;WHEN OTHERS =>NULL;END CASE;END PROCESS COM1;COM2:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THEN CNT8 <=CNT8+1;END IF;END PROCESS COM2;COM3:PROCESS(A)BEGINCASE A ISWHEN 0 => SG <="0111111";WHEN 1 => SG <="0000110";WHEN 2 => SG <="1011011";WHEN 3 => SG <="1001111";WHEN 4 => SG <="1100110";WHEN 5 => SG <="1101101";WHEN 6 => SG <="1111101";WHEN 7 => SG <="0000111";WHEN 8 => SG <="1111111";WHEN 9 => SG <="1101111";WHEN 10=> SG <="1110111";WHEN 11=> SG <="1111100";WHEN 12=> SG <="0111001";WHEN 13=> SG <="1011110";WHEN 14=> SG <="1111001";WHEN 15=> SG <="1110001";WHEN OTHERS =>NULL;END CASE;END PROCESS COM3;END ONE;。
CNAS实验室认可领域代码

.01内毒素检测
.02毒性检测
.03热源检测
.04免疫制品的生物检测
.05激素的生物检测
.06维生素的生物检测
.07酶的生物检测
.08血液制品的检测
.09理化检测
.10免疫制品的效力
.11免疫制品的安全性
.12质控检测
.13显微镜
.14其它检测
0102兽用药品和生物制品的检测
.02细菌培养基---选择性的
.03细菌培养基---抗生素的敏感性
.04细菌培养基---生化检测
.05真菌培养基
.06分枝杆菌培养基.
.07病毒培养基
0113屠宰场表面的检测
.01肉表面
.02制品接触表面
.03采样
0114卫生学方面的微生物检测
.01表面
.02空气
.03水
0115其它材料的微生物检测
02其他产品0435电信设备的型式试验0436无线通信设备的型式试验0437电器附件和工具的安全试验0438电器附件和工具的性能试验0439暴露在大气中的电气设备053c认证产品0501电线电缆
CNAL实验室认可检测、校准分类
序号
领域
分领域及项目
01
01
01
01
01
01
01Байду номын сангаас
生物
生物
生物
生物
生物
生物
生物
.19行业用水的微生物状况
.20饮用水的病毒状况
.21工业用水的病毒状况
.22污水的病毒状况
.23行业用水的病毒状况
.24游泳池和温泉游泳池用水的病毒状况
.25环境用水的病毒状况
编程语言代码质量分析实验报告

编程语言代码质量分析实验报告一、实验目的本实验旨在通过对不同编程语言的代码质量进行分析,探讨各种编程语言在代码编写过程中的优劣势,为程序员选择合适的编程语言提供参考依据。
二、实验背景在软件开发领域,选择合适的编程语言对项目的成功至关重要。
不同编程语言有着各自的特点和优势,例如Python的简洁易读、Java的跨平台性和C++的高效性等。
通过本次实验分析各种编程语言的代码质量,可以更好地指导程序员在选择编程语言时做出明智的决策。
三、实验内容1. 采用不同编程语言编写同一段代码;2. 对各种编程语言的代码进行质量分析,包括但不限于可读性、可维护性、性能等方面;3. 比较不同编程语言的代码质量,得出结论。
四、实验步骤1. 选择多种常见编程语言,例如Python、Java、C++等;2. 设计一个较为简单的代码需求,要求在各种编程语言下实现相同功能;3. 分别使用不同编程语言编写代码;4. 对比每种编程语言下的代码质量,包括代码风格、注释规范、命名规范、功能完成度等;5. 进行性能测试,比较不同编程语言的执行效率。
五、实验结果经过实验,我们对Python、Java、C++三种编程语言的代码质量进行了分析。
在可读性和简洁性方面,Python表现出色,其代码简洁易读,适合快速开发。
Java在代码结构严谨、面向对象设计方面表现突出,适合大型项目开发。
而C++在性能方面具有优势,适合对性能要求较高的项目。
六、实验结论综上所述,不同编程语言适用于不同的场景和项目需求。
程序员在选择编程语言时,应根据项目需求、开发周期、团队成员技能等因素综合考虑,选择最适合的编程语言,以提高代码质量和开发效率。
七、参考文献[1] Lutz, M. (2013). Learning Python: Powerful Object-Oriented Programming (5th Edition). O'Reilly Media.[2] Horstmann, C. S. (2016). Core Java Volume I--Fundamentals (10th Edition). Prentice Hall.[3] Stroustrup, B. (2013). The C++ Programming Language (4th Edition). Addison-Wesley.八、致谢感谢实验组成员的辛勤工作和支持,为本次实验的顺利完成提供了帮助。
数字信号处理实验1--5含代码
数字信号处理实验1--5含代码实验一离散时间信号的时域分析 1. 在MATLAB中利用逻辑关系式n,,0来实现序列,显示范围。
(产生如下,,,n,nn,n,n012图所示的单位脉冲信号的函数为impseq(n0,n1,n2),程序如示例所示),3,n,10并利用impseq函数实现序列:; ,,,,,,yn,2,n,3,,n,6,,xn1nnnn120源代码:impseq.mfunction y=impseq(n0,n1,n2)n=[n1:n2]y=[(n-n0)==0]exp01-1.mfunction impseq(n0,n1,n2)n=-3:1:10y=2*impseq(3,-3,10)+impseq(6,-3,10);stem(n,y)n,,0,,2. 在MATLAB中利用逻辑关系式来实现序列,显示范围。
(自己编写un,nn,n,n012产生单位阶跃信号的函数,函数命名为stepseq(n0,n1,n2)) 并利用编写的stepseq函数实现序列: ,,,,,,yn,un,2,un,2,5,n,10源代码:stepseq.mfunction y=stepseq(n0,n1,n2)n=n1:1:n2y=[(n-n0)>=0]exp01-2.mfunction stepseq(n0,n1,n2)n=-5:1:20y=stepseq(-2,-5,20)+stepseq(2,-5,20)stem(n,y)3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。
如: n ,,,,xn,0.30,n,15源代码:n=0:1:15;x=0.3.^nstem(n,x)4. 在MATLAB中调用函数sin或cos产生正余弦序列,如:π,, ,,,,xn,3sin0.4πn,,5cos0.3πn0,n,20,,5,,源代码:n=0:1:20x=11*sin(0.3*pi*n+pi/5)+5*cos(0.3*pi*n)stem(n,x)思考题:1.在MATLAB环境下产生单位脉冲序列和单位阶跃序列各有几种方法,如何使用,2.在MATLAB环境下进行序列的相乘运算时应注意什么问题,实验二离散时间系统的时域分析1. 在MATLAB中利用内部函数conv来计算两个有限长序列的卷积。
代码静态测试实验报告
代码静态测试实验报告一、实验目的1.了解代码的静态测试方法和技术;2.掌握代码静态测试的过程和操作方法;3.提高对代码质量的评估能力。
二、实验原理代码的静态测试是一种通过检查代码的语法、结构、风格等方面,对代码进行分析和评估的方法。
通过静态测试,可以发现代码中的潜在错误和问题,提高代码的质量和可靠性。
三、实验步骤1.选择一种代码静态测试工具,如PMD、FindBugs等;2.安装和配置所选工具;3.选择一段代码作为测试目标,将其导入到工具中;4.对代码进行静态测试,分析测试结果;5.根据测试结果,对代码进行修改和优化;6.再次进行静态测试,直到测试通过。
四、实验结果在本次实验中,我选择了PMD作为代码静态测试工具。
我选取了一个Java程序作为测试目标,并将其导入到PMD中进行分析。
通过分析,PMD 检测出了代码中的一些潜在问题,如未使用的变量、不规范的命名等。
根据PMD的提示,我对代码进行了修改和优化,删除了未使用的变量,优化了命名方式。
经过多次修改和测试,最终代码通过了PMD的静态测试。
通过本次实验,我深刻认识到了代码静态测试的重要性。
通过静态测试,可以及早发现并解决代码中的问题,提高代码的可读性和可维护性。
五、实验总结通过本次实验,我对代码的静态测试有了更深入的了解和认识。
代码静态测试是一种简便有效的代码质量管理方法,可以有效提高代码的可靠性和可维护性。
在进行代码静态测试时,选择适当的测试工具非常重要。
不同的工具有不同的测试功能和特点,需要根据实际需求进行选择。
在本次实验中,我选择了PMD,它具有丰富的测试规则和良好的用户界面,非常适合进行代码的静态测试。
在进行代码静态测试时,我们应该注重测试结果的分析和理解。
测试工具给出的提示只是一种参考,我们需要对测试结果进行认真分析,并找到合适的解决方案。
通过对代码的多次测试和修改,最终可以得到一个更加高质量的代码。
在今后的编码过程中,我将更加重视代码的静态测试,及时发现和解决代码中的问题,提高代码的质量和可靠性。
最优化实验报告代码
一维搜索进退法function f=getvalue(t)f=t^3-2*t+1;function [a,b]=myfun(t,h,alpha) t0=t;k=0;fi0=getvalue(t0);for count=1:1:100t1=t0+h;fi1=getvalue(t1);if(fi1<fi0)h=alpha*h;t=t0;t0=t1;fi0=fi1;k=k+1;elseif(k~=0)if(t>t1)a=t1;b=t;elsea=t;b=t1;endbreak;elseh=-h;t=t1;endendend结果:>> [a,b]=myfun(0,1,2)a=0,b=3黄金分割法function [value,a,b]=myfun(m,n,alpha)tao=0.618;ephsilo=alpha;a=m;k=0;b=n;lamenda=a+(1-tao)*(b-a);miu=a+tao*(b-a);if(abs(lamenda-miu)<ephsilo)value=(lamenda+miu)*0.5;elsefor count=1:1:100if(getvalue(lamenda)<getvalue(miu)) a=a;b=miu;miu=lamenda;lamenda=a+(1-tao)*(b-a);elsea=lamenda;b=b;lamenda=miu;miu=a+tao*(b-a);endk=k+1;if(abs(b-a)<ephsilo)value=(a+b)*0.5;break;endend结果:>> [value,a,b]=myfun(-3,5,0.3)value = -0.9736 a = -1.1114 b = -0.8358牛顿法function f=getvalue(t)f=t^3-2*t+1;function dif1=diff1(t)dif1=3*t^2-2;function dif2=diff2(t)dif2=6*t;function [value,x]=myfun(t0,ephisilo)t=t0;while(abs(diff1(t))>=ephisilo)t=t-diff1(t)/diff2(t);endx=t;value=getvalue(t);结果>> [value,x]=myfun(0.01,0.01)value =-0.0887 x =0.8165function y1=fun(x)y1=(1-x(1))^2+2*(x(2)-x(1)^2)^2;function y2=gfun(x)y2(1,1)=2*x(1)-4*x(1)*x(2)+4*x(1)^3-2;y2(2,1)=2*x(2)-2*x(1)^2;function y3=Hess(x)y3(1,1)=12*x(1)^2-4*x(2)+2;y3(1,2)=-4*x(1);y3(2,1)=-4*x(1);y3(2,2)=2;阻尼牛顿function [x,val,k]=myfun(fun,gfun,Hess,x0)maxk=100;rho=0.55;sigma=0.4;k=0;epsilon=0.1;while(k<maxk)gk=feval(gfun,x0);Gk=feval(Hess,x0);dk=-Gk/gk;if(norm(gk)<epsilon)break;endm=0;mk=0;while(m<20)if(feval(fun,x0+rho^m*dk)<feval(fun,x0)+sigma*rho^m*gk'*dk) mk=m;break;endm=m+1;endx0=x0+rho^mk*dk;k=k+1;endx=x0;val=feval(fun,x);结果:[x,val,k]=myfun('fun','gfun','Hess',[0,0]') x =0.97700.9330val =0.0015k =3共轭梯度function [x,val,k]=frcg(fun,gfun,x0)maxk=5000;rho=0.6;sigma=0.4;k=0;epsilon=0.01;n=length(x0);while(k<maxk)g=feval(gfun,x0);itern=k-(n+1)*floor(k/(n+1));itern=itern+1;if(itern==1)d=-g;elsebeta=(g'*g)/(g0'*g0);d=-g+beta*d0;gd=g'*d;if(gd>=0.0)d=-g;endendif(norm(g)<epsilon)break;endm=0;mk=0;while(m<20)if(feval(fun,x0+rho^m*d)<feval(fun,x0)+sigma*rho^m*g'*d) mk=m;break;endm=m+1;endx0=x0+rho^mk*d;val=feval(fun,x0);g0=g;d0=d;k=k+1;endx=x0;val=feval(fun,x);结果:>> [x,val,k]=myfun('fun','gfun',[0,0]')x =1.00681.0151val =5.0605e-005k =20最速下降法function [x,val,k]=grad(fun,gfun,x0)maxk=5000;rho=0.5;sigma=0.4;k=0;epsilon=0.01;while(k<maxk)g=feval(gfun,x0);d=-g;if(norm(d)<epsilon)break;endm=0;mk=0;while(m<20)if(feval(fun,x0+rho^m*d)<feval(fun,x0)+sigma*rho^m*g'*d) mk=m;break;endm=m+1;endx0=x0+rho^mk*d;k=k+1;endx=x0;val=feval(fun,x);结果:>> [x,val,k]=myfun('fun','gfun',[0,0]')x =0.99310.9849val =5.1040e-005k =142。
实验报告管理系统代码
```pythonimport jsonimport os# 实验报告管理系统类class ExperimentReportSystem:def __init__(self, filename='reports.json'):self.filename = filenameself.reports = self.load_reports()def load_reports(self):"""从文件中加载实验报告数据"""if os.path.exists(self.filename):with open(self.filename, 'r') as file:return json.load(file)return {}def save_reports(self):"""将实验报告数据保存到文件"""with open(self.filename, 'w') as file:json.dump(self.reports, file, indent=4)def add_report(self, report_id, title, description): """添加一个新的实验报告"""if report_id in self.reports:print("错误:实验报告ID已存在。
")returnself.reports[report_id] = {'title': title, 'description': description}self.save_reports()print("实验报告已添加。
")def view_report(self, report_id):"""查看指定的实验报告"""report = self.reports.get(report_id)if report:print(f"报告ID: {report_id}")print(f"标题: {report['title']}")print(f"描述: {report['description']}")else:print("错误:实验报告不存在。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 Option Explicit Dim r As MapObjects2.Rectangle Private Sub Command1_Click() Set Map1.Extent = Map1.FullExtent End Sub
Private Sub Command2_Click() Dim i As String, dc As New MapObjects2.DataConnection, layer As New MapObjects2.MapLayer CDlg1.Filter = "ESRI Shape文件(*.shp)|*.shp" CDlg1.ShowOpen i = Left(CDlg1.FileTitle, Len(CDlg1.FileTitle) - 4) dc.Database = CurDir If dc.Connect Then Set layer.GeoDataset = dc.FindGeoDataset(i) Map1.Layers.Add layer End If End Sub
Private Sub Command3_Click() Dim i As String, dc As New MapObjects2.DataConnection, layer As New MapObjects2.MapLayer CDlg1.Filter = "ESRI Shape文件(*.shp)|*.shp" CDlg1.ShowOpen i = Left(CDlg1.FileTitle, Len(CDlg1.FileTitle) - 4) dc.Database = CurDir If dc.Connect Then Set layer.GeoDataset = dc.FindGeoDataset(i) Map1.Layers.Add layer End If List1.AddItem i End Sub
Private Sub Command4_Click() Dim i As Integer Dim lyr As MapObjects2.MapLayer If List1.ListIndex <> -1 And List1.ListIndex > 0 Then i = List1.ListIndex - 1 Map1.Layers.MoveTo List1.ListIndex, i Map1.Refresh List1.Clear For Each lyr In Map1.Layers List1.AddItem lyr.Name Next lyr 2
List1.Selected(i) = True End If End Sub
Private Sub Command5_Click() Dim i As Integer Dim lyr As MapObjects2.MapLayer i = List1.ListIndex Map1.Layers.Remove i Map1.Refresh List1.Clear For Each lyr In Map1.Layers List1.AddItem lyr.Name Next lyr
End Sub Private Sub Command6_Click() Dim i As Integer Dim lyr As MapObjects2.MapLayer If List1.ListIndex <> -1 And List1.ListIndex < List1.ListCount - 1 Then i = List1.ListIndex + 1 Map1.Layers.MoveTo List1.ListIndex, i Map1.Refresh List1.Clear For Each lyr In Map1.Layers List1.AddItem lyr.Name Next lyr List1.Selected(i) = True End If End Sub
Private Sub Command7_Click() Map1.Layers.Clear List1.Clear End Sub
Private Sub List1_DblClick() Dim lyr As MapObjects2.MapLayer If List1.ListIndex <> -1 Then Map1.Layers.MoveToTop List1.ListIndex Map1.Refresh 3
List1.Clear For Each lyr In Map1.Layers List1.AddItem lyr.Name Next lyr End If
End Sub Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Toolbar1.Buttons(1).Value = 1 Then Set Map1.Extent = Map1.TrackRectangle ElseIf Toolbar1.Buttons(3).Value = 1 Then Map1.Pan ElseIf Toolbar1.Buttons(2).Value = 1 Then Set r = Map1.Extent r.ScaleRectangle 1.5 Map1.Extent = r End If If Button = vbRightButton Then PopupMenu pop1 End If End Sub Private Sub pop1fangda_Click() Set Map1.Extent = Map1.TrackRectangle End Sub
Private Sub pop1quantu_Click() Set Map1.Extent = Map1.FullExtent End Sub
Private Sub pop1suoxiao_Click() Set r = Map1.Extent r.ScaleRectangle 1.5 Map1.Extent = r End Sub
Private Sub pop1xianshi_Click() Dim lyrcount As Integer Dim i As Integer Dim strtype As String lyrcount = Map1.Layers.Count Form2.MSFlexGrid1.Rows = 1 Form2.MSFlexGrid1.Cols = 3 Form2.MSFlexGrid1.Row = 0 4
Form2.MSFlexGrid1.Col = 0 Form2.MSFlexGrid1.Text = "图层序号" Form2.MSFlexGrid1.Col = 1 Form2.MSFlexGrid1.Text = "名称" Form2.MSFlexGrid1.Col = 2 Form2.MSFlexGrid1.Text = "类型" For i = 0 To lyrcount - 1 Select Case Map1.Layers.Item(i).shapeType Case moPoint strtype = "点图层" Case moLine strtype = "线图层" Case moPolygon strtype = "多边形图层" Case Else strtype = "?" End Select Form2.MSFlexGrid1.AddItem Str$(i + 1) & Chr(9) & Map1.Layers.Item(i).Name & Chr(9) & strtype
Next i Form2.Show vbModal End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If Toolbar1.Buttons(1).Value = 1 Then Map1.MousePointer = moZoomIn ElseIf Toolbar1.Buttons(2).Value = 1 Then Map1.MousePointer = moZoomOut ElseIf Toolbar1.Buttons(3).Value = 1 Then Map1.MousePointer = moPan ElseIf Toolbar1.Buttons(5).Value = 1 Then Set Map1.Extent = Map1.FullExtent End If End Sub 5
Private Sub Form_Activate() adjustcolwidth Me, MSFlexGrid1 End Sub
Public Sub adjustcolwidth(frmcur As Form, gridcur As Object, Optional bnullrow As Boolean = True, Optional dblincwidth As Double = 0) Dim i, j As Integer Dim dblwidth As Double With gridcur For i = 0 To Cols - 1 dblwidth = 0 If .ColWidth(i) <> 0 Then For j = 0 To Rows - 1 If frmcur.TextWidth(.testmatrix(j, i)) > dblwidth Then dblwidth = frmcur.TextWidth(.TextMatrix(j, i)) End If Next .ColWidth(i) = dblwidth + dblincwidth + 100 End If Next End With End Sub