哈工大 数学实验 大作业
哈工大有限元大作业
作业一一.计算程序和结果展示1.程序clearsyms a b c x E lD=E*pi*(b*x+c)^4/64;B(:,:,1)=[-6/l^2+12*x/l^3 4/l-6*x/l^2];B(:,:,2)=[6/l^2-12*x/l^3 ,2/l-6*x/l^2];n=0;for i=1:2for j=1:2n=n+1;f=B(:,:,i)*D*transpose(B(:,:,j));k(:,:,n)=int(f,x,0,l);endendk11=k(:,:,1);k12=k(:,:,2);k21=k(:,:,3);k22=k(:,:,4);K=[k11 k12;k21 k22];K=simple(K);2.结果(1)bx+cK =[ (3*pi*E*(11*b^4*l^4 + 49*b^3*c*l^3 + 84*b^2*c^2*l^2 + 70*b*c^3*l +35*c^4))/(560*l^3), -(pi*E*(19*b^4*l^4 + 84*b^3*c*l^3 + 147*b^2*c^2*l^2 + 140*b*c^3*l + 105*c^4))/(1120*l^2), -(3*pi*E*(11*b^4*l^4 + 49*b^3*c*l^3 + 84*b^2*c^2*l^2 + 70*b*c^3*l + 35*c^4))/(560*l^3), -(pi*E*(47*b^4*l^4 + 210*b^3*c*l^3 + 357*b^2*c^2*l^2 + 280*b*c^3*l + 105*c^4))/(1120*l^2)][ -(pi*E*(19*b^4*l^4 + 84*b^3*c*l^3 + 147*b^2*c^2*l^2 + 140*b*c^3*l +105*c^4))/(1120*l^2), (pi*E*(3*b^4*l^4 + 14*b^3*c*l^3 + 28*b^2*c^2*l^2 +35*b*c^3*l + 35*c^4))/(560*l), (pi*E*(19*b^4*l^4 + 84*b^3*c*l^3 + 147*b^2*c^2*l^2 +140*b*c^3*l + 105*c^4))/(1120*l^2), (pi*E*(13*b^4*l^4 + 56*b^3*c*l^3 +91*b^2*c^2*l^2 + 70*b*c^3*l + 35*c^4))/(1120*l)][ -(3*pi*E*(11*b^4*l^4 + 49*b^3*c*l^3 + 84*b^2*c^2*l^2 + 70*b*c^3*l +35*c^4))/(560*l^3), (pi*E*(19*b^4*l^4 + 84*b^3*c*l^3 + 147*b^2*c^2*l^2 + 140*b*c^3*l +105*c^4))/(1120*l^2), (3*pi*E*(11*b^4*l^4 + 49*b^3*c*l^3 + 84*b^2*c^2*l^2 +70*b*c^3*l + 35*c^4))/(560*l^3), (pi*E*(47*b^4*l^4 + 210*b^3*c*l^3 + 357*b^2*c^2*l^2 + 280*b*c^3*l + 105*c^4))/(1120*l^2)][ -(pi*E*(47*b^4*l^4 + 210*b^3*c*l^3 + 357*b^2*c^2*l^2 + 280*b*c^3*l +105*c^4))/(1120*l^2), (pi*E*(13*b^4*l^4 + 56*b^3*c*l^3 + 91*b^2*c^2*l^2 +70*b*c^3*l + 35*c^4))/(1120*l), (pi*E*(47*b^4*l^4 + 210*b^3*c*l^3 + 357*b^2*c^2*l^2 +280*b*c^3*l + 105*c^4))/(1120*l^2), (pi*E*(17*b^4*l^4 + 77*b^3*c*l^3 +133*b^2*c^2*l^2 + 105*b*c^3*l + 35*c^4))/(560*l)](2)ax^2+bx+c(将程序中D的直径换成“ax^2+bx+c”)K =[ (pi*E*(518*a^4*l^8+2233*a^3*b*l^7+2420*a^3*c*l^6+3630*a^2*b^2*l^6+7920*a^2*b*c*l^5 + 4356*a^2*c^2*l^4 +2640*a*b^3*l^5+8712*a*b^2*c*l^4+9702*a*b*c^2*l^3+3696*a*c^3*l^2 + 726*b^4*l^4 + 3234*b^3*c*l^3 + 5544*b^2*c^2*l^2 + 4620*b*c^3*l +2310*c^4))/(12320*l^3), -(pi*E*(938*a^4*l^8+4004*a^3*b*l^7+4290*a^3*c*l^6+6435*a^2*b^2*l^6+13860*a^2*b*c*l^ 5+7524*a^2*c^2*l^4+4620*a*b^3*l^5+15048*a*b^2*c*l^4+16632*a*b*c^2*l^3+6468*a*c^3*l ^2 +1254*b^4*l^4+5544*b^3*c*l^3+9702*b^2*c^2*l^2+9240*b*c^3*l+6930*c^4))/(73920*l^2), -(pi*E*(518*a^4*l^8 + 2233*a^3*b*l^7 + 2420*a^3*c*l^6 + 3630*a^2*b^2*l^6 +7920*a^2*b*c*l^5 + 4356*a^2*c^2*l^4 + 2640*a*b^3*l^5 + 8712*a*b^2*c*l^4 +9702*a*b*c^2*l^3 + 3696*a*c^3*l^2 + 726*b^4*l^4 + 3234*b^3*c*l^3 + 5544*b^2*c^2*l^2 + 4620*b*c^3*l + 2310*c^4))/(12320*l^3), -(pi*E*(2170*a^4*l^8 + 9394*a^3*b*l^7 +10230*a^3*c*l^6 + 15345*a^2*b^2*l^6 + 33660*a^2*b*c*l^5 + 18612*a^2*c^2*l^4 +11220*a*b^3*l^5 + 37224*a*b^2*c*l^4 + 41580*a*b*c^2*l^3 + 15708*a*c^3*l^2 +3102*b^4*l^4 + 13860*b^3*c*l^3 + 23562*b^2*c^2*l^2 + 18480*b*c^3*l +6930*c^4))/(73920*l^2)][ -(pi*E*(938*a^4*l^8 + 4004*a^3*b*l^7 + 4290*a^3*c*l^6 + 6435*a^2*b^2*l^6 + 13860*a^2*b*c*l^5 + 7524*a^2*c^2*l^4 + 4620*a*b^3*l^5 + 15048*a*b^2*c*l^4 +16632*a*b*c^2*l^3 + 6468*a*c^3*l^2 + 1254*b^4*l^4 + 5544*b^3*c*l^3 + 9702*b^2*c^2*l^2 + 9240*b*c^3*l + 6930*c^4))/(73920*l^2), (pi*E*(434*a^4*l^8 + 1848*a^3*b*l^7 + 1980*a^3*c*l^6 + 2970*a^2*b^2*l^6 + 6435*a^2*b*c*l^5 + 3564*a^2*c^2*l^4 +2145*a*b^3*l^5 + 7128*a*b^2*c*l^4 + 8316*a*b*c^2*l^3 + 3696*a*c^3*l^2 + 594*b^4*l^4 + 2772*b^3*c*l^3 + 5544*b^2*c^2*l^2 + 6930*b*c^3*l + 6930*c^4))/(110880*l),(pi*E*(938*a^4*l^8 + 4004*a^3*b*l^7 + 4290*a^3*c*l^6 + 6435*a^2*b^2*l^6 +13860*a^2*b*c*l^5 + 7524*a^2*c^2*l^4 + 4620*a*b^3*l^5 + 15048*a*b^2*c*l^4 +16632*a*b*c^2*l^3 + 6468*a*c^3*l^2 + 1254*b^4*l^4 + 5544*b^3*c*l^3 + 9702*b^2*c^2*l^2 + 9240*b*c^3*l + 6930*c^4))/(73920*l^2), (pi*E*(1946*a^4*l^8 + 8316*a^3*b*l^7 +8910*a^3*c*l^6 + 13365*a^2*b^2*l^6 + 28710*a^2*b*c*l^5 + 15444*a^2*c^2*l^4 +9570*a*b^3*l^5 + 30888*a*b^2*c*l^4 + 33264*a*b*c^2*l^3 + 12012*a*c^3*l^2 +2574*b^4*l^4 + 11088*b^3*c*l^3 + 18018*b^2*c^2*l^2 + 13860*b*c^3*l +6930*c^4))/(221760*l)][ -(pi*E*(518*a^4*l^8 + 2233*a^3*b*l^7 + 2420*a^3*c*l^6 +3630*a^2*b^2*l^6 + 7920*a^2*b*c*l^5 + 4356*a^2*c^2*l^4 + 2640*a*b^3*l^5 +8712*a*b^2*c*l^4 + 9702*a*b*c^2*l^3 + 3696*a*c^3*l^2 + 726*b^4*l^4 + 3234*b^3*c*l^3 +5544*b^2*c^2*l^2 + 4620*b*c^3*l + 2310*c^4))/(12320*l^3), (pi*E*(938*a^4*l^8 + 4004*a^3*b*l^7 + 4290*a^3*c*l^6 + 6435*a^2*b^2*l^6 + 13860*a^2*b*c*l^5 +7524*a^2*c^2*l^4 + 4620*a*b^3*l^5 + 15048*a*b^2*c*l^4 + 16632*a*b*c^2*l^3 +6468*a*c^3*l^2 + 1254*b^4*l^4 + 5544*b^3*c*l^3 + 9702*b^2*c^2*l^2 + 9240*b*c^3*l + 6930*c^4))/(73920*l^2), (pi*E*(518*a^4*l^8 + 2233*a^3*b*l^7 +2420*a^3*c*l^6 + 3630*a^2*b^2*l^6 + 7920*a^2*b*c*l^5 + 4356*a^2*c^2*l^4 +2640*a*b^3*l^5 + 8712*a*b^2*c*l^4 + 9702*a*b*c^2*l^3 + 3696*a*c^3*l^2 + 726*b^4*l^4 + 3234*b^3*c*l^3 + 5544*b^2*c^2*l^2 + 4620*b*c^3*l + 2310*c^4))/(12320*l^3),(pi*E*(2170*a^4*l^8 + 9394*a^3*b*l^7 + 10230*a^3*c*l^6 + 15345*a^2*b^2*l^6 +33660*a^2*b*c*l^5 + 18612*a^2*c^2*l^4 + 11220*a*b^3*l^5 + 37224*a*b^2*c*l^4 +41580*a*b*c^2*l^3 + 15708*a*c^3*l^2 + 3102*b^4*l^4 + 13860*b^3*c*l^3 +23562*b^2*c^2*l^2 + 18480*b*c^3*l + 6930*c^4))/(73920*l^2)][ -(pi*E*(2170*a^4*l^8 + 9394*a^3*b*l^7 + 10230*a^3*c*l^6 + 15345*a^2*b^2*l^6 +33660*a^2*b*c*l^5 + 18612*a^2*c^2*l^4 + 11220*a*b^3*l^5 + 37224*a*b^2*c*l^4 +41580*a*b*c^2*l^3 + 15708*a*c^3*l^2 + 3102*b^4*l^4 + 13860*b^3*c*l^3 +23562*b^2*c^2*l^2 + 18480*b*c^3*l + 6930*c^4))/(73920*l^2), (pi*E*(1946*a^4*l^8 +8316*a^3*b*l^7 + 8910*a^3*c*l^6 + 13365*a^2*b^2*l^6 + 28710*a^2*b*c*l^5 +15444*a^2*c^2*l^4 + 9570*a*b^3*l^5 + 30888*a*b^2*c*l^4 + 33264*a*b*c^2*l^3 +12012*a*c^3*l^2 + 2574*b^4*l^4 + 11088*b^3*c*l^3 + 18018*b^2*c^2*l^2 + 13860*b*c^3*l + 6930*c^4))/(221760*l), (pi*E*(2170*a^4*l^8 + 9394*a^3*b*l^7 + 10230*a^3*c*l^6 +15345*a^2*b^2*l^6 + 33660*a^2*b*c*l^5 + 18612*a^2*c^2*l^4 + 11220*a*b^3*l^5 +37224*a*b^2*c*l^4 + 41580*a*b*c^2*l^3 + 15708*a*c^3*l^2 + 3102*b^4*l^4 +13860*b^3*c*l^3 + 23562*b^2*c^2*l^2 + 18480*b*c^3*l + 6930*c^4))/(73920*l^2),(pi*E*(2282*a^4*l^8 + 9933*a^3*b*l^7 + 10890*a^3*c*l^6 + 16335*a^2*b^2*l^6 +36135*a^2*b*c*l^5 + 20196*a^2*c^2*l^4 + 12045*a*b^3*l^5 + 40392*a*b^2*c*l^4 +45738*a*b*c^2*l^3 + 17556*a*c^3*l^2 + 3366*b^4*l^4 + 15246*b^3*c*l^3 +26334*b^2*c^2*l^2 + 20790*b*c^3*l + 6930*c^4))/(110880*l)](3)b=0(等截面梁)K =[ (3*pi*E*c^4)/(16*l^3),-(3*pi*E*c^4)/(32*l^2),-(3*pi*E*c^4)/(16*l^3),-(3*pi*E*c^4)/(32*l^2)] [ -(3*pi*E*c^4)/(32*l^2), (pi*E*c^4)/(16*l), (3*pi*E*c^4)/(32*l^2), (pi*E*c^4)/(32*l)][ -(3*pi*E*c^4)/(16*l^3), (3*pi*E*c^4)/(32*l^2), (3*pi*E*c^4)/(16*l^3),(3*pi*E*c^4)/(32*l^2)] [ -(3*pi*E*c^4)/(32*l^2), (pi*E*c^4)/(32*l), (3*pi*E*c^4)/(32*l^2), (pi*E*c^4)/(16*l)]总结:将结果(3)与教材等截面梁刚度矩阵比较,发现表达式一样,侧面证明了程序的正确性。
哈工大测试技术大作业 锯齿波
Harbin Institute of Technology课程大作业说明书课程名称:机械工程测试技术基础设计题目:信号的分析与系统特性院系:班级:设计者:学号:指导教师:设计时间:2013/07/05哈尔滨工业大学目录1 题目:...................................................2 幅频谱和相频谱...........................................3 频率成分分布.............................................3.1 H(s)伯德图.........................................3.1.1 一阶系统伯德图...............................3.1.2二阶系统伯德图...............................4 讨论减小失真的措施.......................................4.1 一阶系统对特定频率影响.............................4.1.1 一阶系统Simulink仿真........................4.2 二阶系统输出响应分析...............................4.2.1 二阶阶系统Simulink仿真 .....................4.2.2 二阶系统响应输出............................. 参考文献...................................................1 题目:写出下列信号中的一种信号的数学表达通式,求取其信号的幅频谱图(单边谱和双边谱)和相频谱图,若将此信号输入给特性为传递函数为)(s H 的系统,试讨论信号参数的取值,使得输出信号的失真小。
哈尔滨工程大学数学上机实验
实验报告实验一:函数绘图实验1、实验目的利用数学软件绘制数学函数曲线及曲面,通过实验了解函数图形的绘制方法。
2、实验内容⑴在同一个图形中,绘制双曲线,以及的双曲线2条渐近线。
⑵在同一个图形中,绘制球面与锥面相交的曲面。
⑶自选题目:绘制一个或者多个平面图形、空间曲面图形。
3、程序设计及运行结果(1)>> x=-5:0.1:5;ezplot('x^2-y^2=1');y1=x;y2=-x;hold on;plot(xy1);hold on;plot(xy2);(2) >> x=-5:0.1:5;y=x;z=x;[xyz]=meshgrid(xyz);f1=x.^2+y.^2+z.^2-1;f2=x.^2+y.^2-z;p1=patch(isosurface(xyzf10));set(p1 'FaceColor' 'm');p2=patch(isosurface(xyzf20));set(p2 'FaceColor' 'w');(3)>> x=-5:0.1:5;y=x;z=x;[xyz]=meshgrid(xyz);f1=x.^2+y.^2+z.^2-9;f2=x.^2+y.^2-2*z;p1=patch(isosurface(xyzf10));set(p1 'FaceColor' 'm');p2=patch(isosurface(xyzf20));set(p2 'FaceColor' 'w');4、讨论与分析在本次试验中初步了解了matlab,学会了一些简单绘图,加深了对函数的理解为以后实验作个铺垫,由浅入深的了解matlab.实验二:微积分实验1、实验目的熟悉并了解使用数学软件,进行微积分问题计算的相关数学软件命令,让学生通过实验理解微积分,解决微积分计算上的问题。
哈工大_数学实验报告
数学实验报告实验一Matlab的使用1.上机实验各种数据输入方法:程序语句:a=[1 2 3;4 5 6 ;7,8,9] 程序语句:linspace(1,10,5) 等等…………计算结果:a = 计算结果:ans =1 2 34 5 6 1.0000 3.2500 5.5000 7.7500 10.00007 8 92.(1) (a)方法:(b) 方法:程序语句:程序语句:a=[-3 5 0 8;1 -8 2 -1;0 -5 9 3;-7 0 -4 5]; a=[-3 5 0 8;1 -8 2 -1;0 -5 9 3;-7 0 -4 5];b=[0;2;-1;6]; b=[0;2;-1;6];inv(a)*b a\b计算结果:计算结果:ans = ans =-0.6386 -0.6386-0.4210 -0.4210-0.3529 -0.35290.0237 0.0237(2) 4个矩阵的生成语句:矩阵a 的生成语句:e=eye(3,3); a=[e r;o s]r=rand(3,2); 验证语句:o=zeros(2,3); a^2s=diag([1,2]);%此为一个任取的2X2 矩阵b=[e r+r*s; o s^2]计算结果相同:ans =1.0000 0 0 1.9003 1.45790 1.0000 0 0.4623 2.67390 0 1.0000 1.2137 2.28630 0 0 1.0000 00 0 0 0 4.00003.生成多项式的语句:poly ([2,-3,1+2i,1-2i,0,-6])计算结果:ans = 1 5 -9 -1 72 -180 0 计算x=0.8,-x=-1.2 之值的指令与结果:指令:polyval([1,5,-9,-1,72,-180,0],0.8) 结果:ans= -100.2179指令:polyval([1,5,-9,-1,72,-180,0],-1.2) 结果:ans= 293.29004.求a的指令与结果:指令:a=compan([1,0,-6,3,-8])结果:a =0 6 -3 81 0 0 00 1 0 00 0 1 0求a的特征值的指令与结果:roots(p)的指令与结果为:指令:eig(a) 指令:roots([1,0,-6,3,-8])结果:结果:ans = ans =-2.8374 -2.83742.4692 2.46920.1841 + 1.0526i 0.1841 + 1.0526i0.1841 - 1.0526i 0.1841 - 1.0526i结论:利用友元阵函数a=company(p) 和eig(a) 可以与roots(p)有相同的作用,结果相同。
哈尔滨工程大学数值分析大作业2014-附fortran程序
B班大作业要求:1。
使用统一封皮;2。
上交大作业内容包含:一摘要二数学原理三程序设计(必须对输入变量、输出变量进行说明;编程无语言要求,但程序要求通过)四结果分析和讨论五完成题目的体会与收获3. 提交大作业的时间:本学期最后一次课,或考前答疑;过期不计入成绩;4。
提交方式:打印版一份;或手写大作业,但必须使用A4纸.5。
撰写的程序需打印出来作为附录。
课程设计课程名称:设计题目:学号:姓名:完成时间:题目一:非线性方程求根 一 摘要非线性方程的解析解通常很难给出,因此非线性方程的数值解就尤为重要。
本实验通过使用常用的求解方法二分法和Newton 法及改进的Newton 法处理几个题目,分析并总结不同方法处理问题的优缺点.观察迭代次数,收敛速度及初值选取对迭代的影响。
用Newton 法计算下列方程(1) 310x x --= , 初值分别为01x =,00.45x =,00.65x =;(2) 32943892940x x x +-+= 其三个根分别为1,3,98-。
当选择初值02x =时给出结果并分析现象,当6510ε-=⨯,迭代停止。
二 数学原理对于方程f(x )=0,如果f(x )是线性函数,则它的求根是很容易的。
牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程f(x )=0逐步归结为某种线性方程来求解。
设已知方程f (x )=0有近似根x k (假定k f'(x )0≠) ,将函数f (x)在点x k 进行泰勒展开,有k k k f(x)f(x )+f'(x )(x-x )+≈⋅⋅⋅于是方程f(x )=0可近似的表示为k k k f(x )+f'(x )(x-x )=0这是个线性方程,记其根为x k+1,则x k+1的计算公式为k+1k ()x =x -'()k k f x f x ,k=0,1,2,…这就是牛顿迭代法或简称牛顿法.三 程序设计(本程序由Fortran 语言编制)(1)对于310x x --=,按照上述数学原理,编制的程序如下program newton implicit nonereal :: x (0:50),fx (0:50),f1x(0:50)!分别为自变量x ,函数f(x)和一阶导数f1(x) integer :: kwrite(*,*) ”x(0)=”read (*,*) x (0) !输入变量:初始值x (0)open (10,file='1。
哈工大实验方法第一次大作业概要
哈尔滨工业大学试验方法及数字信号处理分析————第一次大作业数字滤波器设计指导老师:包钢学生姓名:陈方鑫学生学号:15S008043第一部分 作业题目一、设计题目1、杂波信号:()sin(210)sin(280)sin(2200)t x t t t πππ=⨯+*+⨯2、要求:(1)绘出杂波信号波形。
(2)分别用FIR IIR 滤波器设计低通和带通滤波器,保留10Hz ,80Hz 频率。
绘出滤波后波形,并与理想波形比较。
(3)在原信号加上白噪声信号,再比较分析。
第二部分 具体设计内容第一节 卷积滤波器的设计一、低通滤波1、低通滤波器参数计算 (1)FIR 滤波频率响应:212()N j fi t i i N H f f e π∆-=-=∑…………①(2)低通期望频率响应:1;0()0;0,f FH f f f F≤≤=≤≥………②(3)通过①、②计算滤波因子 当0i =时,'2f F t ∆= 当0i ≠时,sin(2)'Fi t f iππ=取'f f =可得近似理想低通滤波器:21N k i k ii N y f x -=-=∑(4)由于题目x (t )的最高频率fmax=200。
基于采样定理,f’>2fmax=400。
本例取f’=5fmax=1000。
故 t=0.001s。
2、设计程序程序参数:1t t;F=低通截止频率;t=0:10^-3:0.5;t1=10^-3;F=20;x=sin(2*pi*10*t)+sin(2*pi*80*t)+sin(2*pi*200*t);x1=sin(2*pi*10*t);f(1)=2*F*t1;i=2;while i<60f(i)=sin(2*pi*F*i*t1)/(pi*i);i=i+1;endfor k=61:440y(k)=0;for i=1:60;y(k)=f(i)*(x(k-i)+x(k+i))+y(k);endendy(length(t))=0;plot(t,x,'r',t,x1,'b',t,y,'k');legend('原图','理想图','滤波图');title('F=20');xlabel('x');ylabel('y');3、结果分析F=15放大图放大图放大图分析:上图展示了FIR 低通滤波的总体情况,并分别对F 取15,20,30值时做了对比研究。
哈工大误差分析大作业
《误差理论与数据处理》小作业姓名:崔晓蒙学号:1110811005班级:1108110班学院:机电工程学院日期:2015年 4月日《误差理论与数据处理》小作业姓名:崔晓蒙学号:1110811005班级:1108110班学院:机电工程学院作业目的:使学生充分了解误差的性质,学会数据处理方法。
通过对测量精度的分析和计算,解决误差的合理分配问题,达到在最经济的条件下,得到最理想的设计和测量结果。
作业内容:自拟一个与误差原理相关的选题要求:1、结合工程实践的实际问题2、理论联系实际3、运用基本理论分析和计算作业要求:1、题目要适当2、基本格式:封页标题(黑体小三居中):字数不超过20字摘要(黑体五号):概述论文的核心内容(宋体五号)作业正文(宋体五号),字数不少于1500字3、作业统一采用A4纸,单面打印,左侧装订4、必须独立完成作业,教师审查后评定成绩占课程总成绩的20%量块测量的极限误差摘要:量块是由两个相互平行的测量面之间的距离来确定其工作长度的高精度量具,其检测条件是:温度20℃;大气压力101.325KPa;水蒸汽压力(湿度)1.333KPa。
而在温度、湿度、大气压等等条件有偏差时候,给测量也会带来一定的误差,本次通过在温度有一定波动的条件下测量量块的长度,求这种测量方法的极限误差和最终的测量结果。
关键词:量块、极限误差、测量结果、温度。
(一)工程案例:长度等于或小于100mm的量块,测量或使用其长度时,量块的轴线可竖直或水平安装。
长度大于100mm的量块,测量或使用其长度时,量块的轴线应水平安装,这时,量块一个较窄的侧面放置在分别距量块两端侧量面各为0.211×L的两个横放的支柱上。
本次在立式光学比较仪上鉴定L0=10mm 的量块。
所用基准量块4 等,其中心长度的实际偏差-0.1μm,检定的极限误差δlim1=±0.2μm。
测量时恒温条件为t=20±2º。
哈工大数值分析报告上机实验报告
实验报告一题目: Gauss 列主元消去法摘要:求解线性方程组地方法很多,主要分为直接法和间接法.本实验运用直接法地Guass 消去法,并采用选主元地方法对方程组进行求解.前言:(目地和意义)1. 学习Gauss 消去法地原理.2. 了解列主元地意义.3. 确定什么时候系数阵要选主元数学原理:由于一般线性方程在使用Gauss 消去法求解时,从求解地过程中可以看到,若)1(-k kk a =0,则必须进行行交换,才能使消去过程进行下去.有地时候即使≠-)1(k kk a 0,但是其绝对值非常小,由于机器舍入误差地影响,消去过程也会出现不稳定得现象,导致结果不正确.因此有必要进行列主元技术,以最大可能地消除这种现象.这一技术要寻找行r ,使得)1()1(max ||->-=k ik ki k rk a a 并将第r 行和第k 行地元素进行交换,以使得当前地)1(-k kk a 地数值比0要大地多.这种列主元地消去法地主要步骤如下:1. 消元过程对k =1,2,…,n -1,进行如下步骤.1) 选主元,记ik ki rk a a >=max || 若||rk a 很小,这说明方程地系数矩阵严重病态,给出警告,提示结果可能不对.2) 交换增广阵A 地r ,k 两行地元素.kj rj a a ↔ (j=k,…,n +1)3) 计算消元kk kj ik ij ij a a a a a /-= (i=k+1,…,n ; j =k +1,……,n +1)2. 回代过程对k = n , n -1,…,1,进行如下计算)/(11,∑-=+-=nk j kk j kj n k k a x a a x至此,完成了整个方程组地求解.程序设计:本实验采用Matlab地M文件编写.Gauss消去法源程序:cleara=input('输入系数阵:>>\n')b=input('输入列阵b:>>\n')n=length(b);A=[a b]x=zeros(n,1);%%%函数主体for k=1:n-1;%%%是否进行主元选取if abs(A(k,k))<yipusilong;%事先给定地认为有必要选主元地小数yzhuyuan=1;else yzhuyuan=0;endif yzhuyuan;%%%%选主元t=A(k,k);for r=k+1:n;if abs(A(r,k))>abs(t)p=r;else p=k;endend%%%交换元素if p~=k;for q=k:n+1;s=A(k,q);A(k,q)=A(p,q);A(p,q)=s;endendend%%%判断系数矩阵是否奇异或病态非常严重if abs(A(k,k))< yipusilongdisp(‘矩阵奇异,解可能不正确’)end%%%%计算消元,得三角阵for r=k+1:n;m=A(r,k)/A(k,k);for q=k:n+1;A(r,q)=A(r,q)-A(k,q)*m;endendend%%%%求解xx(n)=A(n,n+1)/A(n,n);for k=n-1:-1:1;s=0;for r=k+1:n;s=s+A(k,r)*x(r);endt=(A(k,n+1)-s)x(k)=(A(k,n+1)-s)/A(k,k)end结果分析和讨论:例:求解方程⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡321643.5072.12-623.4712.31-32108-z y x .求解地结果为:x =[]367257386.0,05088607.0-49105822.0-, 例:求解方程⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡73109104-10172-42-4z y x 求得地结果为:x =[]857142857.1,89285714.0-196428571.0, 结论:采用Gauss 消去法时,如果在消元时对角线上地元素始终较大(假如大于10-5),那么本方法不需要进行列主元计算,计算结果一般就可以达到要求,否则必须进行列主元这一步,以减少机器误差带来地影响,使方法得出地结果正确.实验报告二题目: Rung 现象产生和克服摘要:由于高次多项式插值不收敛,会产生Runge 现象,本实验在给出具体地实例后,采用分段线性插值和三次样条插值地方法有效地克服了这一现象,而且还取地很好地插值效果.前言:(目地和意义)1. 深刻认识多项式插值地缺点.2. 明确插值地不收敛性怎样克服.3. 明确精度与节点和插值方法地关系.数学原理:在给定n+1个节点和相应地函数值以后构造n 次地Lagrange 插值多项式,实验结果表明(见后面地图)这种多项式并不是随着次数地升高对函数地逼近越来越好,这种现象就是Rung 现象.解决Rung 现象地方法通常有分段线性插值、三次样条插值等方法.分段线性插值:设在区间[a, b ]上,给定n+1个插值节点a=x 0<x 1<…<x n =b和相应地函数值y 0,y 1,…,y n ,,求作一个插值函数)(x φ,具有如下性质:1) j j y x =)(φ,j=0,1,…,n .2) )(x φ在每个区间[x i , x j ]上是线性连续函数.则插值函数)(x φ称为区间[a, b ]上对应n 个数据点地分段线性插值函数.三次样条插值:给定区间[a, b ]一个分划⊿:a=x 0<x 1<…<x N =b若函数S(x)满足下列条件:1) S(x)在每个区间[x i , x j ]上是不高于3次地多项式.2) S(x)及其2阶导数在[a, b ]上连续.则称S(x)使关于分划⊿地三次样条函数. 程序设计流程:本实验采用Matlab 地M 文件编写.其中待插值地方程写成function 地方式,如下function y=f(x);y=1/(1+25*x*x );写成如上形式即可,下面给出主程序Lagrange 插值源程序:n=input('将区间分为地等份数输入:\n');s=[-1+2/n*[0:n]];%%%给定地定点,Rf为给定地函数x=-1:0.01:1;f=0;for q=1:n+1;l=1;%求插值基函数for k=1:n+1;if k~=q;l=l.*(x-s(k))./(s(q)-s(k));elsel=l;endendf=f+Rf(s(q))*l;%求插值函数endplot(x,f,'r')%作出插值函数曲线grid onhold on分段线性插值源程序clearn=input('将区间分为地等份数输入:\n');s=[-1+2/n*[0:n]];%%%给定地定点,Rf为给定地函数m=0;hh=0.001;for x=-1:hh:1;ff=0;for k=1:n+1;%%%求插值基函数switch kcase 1if x<=s(2);l=(x-s(2))./(s(1)-s(2));elsel=0;endcase n+1if x>s(n);l=(x-s(n))./(s(n+1)-s(n));elsel=0;endotherwiseif x>=s(k-1)&x<=s(k);l=(x-s(k-1))./(s(k)-s(k-1));else if x>=s(k)&x<=s(k+1);l=(x-s(k+1))./(s(k)-s(k+1));elsel=0;endendendff=ff+Rf(s(k))*l;%%求插值函数值endm=m+1;f(m)=ff;end%%%作出曲线x=-1:hh:1;plot(x,f,'r');grid onhold on三次样条插值源程序:(采用第一边界条件)clearn=input('将区间分为地等份数输入:\n');%%%插值区间a=-1;b=1;hh=0.001;%画图地步长s=[a+(b-a)/n*[0:n]];%%%给定地定点,Rf为给定地函数%%%%第一边界条件Rf"(-1),Rf"(1)v=5000*1/(1+25*a*a)^3-50/(1+25*a*a)^4;for k=1:n;%取出节点间距h(k)=s(k+1)-s(k);endfor k=1:n-1;%求出系数向量lamuda,miula(k)=h(k+1)/(h(k+1)+h(k));miu(k)=1-la(k);end%%%%赋值系数矩阵Afor k=1:n-1;for p=1:n-1;switch pcase kA(k,p)=2;case k-1A(k,p)=miu(p+1);case k+1A(k,p)=la(p-1);otherwiseA(k,p)=0;endendend%%%%求出d阵for k=1:n-1;switch kcase 1d(k)=6*f2c([s(k) s(k+1) s(k+2)])-miu(k)*v;case n-1d(k)=6*f2c([s(k) s(k+1) s(k+2)])-la(k)*v;otherwised(k)=6*f2c([s(k) s(k+1) s(k+2)]);endend%%%%求解M阵M=A\d';M=[v;M;v];%%%%m=0;f=0;for x=a:hh:b;if x==a;p=1;elsep=ceil((x-s(1))/((b-a)/n));endff1=0;ff2=0;ff3=0;ff4=0;m=m+1;ff1=1/h(p)*(s(p+1)-x)^3*M(p)/6;ff2=1/h(p)*(x-s(p))^3*M(p+1)/6;ff3=((Rf(s(p+1))-Rf(s(p)))/h(p)-h(p)*(M(p+1)-M(p))/6)*(x-s(p));ff4=Rf(s(p))-M(p)*h(p)*h(p)/6;f(m)=ff1+ff2+ff3+ff4 ;end%%%作出插值图形x=a:hh:b;plot(x,f,'k')hold ongrid on结果分析和讨论: 本实验采用函数22511)(xx f +=进行数值插值,插值区间为[-1,1],给定节点为 x j =-1+jh ,h=0.1,j =0,…,n .下面分别给出Lagrang e 插值,三次样条插值,线性插值地函数曲线和数据表.图中只标出Lagrang e 插值地十次多项式地曲线,其它曲线没有标出,从数据表中可以看出具体地误差.表中,L10(x)为Lagrang e插值地10次多项式,S10(x),S40(x)分别代表n=10,40地三次样条插值函数,X10(x),X40(x)分别代表n=10,40地线性分段插值函数.x f(x)L10(x)S10(x) S40(x) X10(x) X40(x) -1.00000000000000 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 -0.95000000000000 0.04244031830239 1.92363114971920 0.04240833151040 0.04244031830239 0.04355203619910 0.04244031830239 -0.90000000000000 0.04705882352941 1.57872099034926 0.04709697585458 0.04705882352941 0.04864253393665 0.04705882352941 -0.85000000000000 0.05245901639344 0.71945912837982 0.05255839923979 0.05245901639344 0.05373303167421 0.05245901639344 -0.80000000000000 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 -0.75000000000000 0.06639004149378 -0.23146174989674 0.06603986172744 0.06639004149378 0.06911764705882 0.06639004149378 -0.70000000000000 0.07547169811321 -0.22619628906250 0.07482116198866 0.07547169811321 0.07941176470588 0.07547169811321 -0.65000000000000 0.08648648648649 -0.07260420322418 0.08589776360849 0.08648648648649 0.08970588235294 0.08648648648649 -0.60000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 -0.55000000000000 0.11678832116788 0.21559187891257 0.11783833017713 0.11678832116788 0.12500000000000 0.11678832116788 -0.50000000000000 0.13793103448276 0.25375545726103 0.14004371555730 0.13793103448276 0.15000000000000 0.13793103448276 -0.45000000000000 0.16494845360825 0.23496854305267 0.16722724315883 0.16494845360825 0.17500000000000 0.16494845360825 -0.40000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 -0.35000000000000 0.24615384615385 0.19058046675376 0.24054799403464 0.24615384615385 0.27500000000000 0.24615384615385 -0.30000000000000 0.30769230769231 0.23534659131080 0.29735691695860 0.30769230769231 0.35000000000000 0.30769230769231 -0.25000000000000 0.39024390243902 0.34264123439789 0.38048738140327 0.39024390243902 0.42500000000000 0.39024390243902 -0.20000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 -0.15000000000000 0.64000000000000 0.67898957729340 0.65746969368431 0.64000000000000 0.62500000000000 0.64000000000000 -0.10000000000000 0.80000000000000 0.84340742982890 0.82052861660828 0.80000000000000 0.75000000000000 0.80000000000000 -0.05000000000000 0.94117647058824 0.95862704866073 0.94832323122810 0.94117647058824 0.87500000000000 0.941176470588240 1.00000000000000 1.00000000000000 1.00000000000000 1.00000000000000 1.000000000000001.000000000000000.05000000000000 0.94117647058824 0.95862704866073 0.94832323122810 0.94117647058824 0.87500000000000 0.941176470588240.10000000000000 0.80000000000000 0.84340742982890 0.82052861660828 0.80000000000000 0.75000000000000 0.800000000000000.15000000000000 0.64000000000000 0.67898957729340 0.65746969368431 0.64000000000000 0.62500000000000 0.640000000000000.20000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.500000000000000.25000000000000 0.39024390243902 0.34264123439789 0.38048738140327 0.39024390243902 0.42500000000000 0.390243902439020.30000000000000 0.30769230769231 0.23534659131080 0.29735691695860 0.30769230769231 0.350000000000000.307692307692310.35000000000000 0.24615384615385 0.19058046675376 0.24054799403464 0.24615384615385 0.27500000000000 0.246153846153850.40000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.20000000000000 0.200000000000000.45000000000000 0.16494845360825 0.23496854305267 0.16722724315883 0.16494845360825 0.17500000000000 0.164948453608250.50000000000000 0.13793103448276 0.25375545726103 0.14004371555730 0.13793103448276 0.15000000000000 0.137931034482760.55000000000000 0.11678832116788 0.21559187891257 0.11783833017713 0.11678832116788 0.12500000000000 0.116788321167880.60000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.10000000000000 0.100000000000000.65000000000000 0.08648648648649 -0.07260420322418 0.08589776360849 0.08648648648649 0.08970588235294 0.086486486486490.70000000000000 0.07547169811321 -0.22619628906250 0.07482116198866 0.07547169811321 0.07941176470588 0.075471698113210.75000000000000 0.06639004149378 -0.23146174989674 0.06603986172744 0.06639004149378 0.06911764705882 0.066390041493780.80000000000000 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.05882352941176 0.058823529411760.85000000000000 0.05245901639344 0.71945912837982 0.05255839923979 0.05245901639344 0.05373303167421 0.052459016393440.90000000000000 0.04705882352941 1.57872099034926 0.04709697585458 0.04705882352941 0.04864253393665 0.047058823529410.95000000000000 0.04244031830239 1.92363114971920 0.04240833151040 0.04244031830239 0.04355203619910 0.042440318302391.00000000000000 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154 0.03846153846154从以上结果可以看到,用三次样条插值和线性分段插值,不会出现多项式插值是出现地Runge现象,插值效果明显提高.进一步说,为了提高插值精度,用三次样条插值和线性分段插值是可以增加插值节点地办法来满足要求,而用多项式插值函数时,节点数地增加必然会使多项式地次数增加,这样会引起数值不稳定,所以说这两种插值要比多项式插值好地多.而且在给定节点数地条件下,三次样条插值地精度要优于线性分段插值,曲线地光滑性也要好一些.实验报告三题目: 多项式最小二乘法摘要:对于具体实验时,通常不是先给出函数地解析式,再进行实验,而是通过实验地观察和测量给出离散地一些点,再来求出具体地函数解析式.又因为测量误差地存在,实际真实地解析式曲线并不一定通过测量给出地所有点.最小二乘法是求解这一问题地很好地方法,本实验运用这一方法实现对给定数据地拟合. 前言:(目地和意义)1. 学习使用最小二成法地原理2. 了解法方程地特性 数学原理:对于给定地测量数据(x i ,f i )(i=1,2,…,n ),设函数分布为∑==mj j j x a x y 0)()(ϕ特别地,取)(x j ϕ为多项式j j x x =)(ϕ (j=0, 1,…,m )则根据最小二乘法原理,可以构造泛函∑∑==-=n i mj i j j i m x a f a a a H 110))((),,,(ϕ令0=∂∂ka H(k=0, 1,…,m ) 则可以得到法方程⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡),(),(),(),(),(),(),(),(),(),(),(),(1010101111000100m m m m m m m m f f f a a a ϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕ求该解方程组,则可以得到解m a a a ,,,10 ,因此可得到数据地最小二乘解∑=≈mj j j x a x f 0)()(ϕ程序设计:本实验采用Matlab 地M 文件编写.其中多项式函数j j x =ϕ写成function 地方式,如下function y=fai(x,j)y=1;for i=1:jy=x.*y;end写成如上形式即可,下面给出主程序.多项式最小二乘法源程序clear%%%给定测量数据点(s,f)s=[3 4 5 6 7 8 9];f=[2.01 2.98 3.50 5.02 5.47 6.02 7.05];%%%计算给定地数据点地数目n=length(f);%%%给定需要拟合地数据地最高次多项式地次数m=10;%%%程序主体for k=0:m;g=zeros(1,m+1);for j=0:m;t=0;for i=1:n;%计算内积(fai(si),fai(si))t=t+fai(s(i),j)*fai(s(i),k);endg(j+1)=t;endA(k+1,:)=g;%法方程地系数矩阵t=0;for i=1:n;%计算内积(f(si),fai(si))t=t+f(i)*fai(s(i),k);endb(k+1,1)=t;enda=A\b%求出多项式系数x=[s(1):0.01:s(n)]';y=0;for i=0:m;y=y+a(i+1)*fai(x,i);endplot(x,y)%作出拟合成地多项式地曲线grid onhold onplot(s,f,'rx') %在上图中标记给定地点结果分析和讨论:例用最小二乘法处理下面地实验数据.并作出)f地近似分布图.(x分别采用一次,二次和五次多项式来拟合数据得到相应地拟合多项式为:y1=-0.38643+0.82750x;y2=-1.03024+1.06893x-0.02012x2;y5=-50.75309+51.53527x-19.65947x2+3.66585x3-0.32886x4+0.01137x5;分别作出它们地曲线图,图中点划线为y1曲线,实线为y2曲线,虚线为y5曲线.’x’为给定地数据点.从图中可以看出并不是多项式次数越高越好,次数高了,曲线越能给定点处和实际吻合,但别地地方就很差了.因此,本例选用一次和两次地多项式拟合应该就可以了.实验报告四题目: Romberg 积分法摘要:对于实际地工程积分问题,很难应用Newton-Leibnitz 公式去求解.因此应用数值方法进行求解积分问题已经有着很广泛地应用,本文基于Romberg 积分法来解决一类积分问题.前言:(目地和意义)1. 理解和掌握Romberg 积分法地原理;2. 学会使用Romberg 积分法;3. 明确Romberg 积分法地收敛速度及应用时容易出现地问题. 数学原理:考虑积分⎰=ba dx x f f I )()(,欲求其近似值,通常有复化地梯形公式、Simpsion公式和Cotes 公式.但是给定一个精度,这些公式达到要求地速度很缓慢.如何提高收敛速度,自然是人们极为关心地课题.为此,记T 1,k 为将区间[a,b ]进行2k 等分地复化地梯形公式计算结果,记T 2,k 为将区间[a,b ]进行2k 等分地复化地Simpsion 公式计算结果,记T 3,k 为将区间[a,b ]进行2k 等分地复化地Cotes 公式计算结果.根据Richardson 外推加速方法,可以得到收敛速度较快地Romberg 积分法.其具体地计算公式为: 1. 准备初值,计算)]()([21,1b f a f ba T +-=2. 按梯形公式地递推关系,计算∑-=-+-+-+-+=1201,11,11))5.0(2(221k i k k k k i ab a f a b T T 3. 按Romberg 积分公式计算加速值1441,11,11,--=----+---m mk m m k m m m k m T T T m=2,…,k4. 精度控制.对给定地精度R ,若R T T m m <--1,11,则终止计算,并取1,m T 为所求结果;否则返回2重复计算,直至满足要求地精度为止. 程序设计:本实验采用Matlab 地M 文件编写.其中待积分地函数写成function 地方式,例如如下function yy=f(x,y); yy=x.^3;写成如上形式即可,下面给出主程序Romberg 积分法源程序%%% Romberg 积分法 clear%%%积分区间 b=3; a=1;%%%精度要求 R=1e-5;%%%应用梯形公式准备初值 T(1,1)=(b-a)*(f(b)+f(a))/2; T(1,2)=T(1,1)/2+(b-a)/2*f((b+a)/2); T(2,1)=(4*T(1,2)-T(1,1))/(4-1); j=2; m=2;%%%主程序体%%%while(abs(T(m,1)-T(m-1,1))>R);%%%精度控制 j=j+1; s=0;for p=1:2^(j-2);s=s+f(a+(2*p-1)*h/(2^(j-1))); endT(1,j)=T(1,j-1)/2+h*s/(2^(j-1)); %%%梯形公式应用 for m=2:j; k=(j-m+1);T(m,k)=((4^(m-1))*T(m-1,k+1)-T(m-1,k))/(4^(m-1)-1); end end%%%给出 Romberg 积分法地函数表 I=T(m,1)结果分析和讨论: 1. 求积分dx x10063.精确解I= 24999676.运行程序得Romberg 积分法地函数表为1.0e+007 *4.70101520000000 3.05022950000000 2.63753307500000 2.49996760000000 2.49996760000000 0 2.49996760000000 0 0由函数表知Romberg 积分给出地结果为2.4999676*10^7,与精确没有误差,精度很高.2. 求积分dx xx⎰10sin . 直接按前面方法进行积分,会发现系统报错,出现了0为除数地现象.出现这种情况地原因就是当x=0时,被积函数分母出现0,如果用一个适当地小数ε(最好不要小于程序给定地最小误差值,但不能小于机器地最大精度)来代替可以避免这个问题.本实验取R =ε,可得函数表为:0.92073548319659 0.93979327500190 0.94451351171417 0.94569085359489 0.94598501993743 0.94614587227034 0.94608692395160 0.94608330088846 0.94608307538495 0 0.94608299406368 0.94608305935092 0.94608306035138 0 0 0.94608306038722 0.94608306036726 0 0 0 0.94608306036718 0 0 0 0故该函数地积分为0.94608306036718,取8位有效数字.3. 求积分dx x ⎰12sin本题地解析解很难给出,但运用Romberg 积分可以很容易给出近似解,函数表为:0.42073549240395 0.33406972582924 0.31597536075922 0.31168023948094 0.31062036680949 0.31035626065456 0.30518113697100 0.30994390573588 0.31024853238818 0.31026707591900 0.31026822526959 0 0.31026142365354 0.31026884083167 0.31026831215439 0.31026830189296 0 0 0.31026895856465 0.31026830376269 0.31026830173008 0 0 0 0.31026830119484 0.31026830172211 0 0 0 0 0.31026830172262 0 0 0 0 0故该函数地积分为0.31026830172262,取8位有效数字.结论:Romberg 积分通常要求被积函数在积分区间上没有奇点.如有奇点,且奇点为第一间断点,那么采用例3地方法,还是能够求出来地,否则,必须采用其它地积分方法.当然,Romberg 积分地收敛速度还是比较快地.。
哈工大数学实验大作业题目
问题描述
详见 “产销差的考核办法及措施—201604.doc”的说明。
作业要求
① 针对附件中的需求说明和问题描述,建立供水企业产销差考核的数学模型, 提出合理的措施和解决方案; ② 编制MATLAB程序,实现你建立的数学模型; ③ 形成详细的实验报告和实验数据的分析,并讨论模型的精度进行比较分析。 ④ 测试数据以附件中问题描述中的数据为准。
时避免了因盲目布放造成的不必要的损失,并且为银行提供及时、 有效、科学的辅助决策支持,摒弃了之前“拍脑门”的形式,避 免了设置网点的盲目性和随意性。 4
作业要求
① 针对银行网点和ATM选址问题,建立合理的数学优化模型; ② 针对上述选址模型,编制MATLAB程序,实现你设计的相应算 法; ③ 形成详细的实验报告,并有实验数据的分析。 ④ 测试数据及模型所需的各种输入条件和参数均可自行虚拟。 ⑤ 提交的内容包括:实验报告电子版、纸质版、源程序(必要的 注释)、测试数据。
7
大型复杂供水管网的等效简化问题
问题描述
城市供水管网的拓扑结构可以视为一张连通图,所有的分析 和计算及应用均基于该连通图进行。然而,图的规模可能非常庞 大,在计算和分析过程中需要耗费大量的计算资源,难以实现实 时应用。如何建立有效的简化算法,使得管网规模变小从而加速 计算和应用分析效率。
作业要求
5
银行网点选址算法的评价
问题描述
通过查找和阅读文献,详细综述至少两种银行网点选址算法。 建立自己的评价体系,对你所选择的其他文献中提出的多种已有 算法进行评价,找出你认为较好的算法。
作业要求
① 针对银行网点选址算法的评价问题,建立合理的评价指标体系和评价模型 (可综述分析得到选址依据,再建立模型); ② 针对上述评价体系和评价模型,编制MATLAB程序,实现你设计的评价体 系和算法; ③ 形成详细的实验报告,并有实验数据的分析,对你所选择额的网点选址算 法的优劣(选址效果)进行评述。 ④ 测试数据及模型所需的各种输入条件和参数均可自行虚拟。 ⑤ 提交的内容包括:实验报告电子版、纸质版、源程序(必要的注释)、测 试数据。
哈工大研究生数理统计小论文大作业
数理统计大作业一、100个男同学身高样本统计分析本例通过对100个男同学的身高测量,得到了男同学身高的统计样本,身高样本从小到大排列如下表所示:表1. 身高样本表1、身高样本直方图的绘制把身高区段分成了10段,每段所含的人数进行列表如下:表2. 身高样本分段表根据上表画出容量为100的身高样本直方图如下图所示:图1. 身高样本直方图由身高样本分布直方图可以看出,身高分布大致呈正态分布,以下将给出证明。
2、箱型图的绘制由100个男同学的身高统计样本可以得到,样本中位数为cm 45.1752/)5.1754.175(=+样本第第一四分位数为172.83cm 172.8)/4-(172.972.81=+ 样本第三四分位数为178.35cm 3/4178.2)-(178.478.21=⨯+ 根据以上数据画样本分布箱型图为:图2. 身高样本箱型图由箱型图可以看出,样本基本相对于中位数对称,分布范围处于165-185之间,没有离群点,符合正态分布的特征。
二、利用2χ拟合优度检验法检验样本的分布函数根据样本直方图和箱型图,试猜想总体分布符合正态分布,设样本身高为X ,则),(2σμN X -,则要检验假设⎪⎪⎭⎫⎝⎛--=2202)(exp 21)(:σμσπx X P H 150160170180190155165175185身高(cm )μ的最大似然估计为45.175=X ,2σ的最大似然估计为98.15)(100121001*2=-=∑=X X Mii上面已经把抽样得到的容量为100的样本分为10个互不相容的区间,由于2χ拟合优度检验法要求每个互不相容的事件至少有4-6个事件所以分为8个事件如下表表3.其中每个事件的概率i P 可根据标准正态分布的计算结果查表取得,样本频率即每个区间的样本数除以样本总数100得到。
则检验统计量392.1ˆ)ˆ(ˆ122=-=∑=mi i i i p n p n νχ,由于)218(ˆ22---χχ即)5(ˆ22χχ-,若05.0=α,则75.16)5(205.0=χ,由于75.16392.1<,故接受⎪⎪⎭⎫⎝⎛--=2202)(exp 21)(:σμσπx X P H即样本服从正态分布。
哈工大数学实验课大作业
任意点投篮问题的研究
本实验灵感来源于《数学实验》第八章第一节投篮角度问题,制作了一个模拟空间(任意点投篮)或平面(定点投射)中不同球速和角度投篮的效果。
空间中任意一点投篮
取篮筐坐标选择国际标准篮筐的高度,坐标为(0,0,3.05)
在水平方向上,设投篮点与原点距S,且有s=x2+y2
投篮速度为v,角度
水平方向:v
水平
=v×sinθ
竖直方向:v z=v×sinθ
由于vs=x2+v y2
利用矢量合成,得v x=x
s ×v
水平
=
22
×v x2+v y2
v y=y
×v
水平
=
y
x2+y2
×v x2+v y2
所以最终运动轨迹:
x=x0−v x×t
y=y0−v y×t
z=z0−1
×g×t2
其中,t=s0− x2+y2
v
水平
固定点投篮(如罚球)
篮筐坐标为(0,3.05)(理由同上)
在水平方向上,设投篮点与原点距L,则
投篮速度为v,角度 ;则在水平方向:v x=v×cosθ竖直方向:v y=v×sinθ
所以最终运动轨迹:
x=h−v x×t
y=v y×t−1
2
×g×t2
其中,t=ℎ−x
v x。
哈工大材料力学上机大作业
材料力学上机实验作业组合截面几何性质计算指导教师:王秋生班级:学号:姓名:题目3:组合截面几何性质计算输入:1.各几何图形形状(圆形、矩形)及个数2.截面参数输入(形状、尺寸及位置)即圆截面-d,圆心位置;圆环截面-D,d,圆心位置;矩形截面h,b,形心位置输出:1.截面构形图2.形心位置坐标(图示)3.在形心坐标系下画出主轴,计算主惯性矩程序说明:本程序用于计算材料截面几何量,是使用VB编程语言汇编而成。
进入程序后,可选择三种模式:1.常用模式(此模式用于计算常用正多边形的几何量)2.直线模式,此模式下可利用线段绘制多边形(包括镂空多边形及多个不相交的多边形)3.曲线模式,此模式下可用鼠标任意绘制平面图形(同样包括镂空图形及多个不相交图形)一.绘图模式1.常用模式可鼠标绘制正多边形,或利用键盘精确输入正多边形。
2.直线模式可用鼠标绘制任意多边形,或利用键盘精确输入点坐标。
输入完成倒数第二个点后,单击淡绿色圆圈(起点),在弹出的对话框选择是,完成第一个图形。
可继续绘制下一图形或开始计算。
3.曲线模式可用鼠标绘制任意曲线以构成图形。
最后一点,单击淡绿色圆圈(起点),在弹出的对话框选择是,完成第一个图形。
可继续绘制下一图形或开始计算。
二.计算当绘制完某一图形后,点击“开始计算”按钮,即可计算出面积、静矩、形心坐标、惯性矩、惯性半径、惯性积、主惯性轴角度、主惯性矩、形心主惯性轴角度、形心主惯性矩等16个几何量。
欲重新开始,可点击“重置”按钮。
点击任意按钮后屏幕下方都会有相应的提示。
三.外部图形首先将所需图形大小修改为500×470,格式为jpg,命名为“截面”,并将其保存在程序根目录下,可载入外部图形以精确计算其各个量。
源程序:注:以下为form1的代码Private X As Single, Y As Single, Xp As Single, Yp As SinglePrivate N As Integer, Num As Integer, M As Integer, missN(10000) As Integer, j As Integer, k As IntegerPrivate stepX As Single, stepY As Single, Step As SinglePrivate P(1 To 30000, 1 To 2) As Single, Q1 As Single, Q2 As Single Private minX As Single, maxX As Single, minY As Single, maxY As Single Private runX As Single, runY As SinglePrivate X1 As Single, Y1 As Single, X2 As Single, Y2 As SinglePrivate Lx As Single, Ly As SinglePrivate Lpoint(200) As Single, Lpointmemory As SinglePrivate Nn As Integer, Rr As SinglePrivate Xx As Single, Yy As Single, T As Integer, Ang As SinglePrivate Sx As Single, Sy As Single, Ax As Single, Ay As Single Private ShapeCenterX As Single, ShapeCenterY As SinglePrivate Ix As Single, Iy As Single, IxC As Single, IyC As Single, IxyC As SinglePrivate Rx As Single, Ry As SinglePrivate Ixy As Single, Iyx As Single, LIxy As Single, LIyx As Single Private Angle As SinglePrivate Imin As Single, Imax As SinglePrivate AngleC As SinglePrivate Icmin As Single, Icmax As SinglePrivate Can As IntegerPrivate Msg As IntegerPrivate MoveN As Long, MoveM As Long, Decider As Integer, Shape As IntegerPrivate A As Single, B As Single, C As Single, E As Single, F As Single Private Usual As IntegerPrivate Sub PaintNnRr()M = 0: N = 1For i = 0 To Nn - 1Text1.Text = Xx + Rr * Cos(Ang * 3.1415926535898 / 180 + 2 * 3.1415926535898 / Nn * i)Text2.Text = Yy + Rr * Sin(Ang * 3.1415926535898 / 180 + 2 * 3.1415926535898 / Nn * i)Command1_ClickNextEnd SubPrivate Sub Shorten(A As Single, B As Single, C As Single)i = 0Do While A >= 10A = A / 10i = i + 1LoopB = Format(A, "0.00")C = iEnd SubPrivate Sub Calculate()ShapeCenterY = CLng(Sx / Ax)ShapeCenterX = CLng(Sy / Ay)If Ix = Iy And Ixy > 0 ThenAngle = -3.1415926535898 / 4ElseIf Ix = Iy And Ixy < 0 ThenAngle = 3.1415926535898 / 4ElseIf Ix = Iy And Ixy = 0 ThenAngle = 0ElseAngle = 0.5 * Atn(-2 * Ixy / (Ix - Iy))End IfRx = Sqr(Ix / Ax)Ry = Sqr(Iy / Ay)Imin = (Ix + Iy) / 2 - Sqr((Ix - Iy) ^ 2 / 4 + Ixy ^ 2)Imax = (Ix + Iy) / 2 + Sqr((Ix - Iy) ^ 2 / 4 + Ixy ^ 2)IxC = Ix - ShapeCenterY ^ 2 * AxIyC = Iy - ShapeCenterX ^ 2 * AyIxyC = Ixy - ShapeCenterX * ShapeCenterY * AxIcmin = (IxC + IyC) / 2 - Sqr((IxC - IyC) ^ 2 / 4 + IxyC ^ 2)Icmax = (IxC + IyC) / 2 + Sqr((IxC - IyC) ^ 2 / 4 + IxyC ^ 2)If IxC = IyC And IxyC > 0 ThenAngleC = -3.1415926535898 / 4ElseIf IxC = IyC And IxyC < 0 ThenAngleC = 3.1415926535898 / 4ElseIf IxC = IyC And IxyC = 0 Thenanflec = 0ElseAngleC = 0.5 * Atn(-2 * IxyC / (IxC - IyC))End IfEnd SubPrivate Sub Output()Picture1.Line (Sy / Ay + 1000, 6000 - Sx / Ax)-(Sy / Ay + 1000, 6000), RGB(255, 121, 121)Picture1.Line (Sy / Ay + 1000, 6000 - Sx / Ax)-(1000, 6000 - Sx / Ax), RGB(255, 121, 121)Label6.Left = Sy / Ay + 100 + 1000: Label6.Top = 5775 + 20Label6.Caption = "X =" & ShapeCenterXLabel6.Visible = TrueLabel7.Left = 1080: Label7.Top = 6000 - (Sx / Ax - 20)Label7.Caption = "Y =" & ShapeCenterYLabel7.Visible = TrueText3.Text = ShapeCenterX: Text4.Text = ShapeCenterYCall Shorten(Ax, E, F)Text5.Text = E & "×" & 10 & "^" & FCall Shorten(Sx, E, F)Text6.Text = E & "×" & 10 & "^" & FCall Shorten(Sy, E, F)Text7.Text = E & "×" & 10 & "^" & FCall Shorten(Ix, E, F)Text8.Text = E & "×" & 10 & "^" & FCall Shorten(Iy, E, F)Text9.Text = E & "×" & 10 & "^" & FText10.Text = CLng(Rx * 10) / 10: Text11.Text = CLng(Ry * 10) / 10Call Shorten(Ixy, E, F)Text12.Text = E & "×" & 10 & "^" & FText13.Text = Format(Angle * 180 / 3.1415926535898, "0.0")Call Shorten(Imin, E, F)Text14.Text = E & "×" & 10 & "^" & FCall Shorten(Imax, E, F)Text15.Text = E & "×" & 10 & "^" & FText16.Text = Format(AngleC * 180 / 3.1415926535898, "0.0")Call Shorten(Icmin, E, F)Text17.Text = E & "×" & 10 & "^" & FText18.Text = IcmaxCall Shorten(Icmax, E, F)Text18.Text = E & "×" & 10 & "^" & FEnd SubPrivate Sub Sort()For i = 1 To j - 2For k = i + 1 To j - 1If Lpoint(k) < Lpoint(i) ThenLpointmemory = Lpoint(i)Lpoint(i) = Lpoint(k)Lpoint(k) = LpointmemoryEnd IfNextNextEnd SubPrivate Sub CloseLine()Picture1.Circle (Q1 + 1000, 6000 - Q2), 90, RGB(255, 255, 255)Label1.Caption = "输入第" & N + 1 & "点坐标:"P(N, 1) = Q1: P(N, 2) = Q2Picture1.Line (P(N - 1, 1) + 1000, 6000 - P(N - 1, 2))-(Q1 + 1000, 6000 - Q2), RGB(0, 0, 255)missN(Num) = NM = 0N = N + 1Num = Num + 1Decider = 0Label21.Caption = "点击计算“截面的几何量”按钮开始计算,或单击下一点以绘制下一图形的起点"End SubPrivate Sub GetstepXstepY()minY = P(1, 2)For i = 2 To N - 1If P(i, 2) < minY ThenminY = P(i, 2)ElseEnd IfNextmaxY = P(1, 2)For i = 2 To N - 1If P(i, 2) > maxY ThenmaxY = P(i, 2)ElseEnd IfNextstepY = (maxY - minY) / StepminX = P(1, 1)For i = 2 To N - 1If P(i, 1) < minX ThenminX = P(i, 1)ElseEnd IfNextmaxX = P(1, 1)For i = 2 To N - 1If P(i, 1) > maxX ThenmaxX = P(i, 1)ElseEnd IfNextstepX = (maxX - minX) / StepEnd SubPrivate Sub GetLxLIxy()j = 1: Lx = 0: LIxy = 0For i = 1 To N - 1Can = 0For k = 1 To Num - 1If i = missN(k) ThenCan = 1ElseEnd IfNextIf Can = 0 ThenIf (P(i, 2) - runY) * (P(i + 1, 2) - runY) = 0 ThenrunY = runY + stepY / 1000ElseEnd IfIf (P(i, 2) - runY) * (P(i + 1, 2) - runY) < 0 ThenX1 = P(i, 1): Y1 = P(i, 2): X2 = P(i + 1, 1): Y2 = P(i + 1, 2)Lpoint(j) = X1 + (X2 - X1) * (runY - Y1) / (Y2 - Y1)j = j + 1ElseEnd IfElseEnd IfNextCan = 0Call SortFor i = 1 To j - 1 Step 2Lx = Lx + Lpoint(i + 1) - Lpoint(i)LIxy = LIxy + 0.5 * (Lpoint(i + 1) ^ 2 - Lpoint(i) ^ 2)NextEnd SubPrivate Sub PaintX()For i = 1 To j - 2 Step 2Picture1.Line (Lpoint(i) + 1000, 6000 - runY)-(Lpoint(i + 1) + 1000, 6000 - (runY + stepY)), RGB(255, 113, 116), BFNextEnd SubPrivate Sub GetAxSxIx()Ax = Ax + Lx * stepYSx = Sx + (runY + 0.5 * stepY) * (Lx * stepY)Ix = Ix + (runY + 0.5 * stepY) ^ 2 * (Lx * stepY)Ixy = Ixy + (runY + 0.5 * stepY) * (LIxy * stepY)End SubPrivate Sub GetLyLIyx()j = 1: Ly = 0: LIyx = 0For i = 1 To N - 1Can = 0For k = 1 To Num - 1If i = missN(k) ThenCan = 1ElseEnd IfNextIf Can = 0 ThenIf (P(i, 1) - runX) * (P(i + 1, 1) - runX) = 0 ThenrunX = runX + stepX / 1000ElseEnd IfIf (P(i, 1) - runX) * (P(i + 1, 1) - runX) < 0 ThenX1 = P(i, 1): Y1 = P(i, 2): X2 = P(i + 1, 1): Y2 = P(i + 1, 2)Lpoint(j) = Y1 + (Y2 - Y1) * (runX - X1) / (X2 - X1)j = j + 1ElseEnd IfElseEnd IfNextCall SortFor i = 1 To j - 1 Step 2Ly = Ly + Lpoint(i + 1) - Lpoint(i)LIyx = LIyx + 0.5 * (Lpoint(i + 1) ^ 2 - Lpoint(i) ^ 2)NextEnd SubPrivate Sub PaintY()For i = 1 To j - 2 Step 2Picture1.Line (runX + 1000, 6000 - Lpoint(i))-(runX + stepX + 1000, 6000 - Lpoint(i + 1)), RGB(118, 89, 255), BFNextEnd SubPrivate Sub GetAySyIy()Ay = Ay + Ly * stepXSy = Sy + (runX + 0.5 * stepX) * (Ly * stepX)Iy = Iy + (runX + 0.5 * stepX) ^ 2 * (Ly * stepX)Iyx = Iyx + (runX + 0.5 * stepX) * (LIyx * stepX)End SubPrivate Sub Command1_Click() '画线Label1.Caption = "输入第" & N + 1 & "点坐标:"Text1.Text = CLng(Text1.Text * 10) / 10: Text2.Text = CLng(Text2.Text * 10) / 10Xp = Text1.Text: Yp = Text2.TextX = Xp: Y = YpP(N, 1) = X: P(N, 2) = YIf M = 0 ThenQ1 = X: Q2 = YPicture1.PSet (Q1 + 1000, 6000 - Q2), RGB(0, 0, 255)Picture1.Circle (Q1 + 1000, 6000 - Q2), 90, RGB(180, 255, 180)If Shape = 0 ThenDecider = 0ElseDecider = 1End IfElseIf M <> 0 ThenPicture1.Line (P(N - 1, 1) + 1000, 6000 - P(N - 1, 2))-(P(N, 1) + 1000, 6000 - P(N, 2)), RGB(0, 0, 255)ElseEnd IfM = 1N = N + 1Command2.Enabled = FalseCommand4.Enabled = FalseCommand5.Enabled = FalseCommand9.Enabled = FalseLabel21.Caption = "点击以输入下一个点的坐标 .或点击当前图形起点(淡绿色圆圈内)以封闭图形"End SubPrivate Sub Command10_Click()Nn = Text19.TextRr = Text20.TextXx = Text22.TextYy = Text23.TextAng = Text21.TextCall PaintNnRrCall CloseLineCommand2_ClickCommand10.Enabled = FalseEnd SubPrivate Sub Command2_Click()N = N - 1Call GetstepXstepYrunX = minX: runY = minYAx = 0: Sx = 0: Ix = 0Do While runY < maxYCall GetLxLIxy 'Lx为与x轴平行的LCall PaintXCall GetAxSxIxrunY = runY + stepYLoopAy = 0: Sy = 0: Iy = 0Do While runX < maxXCall GetLyLIyxCall PaintYCall GetAySyIyrunX = runX + stepXLoopCall CalculateCall OutputCommand1.Enabled = FalseCommand2.Enabled = FalseN = N + 1Label21.Caption = "单击“重置程序”按钮以初始化程序"Form1.Width = 9750End SubPrivate Sub Command3_Click()Form_ActivateEnd SubPrivate Sub Command4_Click()Decider = 0Shape = 0Label21.Caption = "进入直线模式"If T = 1 ThenFrame6.Visible = FalseT = 0ElseEnd IfCommand1.Enabled = TrueCommand4.Enabled = FalseCommand5.Enabled = FalseCommand9.Enabled = FalseEnd SubPrivate Sub Command5_Click()Decider = 0Shape = 1Label21.Caption = "进入曲线模式"If T = 1 ThenFrame6.Visible = FalseT = 0ElseEnd IfCommand4.Enabled = FalseCommand5.Enabled = FalseCommand9.Enabled = FalseEnd SubPrivate Sub Command6_Click()Unload Form1Unload Form2End SubPrivate Sub Command7_Click()Shell "C:\windows\system32\notepad.exe" + " " + App.Path + "\帮助.txt", 3End SubPrivate Sub Command8_Click()Command3_ClickPicture1.Picture = LoadPicture(App.Path + "\截面.jpg")Label21.Caption = "请将截面图形大小修改为500×470,再将名字改为“截面”,并保存在程序根目录下"End SubPrivate Sub Command9_Click()If T = 1 ThenCommand4.Enabled = TrueCommand5.Enabled = TrueElseCommand4.Enabled = FalseCommand5.Enabled = FalseEnd IfIf T = 1 ThenFrame6.Visible = FalseT = 0Usual = 0ElseFrame6.Visible = TrueT = 1Usual = 3End IfIf T = 1 ThenLabel21.Caption = "选择一种正多边形"ElseEnd IfEnd SubPrivate Sub Form_Activate()Form1.Width = 7680Picture1.ClsPicture1.Picture = LoadPicture(App.Path + "\1.jpg")Command1.Enabled = TrueCommand4.Enabled = TrueCommand5.Enabled = TrueCommand9.Enabled = TrueCommand10.Enabled = TrueLabel21.Caption = "选择一种模式(默认为直线模式)并鼠标点击输入或键入第一点坐标"Command2.Enabled = FalseN = 1: Num = 1: M = 0: Can = 0: MoveN = 0: MoveM = 0Step = 10000: Decider = 0: Shape = 0: Usual = 0Label1.Caption = "输入第1点坐标:": Label6.Visible = False: Label7.Visible = FalseText3.Text = 0: Text4.Text = 0Text20.Text = 1500Text21.Text = 0Text22.Text = 3000Text23.Text = 3000Frame6.Visible = FalseT = 0Command1.Enabled = False End SubPrivate Sub Option1_Click() Form_ActivateCommand4.Enabled = False Command5.Enabled = False Command9_ClickText19.Text = 100Usual = 1Step = 10000End SubPrivate Sub Option2_Click() Form_ActivateCommand4.Enabled = False Command5.Enabled = False Command9_ClickText19.Text = 3Usual = 1Step = 10000End SubPrivate Sub Option3_Click() Form_ActivateCommand4.Enabled = False Command5.Enabled = False Command9_ClickText19.Text = 4Usual = 1Step = 10000End SubPrivate Sub Option4_Click() Form_ActivateCommand4.Enabled = False Command5.Enabled = False Command9_ClickText19.Text = 5Usual = 1Step = 10000End SubPrivate Sub Option5_Click()Form_ActivateCommand4.Enabled = FalseCommand5.Enabled = FalseCommand9_ClickText19.Text = 6Usual = 1Step = 10000End SubPrivate Sub Option6_Click()Form_ActivateCommand4.Enabled = FalseCommand5.Enabled = FalseCommand9_ClickText19.Text = 7Text19.SetFocusText19.SelLength = Len(Text1.Text)Label21.Caption = "输入N边形边数"Usual = 1Step = 10000End SubPrivate Sub Picture1_Click()If Usual = 0 ThenIf Sqr((Text1.Text - Q1) ^ 2 + (Text2.Text - Q2) ^ 2) <= 90 And N > 3 ThenLabel21.Caption = "单击“是”将封闭当前图形,单击“否”则可继续绘制下一点"Msg = MsgBox("是否封口?", 4, "")If Msg = 6 ThenCall CloseLineCommand2.Enabled = TrueElseCommand1_ClickEnd IfElseCommand1_ClickEnd IfElseIf Usual = 1 ThenText22.Text = Text1.Text: Text23.Text = Text2.TextPSet (Text1.Text + 1000, 6000 - Text2.Text), RGB(0, 0, 255)Usual = 2ElseIf Usual = 2 ThenUsual = 3ElseEnd IfEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Text1.Text = CLng((X - 1000) * 10) / 10: Text2.Text = CLng((6000 - Y) * 10) / 10If Usual = 0 ThenIf Decider = 1 ThenMoveN = MoveN + 1MoveM = MoveN Mod 2If MoveM = 0 ThenCommand1_ClickElseEnd IfElseEnd IfElseIf Usual = 2 ThenPicture1.ClsText20.Text = Sqr((Text1.Text - Xx) ^ 2 + (Text2.Text - Yy) ^ 2) Text20.Text = CLng(Text20.Text * 10) / 10Nn = Text19.TextRr = Text20.TextXx = Text22.TextYy = Text23.TextAng = Text21.TextCall PaintNnRrCall CloseLineNum = Num - 1ElseIf Usual = 3 ThenElseEnd IfEnd SubPrivate Sub Text19_LostFocus()Text19.Text = CLng(Text19.Text)End SubPrivate Sub Text21_LostFocus()Text21.Text = CLng(Text21.Text * 10) / 10End Sub注:以下为form2的代码Private N As IntegerPrivate Sub Form_Activate()N = 0End SubPrivate Sub Timer1_Timer()N = N + 30If N < 165 ThenLabel1.ForeColor = RGB(165 - N, 165, 165 - N) Label2.ForeColor = RGB(165 - N, 165, 165 - N) Label3.ForeColor = RGB(165 - N, 165, 165 - N) ElseIf N > 260 ThenForm2.HideForm1.ShowTimer1.Enabled = FalseEnd IfEnd Sub应用举例:1.圆形截面2.矩形截面3.组合截面。
哈工大运筹学实验报告实验
哈工大运筹学实验报告实验实验一:货物运输问题的数学建模与求解实验目的:1.了解货物运输问题的数学建模方法;2.掌握货物运输问题的线性规划求解方法;3.学会使用运筹学软件求解货物运输问题。
实验原理:货物运输问题属于线性规划问题的一种,其目标是在满足供需平衡和运输容量限制的前提下,使运输成本最小化。
实验内容:1.问题描述:公司有m个供应点和n个需求点,其中每个供应点的供应量为si (i=1,2,…,m),每个需求点的需求量为dj (j=1,2,…,n)。
公司希望通过运输将货物从供应点送到需求点,各供应点到需求点的单位运输成本为aij (i=1,2,…,m; j=1,2,…,n)。
公司希望确定每个供应点与需求点之间的货物运输量xij,以及总运输成本C,使总运输成本最小。
2.数学建模:设xij表示从第i个供应点到第j个需求点的货物运输量,C表示总运输成本,则该问题的数学模型可以描述为:min C = ∑(i=1 to m) ∑(j=1 to n) aij * xijsubject to:∑(j=1 to n) xij = si, i=1,2,…,m∑(i=1 to m) xij = dj, j=1,2,…,nxij ≥ 0, i=1,2,…,m; j=1,2,…,n3.求解方法:利用运筹学软件求解上述线性规划问题,得到最优解。
实验步骤:1.在运筹学软件中新建一个线性规划模型;2.设定决策变量、目标函数和约束条件,并输入相应参数;3.运行求解算法,得到最优解。
实验结果:根据实验步骤,通过运筹学软件求解货物运输问题,得到最优解如下:供应点1到需求点1的运输量为x11=200;供应点1到需求点2的运输量为x12=150;供应点2到需求点1的运输量为x21=100;供应点2到需求点2的运输量为x22=250;总运输成本最小为C=900。
实验总结:通过本次实验,我了解了货物运输问题的数学建模方法,并掌握了线性规划求解的基本步骤。
最新哈工大数学实验实验报告
最新哈工大数学实验实验报告实验目的:本次实验旨在通过一系列数学问题的求解,加深对高等数学理论的理解,并掌握数学建模的基本方法。
通过实际操作,提高运用数学工具解决实际问题的能力。
实验内容:1. 问题一:求解一元二次方程- 描述:给定一元二次方程 ax^2 + bx + c = 0,其中 a, b, c为已知系数,求解该方程的根。
- 方法:应用求根公式,即 x = (-b ± √(b^2 - 4ac)) / (2a)。
- 结果:计算得到方程的两个解,并验证其正确性。
2. 问题二:线性规划问题- 描述:给定一组线性约束条件和目标函数,求线性规划问题的最优解。
- 方法:使用单纯形法进行迭代求解。
- 结果:找到最优解,并给出对应的目标函数值。
3. 问题三:概率分布与统计推断- 描述:根据一组实验数据,估计总体分布的参数,并进行假设检验。
- 方法:利用最大似然估计法确定参数,再应用t检验进行假设检验。
- 结果:得出参数估计值和假设检验的结果。
实验环境:- 软件:MATLAB、Mathematica、R语言等数学软件。
- 硬件:个人计算机,具备足够的计算能力。
实验步骤:1. 准备阶段:收集所需的数据和资料,安装并熟悉相关数学软件。
2. 实验阶段:按照实验内容,逐步完成每个问题的求解。
3. 分析阶段:对求解结果进行分析,验证其合理性。
4. 总结阶段:撰写实验报告,总结实验过程中的关键点和学习到的知识。
实验结果:- 问题一的解验证了求根公式的有效性。
- 问题二的最优解展示了单纯形法在解决线性规划问题中的应用。
- 问题三的参数估计和假设检验结果为实际问题提供了决策依据。
实验结论:通过本次实验,我们不仅巩固了数学理论知识,而且通过实际操作提升了解决实际问题的能力。
数学建模和计算工具的应用对于理解和应用数学至关重要。
在未来的学习中,我们将继续探索更多的数学问题和解决方法。
哈工大-测试技术大作业一-三角波
一、设计题目二、求解信号的幅频谱和相频谱三角波的信号数学表达式为:⎪⎪⎩⎪⎪⎨⎧<<-<<-=4/34/,4244/,4)(000000T t T t T A A T t T t T At x其傅里叶级数展开式为)5sin 2513sin 91(sin 8)(0002⋯++-=t t t At x ωωωπ 由此可以写出其信号的幅频谱图和相频谱图: 1.单边谱幅频谱函数⋯==,5,3,1,822n n AA n π相频谱函数⎪⎪⎩⎪⎪⎨⎧⋯=-⋯==,11,7,3,2,9,5,1,2n n n ππϕ 幅频谱、相频谱图如下所示:2.双边谱信号的傅里叶级数的复指数展开为:])(31[4)(00002322222⋯++-+=----t j j tj j tj jtj je e e e ee eeAt x ωπωπωπωππ则2222142121nA A b a C n n n n ⋅==+=π nnn a b arctan-=ϕ 可以画出幅频谱及相频谱如下图所示:三、画出系统H(s)的Bode 图 1.一阶系统使用MATLAB 程序,输入: num=[1];den=[0.01,1]; bode(num,den);得一阶系统的Bode 图如下:2.二阶系统取n ω=150rad/s ,ζ=0.5,在MATLAB 程序,输入:num=[6000]; den=[1,150,22500];bode(num,den);得二阶系统的Bode 图如下:四、分析输出信号 1.一阶系统对于该输入信号可以根据其傅里叶级数对每一项单独的计算系统输出响应,然后相加即可。
)5sin 2513sin 91(sin 8)(0002⋯++-=t t t A t x ωωωπ取t A t x 021sin 8)(ωπ=,将其输入至一阶系统101.01)(+=s s H ,可得:)]01.0arctan(sin[)01.0(18)()(002221ωωωπ-+==t At x t y o]5729.0sin[5654.810︒-=t同理将t A t x 0233sin 98)(ωπ-=、t At x 0255sin 258)(ωπ=…代入,将各项响应相加即可求解输出该信号对一阶系统的响应。
(完整版)哈工大-数值分析上机实验报告
(完整版)哈⼯⼤-数值分析上机实验报告实验报告⼀题⽬:⾮线性⽅程求解摘要:⾮线性⽅程的解析解通常很难给出,因此线性⽅程的数值解法就尤为重要。
本实验采⽤两种常见的求解⽅法⼆分法和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;elseb=c;endR=b-a;%求出误差k=k+1;endx=c%给出解Newton法及改进的Newton法源程序:clear%%%% 输⼊函数f=input('请输⼊需要求解函数>>','s')%%%求解f(x)的导数df=diff(f);%%%改进常数或重根数miu=2;%%%初始值x0x0=input('input initial value x0>>');k=0;%迭代次数max=100;%最⼤迭代次数R=eval(subs(f,'x0','x'));%求解f(x0),以确定初值x0时否就是解while (abs(R)>1e-8)x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0','x'));R=x1-x0;x0=x1;k=k+1;if (eval(subs(f,'x0','x'))<1e-10);breakendif 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;elsebreakendendendk;%给出迭代次数x=x0;%给出解结果分析和讨论:1.⽤⼆分法计算⽅程在[1,2]内的根。
哈工大计算方法实验报告
,n,ix≠,n)x0,1,,n,且函数()f x充分光滑,0)(()nx x x x x x ---,n;插值点程序设计流程开始结束输入(x i ,y i ),ni=0,1,2,…,nL=0 i=0xl=1xl=*xlj=0,1,…,i-1,i+1,…,nL=L+xl *i=n?输出y否是i=i+1式摆动——Runge现象,有时多项式摆动可以通过谨慎选择基础函数的取样点来减小。
通常采用分段插值可以很好的消除多项式摆动现象。
2. 对实验2存在的问题的回答,试加以说明在分段段数相同的情况下,插值区间越大,误差越大。
原因是大部分情况下,相对于比较大的区间,函数在比较小的区间上的函数值变化较缓和,因此即使出现摆动也不会偏离原函数太大。
3. 对实验3存在的问题的回答,试加以说明第一问中已经提到多项式摆动可以通过谨慎选择基础函数的取样点来减小。
我们来看下x k=cos (2k+1)π/2(n+1) ,k=0,1,…,n的分布和f(x)=1/(1+x2 )的图像:可以看出,xk的分布是两端密集中间稀疏,f(x)的趋势是两边陡峭中间平缓,函数变化陡峭时节点增多正好可以增加插值的准确性。
4. 如何理解插值问题中的内插和外推?一般来说,内插时插值收敛于实际函数,一旦超出内插的范围,插值函数会发散,且离插值区间越远外推误差越大。
使用不用的插值方法在同一点外推的值也会相差很多,这说明外推本身就存在很大的不确定性。
⎫⎪0,1,2,⎭,k2~4步,直到满程序设计流程定义输入开始输出迭代失败标志输出输出奇异标志结束。
哈工大(深圳)实验学校 2023-2024 学年第一学期八年级数学期中测试试卷
哈工大(深圳)实验学校2023-2024学年第一学期八年级数学期中测试试卷命题人:杨晶宇审题人: 王伟说明:1、本试卷满分 100 分,考试时间为 90 分钟;2、本试卷共 22 道大题,请同学们仔细审题,认真答题,祝你成功!一、选择题1.在,﹣1.87,﹣π,0,,3.1212212221…(相邻两个1之间2的个数逐次加1)这些数中,无理数有()A.1个B.2个C.3个D.4个2.4的算术平方根是()A.±2 B.﹣2 C.2 D.3.如图,已知两正方形的面积分别是25和169,则字母B所代表的正方形的面积是()A.12 B.13 C.144 D.1944.已知点A的坐标为(﹣1,2),点A关于x轴的对称点的坐标为()A.(1,2)B.(2,﹣1)C.(1,﹣2)D.(﹣1,﹣2)5.对于圆的周长公式C=2πR,下列说法正确的是()A.π、R是变量,2是常量B.R是变量,π是常量C.C是变量,π、R是常量D.C、R是变量,2、π是常量6.已知点A(m,﹣2),点B(3,m+1),且直线AB∥x轴,则m的值为()A.﹣1 B.1 C.﹣3 D.37.已知正比例函数y=kx(k≠0)的函数值y随x的增大而减小,则一次函数y=x+k的图象大致是()A.B.C.D.A.点A B.点B C.点C9.下列条件中,能确定是直角三角形的有()①三边之比为3:4:5;②三边长的平方之比为1:2:3;③三内角之比为1:2:3;④三内角之比为3:4:5;⑤两个内角之和等于第三个角.A.2个B.3个C.4个D.5个10.勾股定理是人类最伟大的科学发现之一,在我国古算书《周髀算经》中早有记载.如图1,以直角三角形的各边为边分别向外作正方形,再把较小的两张正方形纸片按图2的方式放置在最大正方形内.若知道.图中阴影部分的面积,则一定能求出()A.直角三角形的面积B.较小两个正方形重叠部分的面积C.最大正方形的面积D.最大正方形与直角三角形的面积和二、选择题11.8的平方根是.12.如图,矩形OABC的边OA长为2,边AB长为1,OA在数轴上,以原点O为圆心,对角线OB的长为半径画弧,交数轴于一点,则这个点表示的实数是13.一次函数y=ax+b交x轴于点(﹣3,0),则关于x的方程ax+b=0的解是.14.直角三角形的两边分别为3cm和4cm,则斜边为______ cm.15.如图,已知正比例函数y=kx(k>0)的图象与x轴相交所成的锐角为70°,定点A的坐标为(0,4),P为y轴上的一个动点,M、N为函数y=kx(k>0)的图象上的两个动点,则AM+MP+PN的最小值为___________.班级:____________ 姓名:________________ 考号:_____________ 座位号:18.(5分)如图,在平面直角坐标系中,△ABC三个顶点的坐标分别为A(3,4),B(1,2),C(4,1);(1)在平面直角坐标系中做出△ABC关于y轴对称的△A1B1C1;(2)点P是x轴上一点,且使得P A+PB的值最小,请求出这个最小值.19.(8分)某人需要经常去复印资料.甲复印社直接按每次印的张数计费,乙复印社可以加入会员,但需按月付一定的会员费、两复印社每月的收费情况如图所示,根据图中提供的信息解答下列问题;(1)乙复印社要求客户每月支付的会员费是______元.(2)求出乙复印社收费y(元)关于复印量x(页)的函数解析式.(3)当每月复印多少页时,两复印社实际收费相同?(写过程)(4)如果每月复印210页,应选择哪家复印社?(写过程)20.(6分)如图,在四边形ABCD 中,90ABC CDA ∠=∠=︒,分别以四边形ABCD 的四条边为边长,向外作四个正方形,面积分别为1S ,2S ,3S 和4S .若14S =,216S =,312S =,求4S 的值.21.(6分)如图,已知函数1y x =+的图象与y 轴交于点A ,一次函数y kx b =+的图象经过点()01B -,,与x 轴以及1y x =+的图象分别交于点C D 、,且点D 的坐标为()1n ,,(1)求n k b ,,的值;(2)连接AC ,求ACD 的面积.22.(8分)我们新定义一种三角形:若一个三角形中存在两边的平方差等于第三边上高的平方, 则称这个三角形为勾股高三角形,两边交点为勾股顶点.●特例感知①等腰直角三角形 勾股高三角形(请填写“是”或者“不是”);②如图1,已知△ABC 为勾股高三角形,其中C 为勾股顶点,CD 是AB 边上的高.若BD =2AD =2,试求线段CD 的长度. ●深入探究如图2,已知△ABC 为勾股高三角形,其中C 为勾股顶点且CA >CB ,CD 是AB 边上的高.试探究线段AD 与CB 的数量关系,并给予证明; ●推广应用如图3,等腰△ABC 为勾股高三角形,其中AB =AC >BC ,CD 为AB 边上的高,过点D 向BC 边引平行线与AC 边交于点E .若CE =a ,试求线段DE 的长度.装 订 线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学实验大作业——抽象群与应用“RSA加密系统”合作人:郭元镇尹庆宇杨瑞飞综述1)RSA 加密算法的历史RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。
RSA取名来自开发他们三者的名字。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。
它易于理解和操作,也很流行。
早在1973年,英国国家通信总局的数学家Clifford Cocks就发现了类似的算法。
但是他的发现被列为绝密,直到1998年才公诸于世。
RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。
即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。
2)RSA 加密算法的原理RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。
(n及e1),(n及e2)就是密钥对。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;e1和e2可以互换使用,即:A=B^e2 mod n;B=A^e1 mod n;3)RSA 加密算法的缺点1.产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。
2.安全性, RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NPC问题。
目前,人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,目前人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。
然后,经过计算就可得到它所想要的信息。
实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:( XM )d = Xd *Md mod n前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。
但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way Hash Function对文档作HASH处理,或同时使用不同的签名算法。
除了利用公共模数,人们还尝试一些利用解密指数或φ(n)等等攻击.3.速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600 bitx以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。
为了速度问题,目前人们广泛使用单,公钥密码结合使用的方法,优缺点互补:单钥密码加密速度快,人们用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。
下表列出了对同一安全级别所对应的密钥长度。
保密级别对称密钥长度(bit)RSA密钥长度(bit)ECC密钥长度(bit)保密年限80 80 1024 160 2010 112 112 2048 224 2030 128 128 3072 256 2040 192 192 7680 384 2080 256 256 15360 512 21204)针对RSA 加密算法的几种攻击方式针对RSA最流行的攻击一般是基于大数因数分解。
1999年,RSA-155(512 bits)被成功分解,花了五个月时间(约8000 MIPS 年)和224 CPU hours 在一台有3.2G中央内存的Cray C916计算机上完成。
2002年,RSA-158也被成功因数分解。
1.RSA的选择密文攻击RSA在选择密文攻击面前很脆弱。
一般攻击者是将某一信息作一下伪装( Blind),让拥有私钥的实体签署。
然后,经过计算就可得到它所想要的信息。
实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:( XM )^d = X^d *M^d mod n这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。
但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way HashFunction 对文档作HASH处理,或同时使用不同的签名算法。
2.RSA的公共模数攻击若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。
最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那么该信息无需私钥就可得到恢复。
设P为信息明文,两个加密密钥为e1和e2,公共模数是n,则:C1 = P^e1 mod nC2 = P^e2 mod n密码分析者知道n、e1、e2、C1和C2,就能得到P。
因为e1和e2互质,故用Euclidean算法能找到r和s,满足:r * e1 + s * e2 = 1假设r为负数,需再用Euclidean算法计算C1^(-1),则( C1^(-1) )^(-r) * C2^s = P mod n另外,还有其它几种利用公共模数攻击的方法。
总之,如果知道给定模数的一对e和d,一是有利于攻击者分解模数,一是有利于攻击者计算出其它成对的e’和d’,而无需分解模数。
解决办法只有一个,那就是不要共享模数n。
RSA的小指数攻击。
有一种提高 RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有所提高。
但这样做是不安全的,对付办法就是e和d都取较大的值。
5)本次实验中用到的4种算法1.平方-乘算法在RSA算法中,往往要计算ma mod r的值,由于ma的值可能会很大而产生溢出从而导致错误。
平方-乘算法:将a转换为二进制数b,用bi表示b的第i位值,L为b的二进制位数,则:(0)令c=1,i=L-1(1)计算c=c*c%r(2)若bi=1,则计算c=c*m%r,否则什么也不做(3)i=i-1(4)重复步骤1-3,直至i=0为止,此时c的值即为所求。
2.Rabin-Miller算法:数论学家利用费马小定理研究出了多种素数测试方法,目前最快的算法是拉宾米勒测试算法,(现在不是最快,印度的一名老师和他的两个本科生的算法是最快的:印度理工学院计算机科学与工程学系的科学家马宁德拉·阿格拉瓦和他的两位在校本科生尼拉叶·卡雅尔和尼汀·萨克斯特纳)其过程如下:(1)计算奇数M,使得N=(2**r)*M+1(2)选择随机数A<N(3)对于任意i<r,若A**((2**i)*M) MOD N = N-1,则N通过随机数A的测试(4)或者,若A**M MOD N = 1,则N通过随机数A的测试(5)让A取不同的值对N进行5次测试,若全部通过则判定N为素数若N 通过一次测试,则N 不是素数的概率为 25%,若N 通过t 次测试,则N 不是素数的概率为(1/4)的n次幂。
事实上取t 为5 时,N 不是素数的概率为 1/128,N 为素数的概率已经大于99.99%。
3.扩展欧几里德算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。
其计算原理依赖于下面的定理:定理:gcd(a,b) = gcd(b,a mod b)设两数为a、b(b<a),用gcd(a,b)表示a,b的最大公约数,r=a mod b 为a除以b以后的余数,辗转相除法即是要证明gcd(a,b)=gcd(b,r)。
第一步:令c=gcd(a,b),则设a=mc,b=nc第二部:根据前提可知r =a-kb=mc-knc=(m-kn)c第三部:根据第二步结果可知c也是r的因数第四步:可以断定m-kn与n互素(否则,可设m-kn=xd,n=yd,(d>1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)dc,b=nc=ycd,故a与b最大公约数成为cd,而非c)从而可知gcd(b,r)=c,继而gcd(a,b)=gcd(b,r)。
扩展欧几里德算法是用来在已知a, b求解一组p,q使得p * a+q * b = Gcd(a, b) (解一定存在,根据数论中的相关定理)。
扩展欧几里德常用在求解模线性方程及方程组中。
4. 大数快速求模算法先承认两个公式:ab mod c=((a mod c)(b mod c)) mod c(a+b) mod c=(a mod c+b mod c) mod c然后递推,先算1 mod c,然后10 mod c ,100 mod c。
用数组存一下,递推方法是10^n mod c=((10^(n-1) mod c)*10) mod c再加,让k=0,for a:=1 to l dok:=(k+num[a]*exp10[a]) mod c这样最后k就是结果。
程序运行实例及结果分析初始运行界面自动生成密钥RSA加密RSA解密手动输入密钥输入密钥不符合要求时弹出警告窗口关于帮助对实验结果的看法和意见:实验结果并不很让人满意,只能完成3000-9000之内素数的输入运算过程,对于多位素数的运算进行了尝试但是仍有很多BUG,所以只暂时保留了小数量级的RSA加解密过程展示。
但是基本功能已经完成,只要找到一种适合大素数的运算算法,便可顺利进行大数量级素数的RSA加解密。
参考文献1)陈华,蔡光兴《基于Matlab/GUI的RSA密码演示系统》计算机与现代化2009(7)2)刘卫国《Matlab程序设计与应用》 20063)闫洪亮.牛军涛《实现RSA算法应注意的问题》计算机应用与软件 2008(5) 4)胡卫群《Euclidean算法》南京农专学报 1996(4)5)雒海涛《Matlab GUI教程》 2011合作分工郭元镇: GUI界面编程尹庆宇:资料查找和题目分析研究杨瑞飞:算法设计。