当前位置:文档之家› 优化设计实验报告(...)(1)

优化设计实验报告(...)(1)

优化设计实验报告(...)(1)
优化设计实验报告(...)(1)

机械优化设计

姓名:欧阳龙

学号:2007500817 班级:07机设一班

一、黄金分割法

1、 数学模型

2()2f x x x =+,56x -≤≤

2、 黄金分割法简介

黄金分割法适用于单谷函数求极小值问题,且函数可以不连续。黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间[],a b 内适当插入两点1α、2α,并计算其函数值。1α、2α将区间分成三段。应用函数的单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。然后再在保留下来的区间上作同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。黄金分割法能使相邻两次都具有相同的缩短率0.618,故黄金分割法又称作0.618法。

3、黄金分割法程序清单

#include

#include

/*目标函数*/

float ff(float x)

{

float y;

y=x*x+2*x;

return(y);

}

main()

{

float a,b,ab,Epsilon;

float y1,y2,Alpha1,Alpha2;

float Lambda=0.618;

printf("please input the arear and Epsilon\n");

scanf("%f,%f,%f",&a,&b,&Epsilon);

Alpha1=b-Lambda*(b-a),Alpha2=a+Lambda*(b-a);

printf("%f,%f\n",Alpha1,Alpha2);

y1=ff(Alpha1);y2=ff(Alpha2);

printf("y1=%f,y2=%f\n",y1,y2);

do

{if(y1>=y2)

{a=Alpha1;

Alpha1=Alpha2;

y1=y2;

Alpha2=a+Lambda*(b-a);

y2=Alpha2*Alpha2+2*Alpha2;

}

else{

b=Alpha2;

Alpha2=Alpha1;

y2=y1;

Alpha1=b-Lambda*(b-a);

y1=Alpha1*Alpha1+2*Alpha1;

}

printf("a=%f,b=%f,y1=%f,y2=%f\n",a,b,y1,y2);

}while(!(abs((b-a)/b)

ab=0.5*(a+b);

y1=ff(ab);

printf("the result is :%f",y1);

getch();

}

4、运行结果:

一、变尺度法

1、数学模型

2

1

1

2

2

2

1

2

1

2

4

8

)

,

(x

x

x

x

x

x

x

F-

-

+

=

2、变尺度法简介

基本思想:

(1)用简单矩阵代替二阶导数矩阵的逆矩阵

1

2()k

f X-

??

?

??

(2)用坐标变换简化目标函数

具体如下:

当用牛顿法寻求极小点时,其牛顿迭代公式为

11(0,1,2)

k k

k k k

x x G g k

α

+-

=-=

其中

2

()

()

k

k

k

k

g f x

G f x

≡?

≡?

在迭代中建立变尺度矩阵()k

k

H H x

≡来替换1

k

G-,即构造一个矩阵序列{}k H来逼近海赛逆矩阵序列{}1k G-。每迭代一次,尺度就改变一次,这正是“变尺度”的含义。这样,

上式变为

11(0,1,2)k k k k k x x G g k α+-=-=

其中k α是从k x 出发,沿方向 k k k d H g =-作一维搜索而得到

的最佳步长。当k H I =(单位矩阵)时,它就变成最速下降法。这就是变尺度法的基本思想。

变尺度法程序清单:

/*计算 f(x1,x2)=x1^2+8*x2^2-4*x1-2*x1*x2 的无约束极值,初始点x0=[1,1]。

tt ---- 一维搜索初始步长

ff ---- 差分法求梯度时的步长

ac ---- 终止迭代收敛精度

ad ---- 一维搜索收敛精度

n ----- 设计变量的维数

xk[n] -- 迭代初始点

*/

#include

#include

#include

#include

#define tt 0.01

#define ff 1.0e-6

#define ac 1.0e-6

#define ad 1.0e-6

#define n 8

double ia;

double fny(double *x)

{

double x1=x[0],x2=x[1];

double f;

f=x1*x1+8*x2*x2-4*x1-2*x1*x2;

return f;

}

double * iterate(double *x,double a,double *s)

{

double *x1;

int i;

x1=(double *)malloc(n*sizeof(double));

for(i=0;i

x1[i]=x[i]+a*s[i];

return x1;

}

double func(double *x,double a,double *s)

{

double *x1;

double f;

x1=iterate(x,a,s);

f=fny(x1);

return f;

}

void finding(double a[3],double f[3],double *xk,double *s) {

double t=tt;

int i;

double a1,f1;

a[0]=0;f[0]=func(xk,a[0],s);

for(i=0;;i++)

{

a[1]=a[0]+t;

f[1]=func(xk,a[1],s);

if(f[1]

if(fabs(f[1]-f[0])>=ad)

{

t=-t;

a[0]=a[1];f[0]=f[1];

}

else

{

if(ia==1) return;

t=t/2;ia=1;

}

}

for(i=0;;i++)

{

a[2]=a[1]+t;

if(f[2]>f[1]) break;

t=2*t;

a[0]=a[1];f[0]=f[1];

a[1]=a[2];f[1]=f[2];

}

if(a[0]>a[2])

{

a1=a[0];

f1=f[0];

a[0]=a[2];

f[0]=f[2];

a[2]=a1;

f[2]=f1;

}

return;

}

double lagrange(double *xk,double *ft,double *s)

{

int i;

double a[3],f[3];

double b,c,d,aa;

finding(a,f,xk,s);

for(i=0;;i++)

{

if(ia==1) { aa=a[1]; *ft=f[1]; break; }

d=(pow(a[0],2)-pow(a[2],2))*(a[0]-a[1])-(pow(a[0],2)-pow(a[1],2))*(a[0]-a[2]);

if(fabs(d)==0) break;

c=((f[0]-f[2])*(a[0]-a[1])-(f[0]-f[1])*(a[0]-a[2]))/d;

if(fabs(c)==0) break;

b=((f[0]-f[1])-c*(pow(a[0],2)-pow(a[1],2)))/(a[0]-a[1]);

aa=-b/(2*c);

*ft=func(xk,aa,s);

if(fabs(aa-a[1])<=ad) {if(*ft>f[1]) aa=a[1];break;}

if(aa>a[1])

{

if(*ft>f[1]) {a[2]=aa;f[2]=*ft;}

else if(*ft

else if(*ft==f[1])

{

f[2]=*ft;f[0]=f[1];

a[1]=(a[0]+a[2])/2;

f[1]=func(xk,a[1],s);

}

}

else

{

if(*ft>f[1]) {a[0]=aa;f[0]=*ft;}

else if(*ft

{a[0]=aa;a[2]=a[1];

f[0]=*ft;f[2]=f[1];

a[1]=(a[0]+a[2])/2;

f[1]=func(xk,a[1],s);

}

}

}

if(*ft>f[1]) {*ft=f[1];aa=a[1];}

return aa;

}

double *gradient(double *xk)

{

double *g,f1,f2,q;

int i;

g=(double*)malloc(n*sizeof(double));

f1=fny(xk);

for(i=0;i

{q=ff;

xk[i]=xk[i]+q; f2=fny(xk);

g[i]=(f2-f1)/q; xk[i]=xk[i]-q;

}

return g;

}

double * bfgs(double *xk)

{

double u[n],v[n],h[n][n],dx[n],dg[n],s[n];

double aa,ib;

double *ft,*xk1,*g1,*g2,*xx,*x0=xk;

double fi;

int i,j,k;

基本运算电路实验报告

实报告 课程名称:电路与模拟电子技术实验指导老师:成绩: 实验名称:基本运算电路设计实验类型:同组学生姓名: 一、实验目的和要求: 实验目的: 1、掌握集成运算放大器组成的比例、加法和积分等基本运算电路的设计。 2、了解集成运算放大器在实际应用中应考虑的一些问题。 实验要求: 1、实现两个信号的反向加法运算 2、用减法器实现两信号的减法运算 3、用积分电路将方波转化为三角波 4、实现同相比例运算(选做) 5、实现积分运算(选做) 二、实验设备: 双运算放大器LM358 三、实验须知: 1.在理想条件下,集成运放参数有哪些特征? 答:开环电压增益很高,开环电压很高,共模抑制比很高,输入电阻很大,输入电流接近于零,输出电阻接近于零。2.通用型集成运放的输入级电路,为啥均以差分放大电路为基础? 答:(1)能对差模输入信号放大 (2)对共模输入信号抑制 (3)在电路对称的条件下,差分放大具有很强的抑制零点漂移及抑制噪声与干扰的能力。 3.何谓集成运放的电压传输特性线?根据电压传输特性曲线,可以得到哪些信 息? 答:运算放大器的电压传输特性是指输出电压和输入电压之比。4.何谓集成运放的输出失调电压?怎么解决输出失调? 答:失调电压是直流(缓变)电压,会叠 加到交流电压上,使得交流电的零线偏移 (正负电压不对称),但是由于交流电可 以通过“隔直流”电容(又叫耦合电容) 输出,因此任何漂移的直流缓变分量都不 能通过,所以可以使输出的交流信号不受 失调电压的任何影响。 专业: 姓名: 日期: 地点:紫金港东

5.在本实验中,根据输入电路的不同,主要有哪三种输入方式?在实际运用中这三种输入方式都接成何种反馈形式,以实现各种模拟运算? 答:反相加法运算电路,反相减法运算电路,积分运算电路。都为负反馈形式。 四、实验步骤: 1.实现两个信号的反相加法运算 实验电路: R′= Rl//R2//RF 电阻R'的作用:作为平衡电阻,以消除平均偏置电流及其漂移造成的运算误差 输入信号v s1v s1输出电压v o ,1kHz 0 2.减法器(差分放大电路) 实验电路: R1=R2、R F=R3 输入信号v s1v s1输出电压v o ,1kHz 0 共模抑制比850 3.用积分电路转换方波为三角波 实验电路: 电路中电阻R2的接入是为了抑制由I IO、V IO所造成的积分漂移,从而稳定运放的输出零点。 在t<<τ2(τ2=R2C)的条件下,若v S为常数,则v O与t 将近似成线性关系。 因此,当v S为方波信号并满足T p<<τ2时(T p为方波半个周期时间),则v O将转变

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

实验优化设计考试答案

第一题 考察温度对烧碱产品得率的影响,选了四种不同温度进行试验,在同一温度下进行了5次试验(三数据见下表)。希望在显着性水平为。 1.SSE的公式 2.SSA的公式 3.将表格粘贴进Excel,然后进行数据分析,勾选标于第一行,显示在下面 P=,远小于,所以是显着的 “方差分析” “响应C1C2C3C4” “选单因素未重叠” 4.打开Minitab,复制表格, “统计” 点击“比较”勾选第一个,确定 结果:工作表3 单因子方差分析:60度,65度,70度,75度 来源自由度SSMSFP 因子误差合计 S==%R-Sq(调整)=% 平均值(基于合并标准差)的单组95%置信区间 水平N平均值标准差------+---------+---------+---------+--- 60度度度度合并标准差= Tukey95%同时置信区间 所有配对比较 单组置信水平=% 60度减自: 下限中心上限------+---------+---------+---------+--- 65度度度度减自: 下限中心上限------+---------+---------+---------+--- 70度度度减自: 下限中心上限------+---------+---------+---------+--- 75度获得结果,区间相交包含的不明显,反之明显 第二题 为研究线路板焊点拉拔力与烘烤温度、烘烤时间和焊剂量之间关系。从生产过程中收集20批数据,见下表: 1.将表格粘贴进Minitab,然后“统计”“回归”“回归”“响应,变量”“图形,四 合一” 2.P小于,显着 4.残差分析 第三题 钢片在镀锌前需要用酸洗方法除锈, 为提高除锈效率,缩短酸洗时间,需 要寻找好的工艺参数。现在试验中考 察如下因子与水平:

西安交大结构优化设计实验报告

结构优化设计实验报告 1.实验背景 结构优化能在保证安全使用的前提下保证工程结构减重,提高工程的经济效益,这也是课程练习的有效补充。 2.实验课题 问题1:考察最速下降法、拟牛顿法(DFP,BFGS)、单纯形法的性能,使用matlab中的fminunc 和fminsearch 函数。 ●目标函数1: 目标函数,多元二次函数 其中,,,, 初值 ●目标函数2 1.3 结果分析:从上述结果可以看出牛顿法具有较好的稳定性,最速下降法和单纯形法在求解超越函数时稳定性不佳,最速下降法迭代次数最少,单纯形法

迭代次数最多。 问题2:使用matlab中的linprog和quadprog函数验证作业的正确性。 用单纯形法求解线性规划问题的最优解 ●目标函数1 6 , 运行结果: 单纯形法的解析解 用两相法求解线性规划问题的最优解 ●目标函数2 , 运行结果: 单纯形法的解析解 求解二次规划问题的最优解 ●目标函数2 , , 运行结果:

问题3:用Matlab命令函数fmincon求解非线性约束规划问题 ●目标函数1 运行结果: 迭代次数:8 ●目标函数2 运行结果: 迭代次数:16 问题4:用Matlab命令函数fmincon求解人字形钢管架优化问题。已知:2F = 600kN,2B = 6 m,T=5 mm,钢管材料E = 210 GPa,密度=, 许用应力[ ]=160MPa,根据工艺要求2m ≤ h≤6m ,20mm ≤ D≤300mm 。求h , D 使总重量W为最小。

求 目标函数1 运行结果:

迭代次数:8 问题5:修改满应力程序opt4_1.m 和齿形法程序opt4_2.m ,自行设计一个超静定桁架结构,并对其进行优化。要求: (1)设计变量数目不小于2; (2)给出应力的解析表达式; (3)建立以重量最小为目标函数、应力为约束的优化模型。 分别用满应立法和齿轮法求解图2超静定结构,已知材料完全相同, , , 2000,1500==σσ , 满应力法和齿轮法运行结果:

电路基础实验报告

北京交通大学电路基础实验报告

实验目的: (1)学习MultiSim2001建立电路、直流电路的分析方法。 (2)掌握伏安特性的测量。 (3)通过实验,加深对叠加定理和戴维南定理的理解。 实验内容: 1)测量二极管的伏安特性 (1)建立如右图所示的仿真Array电路。 (2)启动Simulate菜单中的 Analyses下的DC Sweep 设置相应的参数后,单击Simulate按钮,得到二极管的伏 安特性曲线。 2)验证叠加定理Array(1)建立如右图 所示的仿真电路。 (2)启动仿真开 关后,用电压表分 别测出V1、V2单 独作用和共同作 用时个支路的电压值,验证叠加定理。 3)验证戴维南定理 (1)建立如下图所示的仿真电路。(其中a对应2的位置,

b 对应0的位置) (2)用电压表测量R3断开时a 、b 端口的开路电压。 (3)将电阻R3短路,用电流表测量a 、b 端口短路电压。 (4)计算出等效电阻。重新建立一仿真电路,调出一个直流电压源,设置其电压为测量出的开路电压值,调一个电阻值为计算出的等效电阻,与R3电阻串联成一个等效电路。再用电压表和电流表测量R3两端的电压和流过电流,验证戴维南定理。 实验过程: 1) 测量二极管的伏安特性。 如右图,建立仿真电路图后,启动Simulate 菜单中的Analyses 下的DC Sweep 命令,设置相应的参数后,单击Simulate 按钮,得到二极管的伏安特性曲线如下:

2)验证叠加定理。 V1单独作用: 令V2=0.启动仿真开关如下图: U11=8.727V U21=3.273V U31=3.273V V2单独作用: 令V1=0,启动仿真开关如下图:

北京理工大学《数据结构与算法设计》实验报告实验一

《数据结构与算法设计》 实验报告 ——实验一 学院: 班级: 学号: 姓名:

一、实验目的 1.通过实验实践、巩固线性表的相关操作; 2.熟悉VC环境,加强编程、调试的练习; 3.用C语言编写函数,实现循环链表的建立、插入、删除、取数据等基本操作; 4.理论知识与实际问题相结合,利用上述基本操作实现约瑟夫环。 二、实验内容 1、采用单向环表实现约瑟夫环。 请按以下要求编程实现: ①从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的 结点编号依次为1,2,……,m。 ②从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到 第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点 的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出 了这个环表的全部结点为止。 三、程序设计 1、概要设计 为实现上述程序功能,应用单向环表寄存编号,为此需要建立一个抽象数据类型:单向环表。 (1)、单向环表的抽象数据类型定义为: ADT Joseph{ 数据对象:D={ai|ai∈ElemSet,i=1,2,3……,n,n≥0} 数据关系:R1={ |ai∈D,i=1,2,……,n} 基本操作: create(&L,n) 操作结果:构造一个有n个结点的单向环表L。 show(L) 初始条件:单向环表L已存在。 操作结果:按顺序在屏幕上输出L的数据元素。 Josephf( L,m,s,n) 初始条件:单向环表L已存在, s>0,n>0,s

试验优化设计与分析(教材)

试验优化设计与分析(教材) 成果总结 成果完成人:任露泉,丛茜,杨印生,李建桥,佟金成果完成单位:吉林大学 推荐等级建议:二等奖

1.立项背景 在现代社会实现过程和目标的最优化,已成为解决科学研究、工程设计、生产管理以及其他方面实际问题的一项重要原则。试验优化技术因其具有设计灵活、计算简便、试验次数少、优化成果多、可靠性高、适用面广等特点,已成为现代设计方法中一个先进的设计方法,成为发达国家企业界人士、工程技术人员、研究人员和管理人员的必备技术,它对于创造利润和提高生产率起着巨大的作用。因此在我国为了赶超世界先进水平,促进科研、生产和管理事业的发展,编著相关教材,大力推广与应用试验优化技术,不仅具有普遍的实际意义,也具有一定的迫切性。 20世纪80年代初,鉴于国民经济建设实践和科学技术研究中对试验优化技术的广泛需求,为推动教学改革、提高教学质量,任露泉教授对试验优化理论与技术进行了深入系统研究,为本科生开设了“试验设计”课程,为研究生开设了“试验优化技术”课程,并于1987年由机械工业出版社出版了教材《试验优化技术》,产生了很高的学术与技术影响。 2001年任露泉教授在《试验优化技术》一书的基础上编著了《试验优化设计与分析》教材,由吉林科技出版社出版发行。该教材是对1987年出版的《试验优化技术》的修改、补充和发展。作者根据对试验优化的教学和科研应用的多年实践与体会,为适应读者学习与使用的实际需要,调整修改了原书中的部分内容和一些方法的设计程式;补充了一些试验优化设计的新方法、新技术;增添了试验优化的一些最新应用实例;并增加了试验优化分析一篇。 本教材2001年获吉林省长白山优秀图书一等奖,2002年被遴选为教育部全国研究生教学用书,再次出版发行,2004年获吉林省教学成果一等奖。 2.教材内容 本教材万字,共分三篇二十一章。第一篇试验设计,除正交设计、干扰控制设计与数据处理等常用技术外,还介绍SN比设计、均匀设计、广义设计、调优运算及稳健设计等正交试验设计技术的拓广应用和现代发展的最新方法;第二篇回归设计,除各种回归的正交设计、旋转设计、饱和设计、多项式设计、还介绍多次变换设计、交互作用搜索设计、混料设计以及D-最优设计等回归设计技术的进一步完善与最新应用技术;在第三篇试验优化技术分析中,介绍了试验数据处理过程中经常遇到的难题及其解决办法,数据分析的最新研究成果及其应用实例。例如:有偏估计、PPR分析、探索性数据分析等;此外还介绍了试验优化的常用统计软件。 3.教材特点

优化设计报告

优化设计实验报告

无约束非线性规划问题 ) sin(1)(min 2 2 35x e x x x x f x -+-++= fun='(x^5+x^3+x^2-1)/(exp(x^2)+sin(-x))'; ezplot(fun,[-2,2]); [xopt,fopt,exitflag,output]=fminbnd(fun,-2,2) 输出: xopt = 0.2176 fopt = -1.1312 exitflag = 1 output = iterations: 12 funcCount: 13 algorithm: 'golden section search, parabolic interpolation' message: [1x112 char]

二维无约束非线性函数最优解 )12424()(min 2212 2211++++=x x x x x e X f x fun='exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)'; x0=[0,0]; options=optimset('largescale','off','display','iter','tolx',1e-8,'tolfun',1e-8); [x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0,options) f='exp(x)*(4*x^2+2*y^2+4*x*y+2*y+1)'; ezmesh(f); First-order Iteration Func-count f(x) Step-size optimality 0 3 1 2 1 9 0.717044 0.125092 1.05 2 15 0.073904 10 1.28 3 21 0.000428524 0.430857 0.0746 4 24 0.000144084 1 0.0435 5 27 1.95236e-008 1 0.000487 6 30 6.63092e-010 1 9.82e-005 7 33 1.46436e-015 1 4.91e-008 Local minimum possible. fminunc stopped because it cannot decrease the objective function along the current search direction. Computing finite-difference Hessian using user-supplied objective function. x = 0.5000 -1.0000 fval = 1.4644e-015 exitflag = 5 output =

电路基础实验报告 日光灯功率因素改善实验

实验题目: 日光灯电路改善功率因数实验 一、实验目的 1、了解日光灯电路的工作原理及提高功率因数的方法; 2、通过测量日光灯电路所消耗的功率,学会电工电子电力拖动实验装置; 3、学会日光灯的接线方法。 二、实验原理 用P 、S 、I 、V 分别表示电路的有功功率、视在功率、总电流和电源电压。按定义电路的功率因数IU P S P = = ?cos 。由此可见,在电源电压且电路的有功功率一定时,电路的功率因数越高,它占用电源(或供电设备)的容量S 就越少。 日光灯电路中,镇流器是一个感性元件(相当于电感与电阻的串联),因此它是一个感性电路,且功率因数很低,约0.5—0.6。 提高日光灯电路(其它感性电路也是一样)功率因数的方法是在电路的输入端并联一定容量的电容器。如图7-1所示: 图7-1 图7-2 图7-1 并联电容提高功率因数电路 图7-2 并联电容后的相量图 图7-1中L 为镇流器的电感,R 为日光灯和镇流器的等效电阻,C 为并联的电容器, 设并联电容后电路总电流I ,电容支路电流C I ,灯管支路电流RL I (等于未并电容前电路中的总电流),则三者关系可用相量图如图7-2所示。由图7-2知,并联电容C 前总电流 为RL I ,RL I 与总电压U 的相位差为L ?,功率因数为L ?cos ;并联电容C 后的总电流为I ,I 与总电压U 的相位差为?,功率因数为?cos ;显然?cos >L ?cos ,功率被提高了。并联电容C 前后的有功功率??cos cos IU U I P L RL ==,即有功功率不变。并联电容C 后的 总电流I 减小,视在功率IU S =则减小了,从而减轻了电源的负担,提高了电源的利用率。 三、实验设备 电工电子电力拖动实验装置一台,型号:TH-DT 、导线若干 四、实验内容 1、功率因数测试 按照图7-3的电路 实验电路如图7-3所示,将三表测得的数据记录于表7-1中。 图7-3 日光灯实验电路 W 为功率表,C 用可调电容箱。 五、实验数据与分析 表7-1 感性电路并联电容后的原始数据 C (μF ) P(瓦) V (伏) I (安) Cos ф 0 44.7 220 0.410 0.42

算法设计与实验报告讲解

算法设计与分析实验报告 学院:信息学院 专业:物联网1101 姓名:黄振亮 学号:20113379 2013年11月

目录 作业1 0-1背包问题的动态规划算法 (7) 1.1算法应用背景 (3) 1.2算法原理 (3) 1.3算法描述 (4) 1.4程序实现及程序截图 (4) 1.4.1程序源码 (4) 1.4.2程序截图 (5) 1.5学习或程序调试心得 (6) 作业2 0-1背包问题的回溯算法 (7) 2.1算法应用背景 (3) 2.2算法原理 (3) 2.3算法描述 (4) 2.4程序实现及程序截图 (4) 2.4.1程序源码 (4) 2.4.2程序截图 (5) 2.5学习或程序调试心得 (6) 作业3循环赛日程表的分治算法 (7) 3.1算法应用背景 (3) 3.2算法原理 (3) 3.3算法描述 (4) 3.4程序实现及程序截图 (4)

3.4.1程序源码 (4) 3.4.2程序截图 (5) 3.5学习或程序调试心得 (6) 作业4活动安排的贪心算法 (7) 4.1算法应用背景 (3) 4.2算法原理 (3) 4.3算法描述 (4) 4.4程序实现及程序截图 (4) 4.4.1程序源码 (4) 4.4.2程序截图 (5) 4.5学习或程序调试心得 (6)

作业1 0-1背包问题的动态规划算法 1.1算法应用背景 从计算复杂性来看,背包问题是一个NP难解问题。半个世纪以来,该问题一直是算法与复杂性研究的热点之一。另外,背包问题在信息加密、预算控制、项目选择、材料切割、货物装载、网络信息安全等应用中具有重要的价值。如果能够解决这个问题那么则具有很高的经济价值和决策价值,在上述领域可以获得最大的价值。本文从动态规划角度给出一种解决背包问题的算法。 1.2算法原理 1.2.1、问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 形式化描述:给定c >0, wi >0, vi >0 , 1≤i≤n.要求找一n元向量(x1,x2,…,xn,), xi ∈{0,1}, ?∑ wi xi≤c,且∑ vi xi达最大.即一个特殊的整数规划问题。 1.2.2、最优性原理: 设(y1,y2,…,yn)是 (3.4.1)的一个最优解.则(y2,…,yn)是下面相应子问题的一个最优解: 证明:使用反证法。若不然,设(z2,z3,…,zn)是上述子问题的一个最优解,而(y2,y3,…,yn)不是它的最优解。显然有 ∑vizi > ∑viyi (i=2,…,n) 且 w1y1+ ∑wizi<= c 因此 v1y1+ ∑vizi (i=2,…,n) > ∑ viyi, (i=1,…,n) 说明(y1,z2, z3,…,zn)是(3.4.1)0-1背包问题的一个更优解,导出(y1,y2,…,yn)不是背包问题的最优解,矛盾。 1.2.3、递推关系:

实验报告-优化设计

福建农林大学金山学院实验报告 系(教研室):信息与机电工程系专业:机械设计制造及其自动化年级:2008 实验课程:优化设计姓名:学号:实验室号:_1# 607 计算机号:实验时间:指导教师签字:成绩: 一、实验目的 通过实验教学加深学生对优化设计方法的理解,培养学生程序调试和出错处理的能力,提高学生应用优化设计方法和程序设计的能力。 本实验课程的基本要求: 1)熟悉VB集成开发环境的使用,掌握设计程序和调试程序的基本方法。 2)掌握一些重要优化算法,并具有较强的编程能力和解决实际优化问题的能力。 3)具有设计简单综合应用型程序的能力。 二、实验内容及进度安排 1、进退法2学时 2、黄金分割法2学时 3、基于最优步长的坐标轮换法2学时 4、鲍威尔法4学时 三、实验设备 微型计算机100台以上,并已安装Visual Basic 6.0。 四、实验要求 1. 设计程序总体编程结构,根据程序N-S图,设计编写出程序; 2. 完成程序调试,并进行实验结果分析; 3. 完成实验报告。 五、实验注意事项 1. 树立严肃认真、一丝不苟的工作精神,养成实验时的正确方法和良好习惯,维护国 家财产不受损失; 2. 严格遵守实验室的规章制度,注意保持实验室内整洁; 3. 上机过程中注意保存程序,以免数据丢失,结束后应存储到个人移动设备并关闭计 算机; 4. 认真做好上机前的准备工作,实验后认真完成实验报告。 六、实验操作步骤及方法 (一).上机前的准备工作包括以下几个方面 1.复习和掌握与本次实验有关的教学内容。 2.根据实验的内容,对问题进行认真的分析,搞清楚要解决的问题是什么?给定的条件 是什么?要求的结果是什么?需要使用什么类型的数据(如整型、实型、双精度型、字符型等)?制定好程序总体编程结构。 3.根据程序N-S图,设计、编写出程序,在纸上编写好相关功能的事件代码。

电路基础实验报告

基尔霍夫定律和叠加定理的验证 组长:曹波组员:袁怡潘依林王群梁泽宇郑勋 一、实验目的 通过本次实验验证基尔霍夫电流定律和电压定律加深对“节点电流代数和”及“回路电压代数和”的概念的理解;通过实验验证叠加定理,加深对线性电路中可加性的认识。 二、实验原理 ①基尔霍夫节点电流定律[KCL]:在集总电路中,任何时刻,对任一结点,所有流出结点的支路电流的代数和恒等于0。 ②基尔霍夫回路电压定律[KVL]:在集总电路中,任何时刻,沿任一回路,所有支路电压的代数和恒等于0。 ③叠加定理:在线性电阻电路中,某处电压或电流都是电路中各个独立电源单独作用时,在该处分别产生的电压或电流的叠加。 三、实验准备 ①仪器准备 1.0~30V可调直流稳压电源 2.±15V直流稳压电源 3.200mA可调恒流源 4.电阻 5.交直流电压电流表 6.实验电路板 7.导线

②实验电路图设计简图 四、实验步骤及内容 1、启动仪器总电源,连通整个电路,分别用导线给电路中加上直流电压U1=15v,U2=10v。 2、先大致计算好电路中的电流和电压,同时调好各电表量程。 3、依次用直流电压表测出电阻电压U AB、U BE、U ED,并记录好电压表读数。 4、再换用电流表分别测出支路电流I1、I2、I3,并记录好电流读数。 5、然后断开电压U2,用直流电压表测出电阻电压U、BE,用电流表分别测出支路电流I、1并记录好电压表读数。 6、然后断开电压U1,接通电压U2,用直流电压表测出电阻电压U、、BE,用电流表分别测出支路电流I、、1并记录好电压表读数。 7、实验完毕,将各器材整理并收拾好,放回原处。 实验过程辑录 图1 测出U AB= 图2 测出电压U BE=

银行家算法设计实验报告

银行家算法设计实验报告

银行家算法设计实验报告 一.题目分析 1.银行家算法: 我们可以把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求资源相当于客户向银行家贷款。操作系统按银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程尚需求的资源量,若是系统现存的资源可以满足它尚需求的资源量,则按当前的申请量来分配资源,否则就推迟分配。 当进程在执行中继续申请资源时,先测试该进程申请的资源量是否超过了它尚需的资源量。若超过则拒绝分配,若没有超过则再测试系统尚存的资源是否满足该进程尚需的资源量,若满足即可按当前的申请量来分配,若不满足亦推迟分配。 2.基本要求: (1)可以输入某系统的资源以及T0时刻进程对资源的占用及需求情况的表项,以及T0时刻系统的可利用资源数。 (2)对T0时刻的进行安全性检测,即检测在T0时刻该状态是否安全。

(3)进程申请资源,用银行家算法对其进行检测,分为以下三种情况: A. 所申请的资源大于其所需资源,提示分配不合理不予分配并返回 B. 所申请的资源未大于其所需资源, 但大于系统此时的可利用资源,提 示分配不合理不予分配并返回。 C. 所申请的资源未大于其所需资源, 亦未大于系统此时的可利用资源,预 分配并进行安全性检查: a. 预分配后系统是安全的,将该进 程所申请的资源予以实际分配并 打印后返回。 b. 与分配后系统进入不安全状态,提示系统不安全并返回。 (4)对输入进行检查,即若输入不符合条件,应当报错并返回重新输入。 3.目的: 根据设计题目的要求,充分地分析和理解题 目,叙述系统的要求,明确程序要求实现的功能以及限制条件。 明白自己需要用代码实现的功能,清楚编写每部分代码的目的,做到有的放矢,有条理不遗漏的用代码实现银行家算法。

实验优化设计考试答案精选文档

实验优化设计考试答案 精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

第一题 考察温度对烧碱产品得率的影响,选了四种不同温度进行试验,在同一温度下进行了5次试验(三数据见下表)。希望在显着性水平为。 1.SSE的公式 2.SSA的公式 3.将表格粘贴进Excel,然后进行数据分析,勾选标于第一行,显示在下面 P=,远小于,所以是显着 的 4.打开Minitab,复制表 格,“统计”“方差分 析”“选单因素未重 叠”“响应 C1C2C3C4” 点击“比较”勾选第一 个,确定 结果: 工作表 3 单因子方差分析: 60度, 65度, 70度, 75度 来源自由度 SS MS F P 因子 3

误差 16 合计 19 S = R-Sq = % R-Sq(调整) = % 平均值(基于合并标准差)的单组 95% 置信区间水平 N 平均值标准差 ------+---------+---------+---------+--- 60度 5 (------*------) 65度 5 (------*------) 70度 5 (------*------) 75度 5 (------*------) ------+---------+---------+---------+--- 合并标准差 = Tukey 95% 同时置信区间 所有配对比较 单组置信水平 = % 60度减自: 下限中心上限 ------+---------+---------+---------+--- 65度 (------*------) 70度 (------*-----) 75度 (------*------) ------+---------+---------+---------+--- 65度减自: 下限中心上限 ------+---------+---------+---------+--- 70度 (------*-----) 75度 (------*------) ------+---------+---------+---------+--- 70度减自:

优化设计实验指导书(完整版)

优化设计实验指导书 潍坊学院机电工程学院 2008年10月 目录

实验一黄金分割法 (2) 实验二二次插值法 (5) 实验三 Powell法 (8) 实验四复合形法 (12) 实验五惩罚函数法 (19)

实验一黄金分割法 一、实验目的 1、加深对黄金分割法的基本理论和算法框图及步骤的理解。 2、培养学生独立编制、调试黄金分割法C语言程序的能力。 3、掌握常用优化方法程序的使用方法。 4、培养学生灵活运用优化设计方法解决工程实际问题的能力。 二、实验内容 1、编制调试黄金分割法C语言程序。 2、利用调试好的C语言程序进行实例计算。 3、根据实验结果写实验报告 三、实验设备及工作原理 1、设备简介 装有Windows系统及C语言系统程序的微型计算机,每人一台。 2、黄金分割法(0.618法)原理 0.618法适用于区间上任何单峰函数求极小点的问题。对函数除“单峰”外不作 其它要求,甚至可以不连续。因此此法适用面相当广。 0.618法采用了区间消去法的基本原理,在搜索区间内适当插入两点和,它们把 分为三段,通过比较和点处的函数值,就可以消去最左段或最右段,即完成一次迭代。 然后再在保留下来的区间上作同样处理,反复迭代,可将极小点所在区间无限缩小。 现在的问题是:在每次迭代中如何设置插入点的位置,才能保证简捷而迅速地找到极小点。 在0.618法中,每次迭代后留下区间内包含一个插入点,该点函数值已计算过,因此以后的每次迭代只需插入一个新点,计算出新点的函数值就可以进行比较。 设初始区间[a,b]的长为L。为了迅速缩短区间,应考虑下述两个原则:(1)等比收缩原理——使区间每一项的缩小率不变,用表示(0<λ<1)。 (2)对称原理——使两插入点x1和x2,在[a,b]中位置对称,即消去任何一边区间[a,x1]或[x2,b],都剩下等长区间。 即有 ax1=x2b 如图4-7所示,这里用ax1表示区间的长,余类同。若第一次收缩,如消去[x2,b]区间,则有:λ=(ax2)/(ab)=λL/L 若第二次收缩,插入新点x3,如消去区间[x1,x2],则有λ=(ax1)/(ax2)=(1-λ)L/λL

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

优化设计实验报告(...)(1)

机械优化设计 实 验 报 告 姓名:欧阳龙 学号:2007500817 班级:07机设一班

一、黄金分割法 1、 数学模型 2()2f x x x =+,56x -≤≤ 2、 黄金分割法简介 黄金分割法适用于单谷函数求极小值问题,且函数可以不连续。黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间[],a b 内适当插入两点1α、2α,并计算其函数值。1α、2α将区间分成三段。应用函数的单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。然后再在保留下来的区间上作同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。黄金分割法能使相邻两次都具有相同的缩短率0.618,故黄金分割法又称作0.618法。 3、黄金分割法程序清单 #include #include /*目标函数*/ float ff(float x) { float y; y=x*x+2*x; return(y); } main() { float a,b,ab,Epsilon; float y1,y2,Alpha1,Alpha2; float Lambda=0.618; printf("please input the arear and Epsilon\n"); scanf("%f,%f,%f",&a,&b,&Epsilon); Alpha1=b-Lambda*(b-a),Alpha2=a+Lambda*(b-a); printf("%f,%f\n",Alpha1,Alpha2); y1=ff(Alpha1);y2=ff(Alpha2); printf("y1=%f,y2=%f\n",y1,y2); do {if(y1>=y2) {a=Alpha1; Alpha1=Alpha2; y1=y2; Alpha2=a+Lambda*(b-a); y2=Alpha2*Alpha2+2*Alpha2; }

电路分析基础实验报告

实验一 1. 实验目的 学习使用workbench软件,学习组建简单直流电路并使用仿真测量仪表测量电压、电流。 2.解决方案 1)基尔霍夫电流、电压定理的验证。 解决方案:自己设计一个电路,要求至少包括两个回路和两个节点,测量节点的电流代数和与回路电压代数和,验证基尔霍夫电流和电压定理并与理论计算值相比较。 2)电阻串并联分压和分流关系验证。 解决方案:自己设计一个电路,要求包括三个以上的电阻,有串联电阻和并联电阻,测量电阻上的电压和电流,验证电阻串并联分压和分流关系,并与理论计算值相比较。 3.实验电路及测试数据 4.理论计算 根据KVL和KCL及电阻VCR列方程如下: Is=I1+I2, U1+U2=U3, U1=I1*R1,

U2=I1*R2, U3=I2*R3 解得,U1=10V,U2=20V,U3=30V,I1=5A,I2=5A 5. 实验数据与理论计算比较 由上可以看出,实验数据与理论计算没有偏差,基尔霍夫定理正确; R1与R2串联,两者电流相同,电压和为两者的总电压,即分压不分流; R1R2与R3并联,电压相同,电流符合分流规律。 6. 实验心得 第一次用软件,好多东西都找不着,再看了指导书和同学们的讨论后,终于完成了本次实验。在实验过程中,出现的一些操作上的一些小问题都给予解决了。 实验二 1.实验目的 通过实验加深对叠加定理的理解;学习使用受控源;进一步学习使用仿真测量仪表测量电压、电流等变量。 2.解决方案 自己设计一个电路,要求包括至少两个以上的独立源(一个电压源和一个电流源)和一个受控源,分别测量每个独立源单独作用时的响应,并测量所有独立源一起作用时的响应,验证叠加定理。并与理论计算值比较。 3. 实验电路及测试数据 电压源单独作用:

算法与设计实验报告

算法与分析实验报告软件工程专业 安徽工业大学 指导老师:许精明

实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 一:实验目的 1:掌握动态规划算法的基本思想,学会用其解决实际问题。 2:通过几个基本的实验,提高算法分析与设计能力,提高动手操作能力和培养良好的编程习惯。 二:实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 实验一:杨辉三角

问题分析: ①每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 ②第n行数之和为2^n。 ③下一行每个数字等于上一行的左右两个数字之和。 算法设计及相关源代码: public void yanghui(int n) { int[] a = new int[n]; if(n==1){ System.out.println(1); }else if(n==2) { System.out.print(1 + " " +1); }else{ a[1]=1; System.out.println(a[1]); a[2]=1;

System.out.println(a[1]+" "+a[2]); for(int i=3;i<=n;i++){ a[1]=a[i]=1; for(int j=i-1;j>1;j--){ a[j]=a[j]+a[j-1]; } for(int j=1;j<=i;j++){ System.out.print(a[j]+" "); } System.out.println(); } } } 实验结果:n=10 实验二:0-1背包问题 问题分析::令V(i,j)表示在前i(1<=i<=n)个物品中能够装入容量为就 j(1<=j<=C)的背包中的物品的最大价值,则可以得到如下的动态规划函数: (1) V(i,0)=V(0,j)=0 (2) V(i,j)=V(i-1,j) j

机械优化设计一维搜索实验报告

《机械优化设计》 实验报告 班级: 机械设计(2)班 姓名:邓传淮 学号:0901102008

1 实验名称:一维搜索黄金分割法求最佳步长 2 实验目的:通过上机编程,理解一维搜索黄金分割法的原理,了解计算机在优化设计中的应用。 3 黄金分割法的基本原理 黄金分割法是用于一元函数f(x)在给定初始区间[a,b]内搜索极小点α*的一种方法。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,但它只适用于一维区间上的凸函数[6],即只在单峰区间内才能进行一维寻优,其收敛效率较低。其基本原理是:依照“去劣存优”原则、对称原则、以及等比收缩原则来逐步缩小搜索区间[7]。具体步骤是:在区间[a,b]内取点:a1 ,a2 把[a,b]分为三段。如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+r*(b-a);如果f(a1)

4实验所编程序框图(1)进退发确定单峰区间的计算框图

(2)黄金分割法计算框图

5 程序源代码 (1)进退发确定单峰区间的程序源代码 #include #include #define f(x) pow(x,4)-3*pow(x,3)-5*pow(x,2)-14*x+46 main() { int k; double x,h,x1,x2,x3; double f1,f2,f3,f; double a,b; x1=0; h=1; x2=x1+h; f1=f(x1); f2=f(x2); if (f1>f2) { h=2*h; x3=x2+h; f3=f(x3);

相关主题
文本预览
相关文档 最新文档