现代机械优化设计Matlab编程

《现代机械优化设计方法》

程 序

指导老师:

学 生:

学 号:

机电工程学院

2011年12月

一、一维优化问题练习题

1、minf(t)=t2-10t+36

黄金分割法

黄金分割法的基本思想:黄金分割法是通过不断单峰区间的长度来搜索极小点的一种有效方法,它是搜索区间比例缩小,通过计算比较函数值,以确定取舍区间。

黄金分割法程序框图

黄金分割法 matlab程序:

clc

syms t;

f=t^2-10*t+36;

a=2;b=10;

c=a+0.382*(b-a);

d=a+0.618*(b-a);

f1=subs(f,c);

f2=subs(f,d);

while(abs(b-a)>=0.01)

if(f1>f2)

a=c;c=d;f1=f2;

d=a+0.618*(b-a);f2=subs(f,d);

else if(f1

b=d;d=c;f2=f1;

1

c=a+0.382*(b-a);f1=subs(f,c);

else a=c;b=d;

c=a+0.382*(b-a);

d=a+0.618*(b-a);

end

end

end

t=0.5*(b+a)

f0=subs(f)

结果分析,给出的结果为最优解:,由于定义为单精度类型,故满足了精度要求。Matlab运行结果如下:

二、无约束优化问题

1、minf(X)=4(x1-5)2+(x2-6)2

(0)初始点:X=[89]T,f(X(0))=45

(1)梯度法

梯度法的基本思想:梯度方向就是函数值变化最大的方向,沿着梯度问题,函数值上升最快,而负梯度方向是函数值下降最快的方向,此方法是沿着负梯度方向进行搜索的无约束方法。

梯度法程序框图

2

梯度法在matlab程序:

(1)function y=fun(x1,x2)

y=4*(x1-5)^2+(x2-6)^2;%此定义子函数,并保存为fun.m文件。

(2) clc

syms x1 x2 d;

f=4*(x1-5)^2+(x2-6)^2;

fx1=diff(f,'x1');

fx2=diff(f,'x2');

x1=8;

x2=9;

for n=1:100

f0=subs(f);

f1=subs(fx1);

f2=subs(fx2);

if(double(sqrt(f1^2+f2^2))

n

x1=vpa(x1)

x2=vpa(x2)

f0=vpa(f0)

break;

else

3

D=fun(x1-d*f1,x2-d*f2);

Dd=diff(D,'d');

dd=solve(Dd);

x1=x1-dd*f1;

x2=x2-dd*f2;

end

end %此为梯度法的主函数,并保存为tdf.m文件。

经matlab运行结果如下:

(2)牛顿法

与一维搜索讲的牛顿法公式推导一样,只不过推广到n维。牛顿法收敛速度快。

牛顿法程序框图

4

牛顿法在matlab中的程序如下:

clc

syms x1 x2;

f=4*(x1-5)^2+(x2-6)^2;

fx1=diff(f,'x1');

fx2=diff(f,'x2');

fx1x1=diff(fx1,'x1');

fx1x2=diff(fx1,'x2');

fx2x1=diff(fx2,'x1');

fx2x2=diff(fx2,'x2');

x1=8;

x2=9;

for n=1:100

f0=subs(f);

f1=subs(fx1);

f2=subs(fx2);

if(double(sqrt(f1^2+f2^2))

n

x1=vpa(x1)

x2=vpa(x2)

f0=vpa(f0)

break;

else

5

X=[x1 x2]'-inv([fx1x1 fx1x2;fx2x1 fx2x2])*[f1 f2]';

x1=X(1,1);

x2=X(2,1);

end

end

经matlab运行结果如下:

三、约束优化方法

内点法基本思想

这种方法是将新目标函数定义于可行域内,迭代过程均在可行域内进行,逐步逼近最优点。内点法只能用来求解具有不等式约束的优化问题。1)在可行域内选一个初始点内点X0,初始点应选择一个离约束边界较远的可行点。2)选取适当的罚因子初值r0,降低系数c(0

内点法程序框图

6

Matlab程序:

clc;

count=0;

n=100;

r=1;

c=0.5;

flag=0;

x0=[3,3]';

esp=1.0e-5;

while(flag==0)&&(count

syms x1 x2;

f=(x1-2)^2+(x2-1)^2;

g1=x1^2-x2;

g2=x1+x2-2;

F=(x1-2)^2+(x2-1)^2+r*(log(g1)+log(g2)); f1=diff(F,x1);

f2=diff(F,x2);

s=solve(f1,f2,'x1','x2');

x1=[s.x1 s.x2]';

norm=subs(sqrt((x1(1)-x0(1))^2+(x1(2)-x0(2))^2)); if(norm

flag=1;

break;

end

7

x0=x1; r=c*r;

count=count+1; end

x1=x0(1) x2=x0(2) f=subs(f) count

程序的运行结果:

8

《现代机械优化设计方法》

程 序

指导老师:

学 生:

学 号:

机电工程学院

2011年12月

一、一维优化问题练习题

1、minf(t)=t2-10t+36

黄金分割法

黄金分割法的基本思想:黄金分割法是通过不断单峰区间的长度来搜索极小点的一种有效方法,它是搜索区间比例缩小,通过计算比较函数值,以确定取舍区间。

黄金分割法程序框图

黄金分割法 matlab程序:

clc

syms t;

f=t^2-10*t+36;

a=2;b=10;

c=a+0.382*(b-a);

d=a+0.618*(b-a);

f1=subs(f,c);

f2=subs(f,d);

while(abs(b-a)>=0.01)

if(f1>f2)

a=c;c=d;f1=f2;

d=a+0.618*(b-a);f2=subs(f,d);

else if(f1

b=d;d=c;f2=f1;

1

c=a+0.382*(b-a);f1=subs(f,c);

else a=c;b=d;

c=a+0.382*(b-a);

d=a+0.618*(b-a);

end

end

end

t=0.5*(b+a)

f0=subs(f)

结果分析,给出的结果为最优解:,由于定义为单精度类型,故满足了精度要求。Matlab运行结果如下:

二、无约束优化问题

1、minf(X)=4(x1-5)2+(x2-6)2

(0)初始点:X=[89]T,f(X(0))=45

(1)梯度法

梯度法的基本思想:梯度方向就是函数值变化最大的方向,沿着梯度问题,函数值上升最快,而负梯度方向是函数值下降最快的方向,此方法是沿着负梯度方向进行搜索的无约束方法。

梯度法程序框图

2

梯度法在matlab程序:

(1)function y=fun(x1,x2)

y=4*(x1-5)^2+(x2-6)^2;%此定义子函数,并保存为fun.m文件。

(2) clc

syms x1 x2 d;

f=4*(x1-5)^2+(x2-6)^2;

fx1=diff(f,'x1');

fx2=diff(f,'x2');

x1=8;

x2=9;

for n=1:100

f0=subs(f);

f1=subs(fx1);

f2=subs(fx2);

if(double(sqrt(f1^2+f2^2))

n

x1=vpa(x1)

x2=vpa(x2)

f0=vpa(f0)

break;

else

3

D=fun(x1-d*f1,x2-d*f2);

Dd=diff(D,'d');

dd=solve(Dd);

x1=x1-dd*f1;

x2=x2-dd*f2;

end

end %此为梯度法的主函数,并保存为tdf.m文件。

经matlab运行结果如下:

(2)牛顿法

与一维搜索讲的牛顿法公式推导一样,只不过推广到n维。牛顿法收敛速度快。

牛顿法程序框图

4

牛顿法在matlab中的程序如下:

clc

syms x1 x2;

f=4*(x1-5)^2+(x2-6)^2;

fx1=diff(f,'x1');

fx2=diff(f,'x2');

fx1x1=diff(fx1,'x1');

fx1x2=diff(fx1,'x2');

fx2x1=diff(fx2,'x1');

fx2x2=diff(fx2,'x2');

x1=8;

x2=9;

for n=1:100

f0=subs(f);

f1=subs(fx1);

f2=subs(fx2);

if(double(sqrt(f1^2+f2^2))

n

x1=vpa(x1)

x2=vpa(x2)

f0=vpa(f0)

break;

else

5

X=[x1 x2]'-inv([fx1x1 fx1x2;fx2x1 fx2x2])*[f1 f2]';

x1=X(1,1);

x2=X(2,1);

end

end

经matlab运行结果如下:

三、约束优化方法

内点法基本思想

这种方法是将新目标函数定义于可行域内,迭代过程均在可行域内进行,逐步逼近最优点。内点法只能用来求解具有不等式约束的优化问题。1)在可行域内选一个初始点内点X0,初始点应选择一个离约束边界较远的可行点。2)选取适当的罚因子初值r0,降低系数c(0

内点法程序框图

6

Matlab程序:

clc;

count=0;

n=100;

r=1;

c=0.5;

flag=0;

x0=[3,3]';

esp=1.0e-5;

while(flag==0)&&(count

syms x1 x2;

f=(x1-2)^2+(x2-1)^2;

g1=x1^2-x2;

g2=x1+x2-2;

F=(x1-2)^2+(x2-1)^2+r*(log(g1)+log(g2)); f1=diff(F,x1);

f2=diff(F,x2);

s=solve(f1,f2,'x1','x2');

x1=[s.x1 s.x2]';

norm=subs(sqrt((x1(1)-x0(1))^2+(x1(2)-x0(2))^2)); if(norm

flag=1;

break;

end

7

x0=x1; r=c*r;

count=count+1; end

x1=x0(1) x2=x0(2) f=subs(f) count

程序的运行结果:

8


相关内容

  • Matlab遗传算法工具箱的应用
  • ^工●砷化聩件技m0.I.Automation2005年第24卷第6期Softwwe1khnjque2005.VbI.24.No.6文章蚺号l10D6一],76(2D05)06一0115一02 Matlab遗传算法工具箱的应用 曾日波 (江西财经大学电子学院,江西南昌330013) 摘要:Matla ...

  • 浅谈数值分析在机械工程领域的应用
  • 浅谈数值分析在机械工程领域的应用 摘要: MATLAB是目前国际上最流行的科学与工程计算的软件工具, 它具有强大的数值分析.矩阵运算.信号处理.图形显示.模拟仿真和最优化设计等功能.本文浅谈MATLAB在机械设计优化问题的几点应用. 关键词: MATLAB 约束条件 机械设计优化 数值分析 引言:在 ...

  • 连杆混合驱动机构设计
  • 编号 本科生毕业设计 连杆混合驱动机构设计 Research On The Hybrid-drive Linkage Mechanism 学 生 姓 名 专 业 学 号 指 导 教 师 分 院 机械设计制造及其自动化 机电工程分院 年 月 中文摘要 本文以两曲柄分别为连杆和连架杆的一类混合输入五杆机 ...

  • Boost升压斩波电路
  • 2013 ~2014 学年 第 2 学期 <直流电机斩波电路> 课 程 设 计 报 告 题 目: 直流电机斩波电路 专 业: 自动化 班 级: 11自动化(1)班 姓 名: 李勇 刘城 刘备 李亚 卢伟 刘德 指导教师: 焦俊生 电气工程学院 2014年4月2日 1.任务书 2.答辩记录 ...

  • 计算机在机械学科的应用
  • 本文主要介绍计算机仿真的应用. 计算机仿真 计算机在机械制造中的应用 计算机仿真是应用电子计算机对系统的结构.功能和行为以及参与系统控制的人的思维过程和行为进行动态性比较逼真的模仿.它是一种描述性技术,是一种定量分析方法.通过建立某一过程和某一系统的模式,来描述该过程或该系统,然后用一系列有目的.有 ...

  • FIR数字滤波器设计
  • 长 治 学 院 2012届学士学位毕业论文 FIR 数字滤波器设计 学 号: 08405416 姓 名: 刘萍 指导教师: 张秀秀 专 业: 电子信息科学与技术 系 别: 电子信息与物理系 完成时间:2012年5月 FIR 数字滤波器的设计 专业:电子信息科学与技术 姓名:刘萍 学号:0848541 ...

  • 课程设计-哈夫曼编码的分析和实现
  • 课程设计任务书 2010-2011学年第一学期 专业: 通信工程 学号: 070110101 姓名: 苟孟洛 课程设计名称: 信息论与编码课程设计 设计题目: 哈夫曼编码的分析与实现 完成期限:自 2010 年 12月 20 日至 2010 年 12 月 26 日共 1 周 一.设计目的 1.深刻理 ...

  • 系统聚类分析课程设计
  • <空间分析> 系统聚类算法及编程实现 学院:地质工程与测绘学院 专业:遥感科学与技术 班级:2011260601 学号: 学生姓名: 指导老师:李斌 目录 第1章 前言--------------------3 第2章 算法设计背景----------------3 2.1 聚类要素的数 ...

  • 空间连杆机构运动分析可视化
  • 机械 2005年第10期 总第32卷 设计与研究 ·5· 空间连杆机构运动分析可视化 张艳辉,谢进 (西南交通大学 机械工程学院,四川 成都 610031) 摘要:可视化技术可以使空间机构的运动分析更加直观.以空间RSSR 机构为例,运用MATLAB .ADAMS 等可视化技术,分析机构的可动性,并 ...