MATLAB基于NCD优化的非线性优化PID控制

MATLAB基于NCD优化的非线性优化PID控制
MATLAB基于NCD优化的非线性优化PID控制

控制系统仿真课程设计

题目:基于NCD优化的非线性优化

PID控制

学生姓名:

学号:

专业:

班级:

指导教师:

目录

基于NCD优化的非线性优化PID控制 (4)

摘要 (4)

第一章绪论 (6)

1.1 课程设计的目的 (6)

1.2 课程设计的题目要求 (6)

第二章MA TLAB概述 (7)

2.1 MA TLAB简介 (7)

2.2 MA TLAB工作环境 (7)

2.3 MA TLAB操作界面简介 (8)

2.4 MA TLAB 语言 (8)

2.5 SIMULINK仿真集成环境简介 (8)

2.5.1 SIMILINK模块库介绍 (9)

第三章非线性控制系统及优化原理 (13)

第四章非线性控制系统的优化 (14)

4.1 非线性控制系统的设计 (14)

4.1.1 MATLAB/SIMULINK模型的建立 (14)

4.1.2 系统参数设定 (14)

4.2 非线性系统参数优化 (16)

4.2.1 Signal Constraint阶跃响应特性参数设定 (16)

4.2.2 设置优化参数 (17)

4.2.3 设置不确定参数范围 (18)

4.2.4 控制参数优化计算 (18)

第五章课程设计总结 (20)

基于NCD优化的非线性优化PID控制

摘要

PID控制是工业过程控制中应用最广的策略之一。因此PID控制器参数的优化设计成为人们关注的问题,它直接影响控制效果的好坏。目前PID参数的优化方法很多,如间接寻优法、专家整定法、单纯形法等。虽然,这些方法都具有良好的寻优特性,但却存在着一些弊端。(1)中仅仅将单纯形法应用于系统,仍然存在局部最小问题,容易陷入局部最优化解,造成寻优失败。(2)而且当系统的非线性较强时,传统的基于线性化模型的线性系统设计方法难以获得好的控制效果。为了设计与分析非线性控制系统,提出了利用MATLAB优化控制工具箱与优化函数相结合对非线性系统PID控制器进行优化设计的方法,同时建立了基于MA TLAB/SIMULINK的非线性系统仿真图。通过MATLAB/SIMULINK非线性模块Signal Constraint进行仿真试验,验证了该参数优化设计方法不仅方便快捷,而且使系统具有较好的控制精度和稳定性,可使系统的性能有所提高。关键词:非线性控制系统MATLAB/SIMULINK Signal Constraint模块PID 非线性模块

ABSTRACT

PID control is one of the industry's most widely used process control strategy. Thereby optimizing PID controller parameters design has become an issue of concern, which directly affect the control effect is good or bad. PID parameter optimization method now many, such as indirect optimization, expert Tuning, simplex method. Although these methods have good optimization features, but there are some drawbacks. (1) only applies to the simplex method system, there are still local minimum problem, easy to fall into local optimal solution, resulting in optimization to fail. (2) And when strong nonlinear systems, based on the traditional linear model of linear systems design approach is difficult to obtain good control. In order to design and analyze nonlinear control system, we proposed the use of MATLAB and Optimization Toolbox optimal control of nonlinear system combining function PID controller design optimization method, while established based on MATLAB / SIMULINK simulation diagram for nonlinear systems. Through MATLAB / SIMULINK simulation of nonlinear module Signal Constraint, verify the parameter optimization method is not only convenient, but the system has better control accuracy and stability, the system performance can be improved.

Keywords: nonlinear control systems MATLAB / SIMULINK Signal Constraint Nonlinear module PID module

第一章 绪论

1.1 课程设计的目的

本次课程设计的题目是《基于NCD 优化的非线性优化PID 控制》学会使用MATLAB/SIMULINK 的建模和仿真的方法,并对非线性控制系统进行PID 优化控制,并且充分掌握非线性控制系统的设计与分析,运用MATLAB/SIMULINK Library 中的非线性模块进行优化,如MATLAB 6.5中的NCD Outport 模块、MA TLAB 7.1.3中的Check Step Response Characteristics 模块、MA TLAB 7.5中的Signal Constraint 模块。本文采用MATLAB

7.5中的Signal Constraint 模块进行优化PID 控制。

1.2 课程设计的题目要求

《基于NCD 优化的非线性优化PID 控制》

系统对象传递函数为G(S)= 1s a s a s 50 1.52213

+++ a1=43,a2=3。 系统包含饱和环节和速度环节8.0±两个非线性环节。不确定因素a 1在(0.5-2.0)×3之间变化,a 2在(40-50)之间变化。设计要求PID 的优化指标为:上升时间不大于10s ;最大超调量不大于20%;调整时间不大于30s ;系统参数变化时性能基本保持不变。

第二章MATLAB概述

2.1 MATLAB简介

s公司推出的一套高性能数值计算和可视化软件,其丰富的功MATLAB是Mathwor

k

能包括数值计算、矩阵分析、数据分析、图像处理等。MA TLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。使用MATLAB,可以较使用传统的编程语言(如C、C++ 和Fortran)更快地解决技术计算问题。MATLAB由于方便处理,功能丰富,现在已经被广泛应用于自动控制、电工电气、数学、经济、金融、管理、生物医学数据分析、电子信息、机械、化学化工、图像处理、运筹学、环境科学、选煤、选矿数据处理等各个领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。

2.2 MATLAB工作环境

2.3 MATLAB操作界面简介

MATLAB的默认操作界面包括命令窗口(Command Window)、历史命令窗口(Command History)、当前目录窗口(Current Folder)、工作空间浏览器(Workspace Browse)。

命令窗口(Command Window):这是MATLAB操作界面中最为重要的窗口,也是用户进行各种操作的主要窗口。在这个窗口中,可输入各种MATLAB的命令、函数和表达式。

历史命令窗口(Command History):这个窗口记录了用户已经操作过的各种命令、函数和表达式方便用户回忆之前的操作和对这些历史信息的复制、重运行等。

当前目录窗口(Current Folder):在这个窗口中,可以设置当前目录,展示目录中的M文件或者MA T文件等,也可以对M文件进行编辑操作。

工作空间浏览器(Workspace Browse):在这个窗口中,可以查看工作空间中所有变量的类型、名称和大小。

2.4 MATLAB 语言

MATLAB 语言支持向量和矩阵运算,这些运算是工程和科学问题的基础。这样使得开发和运行的速度非常快。使用MATLAB 语言,编程和开发算法的速度较使用传统语言大大提高,这是因为无须执行诸如声明变量、指定数据类型以及分配内存等低级管理任务。在很多情况下,MATLAB 无须使用"for" 循环。因此,一行MATLAB 代码经常等效于几行C 或C++ 代码。

2.5 SIMULINK仿真集成环境简介

SIMULINK是可视化动态系统仿真环境。1990年正式由MATHWORKS公司引入到

MATLAB中,它是SIMUTATION和Link的结合。SIMULINK是MATLAB里的工具箱之一,主要功能是实现动态系统建模、仿真与分析;SIMULINK提供了一种图形化的交互环境,只需用鼠标拖动的方便,便能迅速地建立起系统框图模型,并在此基础上对系统进行仿真分析和改进设计。

2.5.1SIMILINK模块库介绍

SIMILINK模块库按功能进行分为以下8类子库:Continuous(连续模块)、Discrete (离散模块)、Function&Tables(函数和平台模块)、Math(数学模块)、Nonlinear(非线性模块)、Signals&Systems(信号和系统模块)、Sinks(接收器模块)、Sources(输入源模块)

连续模块(Continuous):Integrator:输入信号积分、Derivative:输入信号微分、State-Space:线性状态空间系统模型、Transfer-Fcn:线性传递函数模型、Zero-Pole:以

零极点表示的传递函数模型、Memory:存储上一时刻的状态值、Transport Delay:输入信号延时一个固定时间再输出、Variable Transport Delay:输入信号延时一个可变时间再输出。

离散模块(Discrete):Discrete-time Integrator:离散时间积分器、Discrete Filter:IIR与FIR滤波器、Discrete State-Space:离散状态空间系统模型、Discrete Transfer-Fcn:离散传递函数模型、Discrete Zero-Pole:以零极点表示的离散传递函数模型、First-Order Hold:一阶采样和保持器、Zero-Order Hold:零阶采样和保持器、Unit Delay:一个采样周期的延时。

函数和平台模块(Function&Tables) :Fcn:用自定义的函数(表达式)进行运算、MATLAB Fcn:利用matlab的现有函数进行运算、S-Function:调用自编的S函数的程序进行运算、Look-Up Table:建立输入信号的查询表(线性峰值匹配)、Look-Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)。

数学模块(Math ):Sum:加减运算、Product:乘运算、Dot Product:点乘运算、Gain:比例运算、Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数、Trigonometric Function:三角函数,包括正弦、余弦、正切等、MinMax:最值运算、Abs:取绝对值、Sign:符号函数、Logical Operator:逻辑运算、Relational Operator:关系运算、Complex to Magnitude-Angle:由复数输入转为幅值和相角输出、

Magnitude-Angle to Complex:由幅值和相角输入合成复数输出、Complex to Real-Imag:

由复数输入转为实部和虚部输出、Real-Imag to Complex:由实部和虚部输入合成复数输出。

非线性模块(Nonlinear ):Saturation:饱和输出,让输出超过某一值时能够饱和。Relay:滞环比较器,限制输出值在某一范围内变化。Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。Manual Switch:手动选择开关。

信号和系统模块(Signal&Systems ):In1:输入端。Out1:输出端。Mux:将多个单一输入转化为一个复合输出。Demux:将一个复合输入转化为多个单一输出。Ground:连接到没有连接到的输入端。Terminator:连接到没有连接到的输出端。SubSystem:建立新的封装(Mask)功能模块。

接收器模块(Sinks ):Scope:示波器。XY Graph:显示二维图形。To Workspace:将输出写入MATLAB的工作空间。To File(.mat):将输出写入数据文件。输入源模块(Sources ):Constant:常数信号Clock:时钟信号。From Workspace:来自MATLAB 的工作空间。From File(.mat):来自数据文件。Pulse Generator:脉冲发生器。Repeating Sequence:重复信号。Signal Generator:信号发生器,可以产生正弦、方波、锯齿波及随意波。Sine Wave:正弦波信号。Step:阶跃波信号。、

第三章非线性控制系统及优化原理

实际中,大多数物理过程都具有一定程度的非线性。即使如此,如果系统的非线性程度不高,或者仅存在于较窄的操作范围内,可将其近似为一个线性系统来进行处理,则前面所讨论的控制技术,例如常规PID控制仍旧是有效的。但是对于一些具有不可忽视的非线性的过程,这种方法就不适用了。这种情况下,采用非线性控制策略能进一步提高控制品质。

随着控制理论的进展,自动化技术工具的发展,尤其是计算机的使用,使非线性控制系统在工业控制中逐步多了起来。如果对非线性控制系统粗略地进行分类,可以分为两类:一类过程是线性的(或近似按线性处理),为了满足控制系统的某种要求或改善控制系统质量而引入非线性的控制规律;另一类过程本身是非线性的,引入非线性的补偿元件或控制规律,以达到系统规定的控制指标。

常规线性PID控制方法是通过合理调整误差信号的比例、微分、积分增益大小来对系统实施有效控制的。设计中增大比例调节量能够提高响应速度,减小稳态误差。但过大又会导致超调振荡,使系统稳定性变差。加入微分量,可抑制超调,但又会使响应速度变慢。大的积分增益有利于消除稳态误差,但会使系统过渡过程变长。当对系统的动态特性要求不高时,可以从上述矛盾中找到一组折中的固定增益参数来作为线性PID调节器的参数。但如果对系统动态特性要求相对较高时,则常规的线性PID调节器就很难达到设计要求。这时,就不得不考虑用增益参数的非线性变化特性来解决这一问题。

第四章非线性控制系统的优化

4.1 非线性控制系统的设计

4.1.1MATLAB/SIMULINK模型的建立

首先点击桌面MATLAB7.0图标进入MATLAB主界面,通过File-New-Model,以及SIMULINK中Commonly Used Blocks模块、Continuous模块、Discontinuous模块和SIMULINK Response Optimization模块建立MATLAB/SIMULINK仿真模型如图所示。

4.1.2系统参数设定

(1)打开阶跃信号(step)参数对话框Block Parameters:Step,将初始时间Initial time 设置为0,其他为默认值。

(2)打开饱和特性(Saturation)参数对话框Block Parameters:Saturation,将上下限设为1

±。

(3)打开Rate Limits设置为8.0

±。

(4)打开PID Controller,打开比例系数Proportional、积分系数Integral、积分系数Derivative 参数对话框Block Parameters:Proportional、Block Parameters:Integral、Block Parameters:Derivative分别设置Gain的值为Kp、Ki、Kd。然后在MATLAB窗口中输入KP、Ki、Kd的值进行初始值设置。

>>KP=0.5;Ki=0.1;Kd=2;

(5)打开传函Transfer Fcn模块中Block Parameters:Plant,在分子分母中分别设置为[1.5]、[50 a1 a2 1]。然后在MATLAB窗口中输入a1=43,a2=3。>>a1=43;a2=3;

将仿真停止时间设置为100,打开示波器,启动仿真,得到如图波形,显然系统不能满足所要求的动态性能指标,需要对参数进行优化。

4.2 非线性系统参数优化

4.2.1Signal Constraint阶跃响应特性参数设定

(1)打开Signal Constraint模块的时域性能约束窗口,通过Goals-Desired命令设置Rise time为10s,%Overshoot为20,Settling time为25,其余采用默认值。

(2)利用Edit-Axes properties命令,将X轴的范围改为[0,100],Y轴的范围改为[0,1.5]。

4.2.2设置优化参数

通过Optimization-Tuned Parameter设置PID控制器的Kp、Ki、Kd进行优化,打开后点击【ADD】将Kp、Ki、Kd的值分别添加。

4.2.3设置不确定参数范围

通过Optimization-Uncertain Parameter设置不确定参数a1、a2的范围,设置a1的范围为[40.5,49.5],a2的范围为[2.5,10]。

4.2.4控制参数优化计算

在时域性能约束窗口点击开始按钮,系统便开始对PID控制器进行优化计算,2mins左右,计算完成得到如图所示图像。

第五章课程设计总结

通过这次基于NCD优化的非线性优化PID控制的分析,让我对串联滞后校正环节有了更清晰的认识,同时也学会了公式编辑器的基本使用方法,加深了对课本知识的进一步理解。在这次课程设计的过程中,真正地做到把理论运用于实际。通过查找资料以及复习课本,在设计中的问题得到了解决,在寻找答案的过程中,我加深了对平时上课时学到的知识的理解,也体会到将理论结合实际设计、分析的成就感,还使自己看到平时学习的漏洞,因为有一些看似不起眼的小知识点有时也是需要考虑的重点。

同时,这次课程设计让自己对MATLAB软件的应用更加熟练,用它对控制系统进行频域分析,大大简化了计算和绘图步骤,计算机辅助设计已经成为现在设计各种系统的主要方法和手段,因此熟练掌握各种绘图软件显得尤为重要。在今后的学习中,需要发挥积极主动的精神,把所学知识与实践结合起来,努力掌握MATLAB等相关软件的使用方法。

在这次课程设计过程,也让我深深地体会团队精神的重要性。从课程设计的入手到最后分析,对于一个人来说可能是个不小的挑战,注意到每个细节更是不易,遇到问题和班上的同学一起讨论,使各种难题得到了解决。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,仅有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计过程中遇到的问题是很多的,但我想难免会遇到这样或那样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固……通过这次课程设计之后,一定把以前所学过的知识重新温故。

同时,通过这次的课程设计,使我认识到自己这学期对这门课程的学习还远远不够,还

matlab优化设计

MATLAB优化设计 学院:机电学院 专业:机械设计制造及其自动化 班级:072&&&-** 学号:20131****** 姓名:大禹 指导老师:祯 2015年10月25日

题目 1 1、求解如下最优化问题 步骤一:对已有的数学模型matlab 编程 1. 编写.m 文件并保存: h=[2 ,-2;-2, 4]; %实对称矩阵 f=[-2;-6]; %列向量 a=[1, 1;-1, 2]; %对应维数矩阵 b=[2;2]; %列向量 lb=zeros(2, 1); [x,value]=quadprog(h, f, a ,b ,[] ,[], lb) 2. 运行.m 文件结果如图1.0所示: subject to 2 21≤+x x 22-21≤+x x 0 21≥x x ,2 2 2121212262)(m in x x x x x x x f +-+--=

图1.0题目一文件运行结果 步骤二:matlab运行结果分析阶段 由图1.0知,当x1=0.8,x2=1.2时,min f (x)= -7.2。 题目 2 2、某农场拟修建一批半球壳顶的圆筒形谷仓,计划每座谷仓容积为300立方米,圆筒半径不得超过3米,高度不得超过10米。半球壳顶的建筑造价为每平方米150元,圆筒仓壁的造价为每平方米120元,地坪造价为每平方米50元,求造价最小的谷仓尺寸为多少?

步骤一:题目分析阶段 设:圆筒的半径为R,圆筒的高度为H 。 谷仓的容积为300立方米,可得: 3003 232=+R H R ππ 圆筒高度不得超过10米,可得: 100≤≤H 圆筒半径不得超过3米,可得: 30≤≤R 当造价最小时: 2225021202150),(m in R H R R H R f πππ+?+?= 步骤二:数学模型建立阶段 2 225021202150),(m in R H R R H R f πππ+?+?=

基于MATLAB的优化设计

基于MATLAB的曲柄摇杆机构优化设计 1.问题的提出 根据机械的用途和性能要求的不同,对连杆机构设计的要求是多种多样的,但这些设计要求可归纳为以下三种问题:(1)满足预定的运动规律要求;(2)满足预定的连杆位置要求;(3)满足预定的轨迹要求。在在第一个问题 里按照期望函数设计的思想,要求曲柄摇杆机构的曲柄与摇杆转角之间按照φ=f(?)(称为期望函数)的关系实现运动,由于机构的待定参数较少,故一 般不能准确实现该期望函数,设实际的函数为φ=F(?)(称为再现函数),而再 现函数一般是与期望函数不一致的,因此在设计时应使机构再现函数φ=F(?) 尽可能逼近所要求的期望函数φ=f(?)。这时需按机械优化设计方法来设计曲 柄连杆,建立优化数学模型,研究并提出其优化求解算法,并应用于优化模型的求解,求解得到更优的设计参数。 2.曲柄摇杆机构的设计 在图1所示的曲柄摇杆机构中,l1、l2、l3、l4分别是曲柄AB、连杆BC、摇杆CD和机架AD的长度。这里规定?0为摇杆在右极限位置φ0时的曲柄起始 位置角,它们由l1、l2、l3和l4确定。 图1曲柄摇杆机构简图 设计时,可在给定最大和最小传动角的前提下,当曲柄从?0转到?0+90?时,要求摇杆的输出角最优地实现一个给定的运动规律f(?)。这里假设要求: (?-?0)2(1)φE=f(?)=φ0+2 3π

s=30;qb=1;jj=5;fx=0; fa0=acos(((qb+x(1))^2-x(2)^2+jj^2)/(2*(qb+x(1))*jj)); %曲柄初始角 pu0=acos(((qb+x(1))^2-x(2)^2-jj^2)/(2*x(2)*jj));%摇杆初始角for i=1:s fai=fa0+0.5*pi*i/s; pui=pu0+2*(fai-fa0)^2?(3*pi); ri=sqrt(qb^2+jj^2-2*qb*jj*cos(fai)); alfi=acos((ri^2+x(2)^2-x(1)^2)/(2*ri*x(2))); bati=acos((ri^2+jj^2-qb^2)(/2*ri*jj)); if fai>0&fai<=pi psi=pi-alfi-bati; elseif fai>pi&fai<=2*pi psi=pi-alfi+bati; end fx=fx+(pui-psi)^2; end f=fx; (2)编写非线性约束函数M文件confun.m function[c,ceq]=confun(x); qb=1;jj=5;m=45*pi/180;n=135*pi/180; c(1)=x(1)^2+x(2)^2-(jj-qb)^2-2*x(1)*x(2)*cos(m); %最小传动角约束c(2)=-x(1)^2-x(2)^2+(jj+qb)^2+2*x(1)*x(2)*cos(n); %最大传动角约束ceq=[]; (3)在MATLAB命令窗口调用优化程序 x0=[6;4]; lb=[1;1]; ub=[]; %线性不等式约束 a=[-1-1;1-1;-11];b=[-6;4;4];[x,fn]=fmincon(@optimfun, x0,a,b,[],[],lb,ub,@confun); (4)运行结果

matlab 无约束优化问题

实验八 无约束优化问题 一.实验目的 掌握应用matlab 求解无约束最优化问题的方法 二.实验原理及方法 1:标准形式: 元函数 为其中n R R f X f n R x n →∈:) (min 2.无约束优化问题的基本算法一.最速下降法(共轭梯度法)算法步骤:⑴ 给定初始点 n E X ∈0,允许误差0>ε,令k=0; ⑵ 计算() k X f ?; ⑶ 检验是否满足收敛性的判别准则: () ε≤?k X f , 若满足,则停止迭代,得点k X X ≈*,否则进行⑷; ⑷ 令() k k X f S -?=,从k X 出发,沿k S 进行一维搜索, 即求k λ使得: ()() k k k k k S X f S X f λλλ+=+≥0 min ; ⑸ 令k k k k S X X λ+=+1,k=k+1返回⑵. 最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法..牛顿法算法步骤: (1) 选定初始点n E X ∈0,给定允许误差0>ε,令k=0; (2) 求()k X f ?,()() 1 2-?k X f ,检验:若() ε

机械优化设计MATLAB程序文件

机械优化设计作业1.用二次插值法求函数()()()22 ?极小值,精度e=0.01。 t t =t 1- + 在MATLAB的M文件编辑器中编写的M文件,如下: f=inline('(t+1)*(t-2)^2','t') a=0;b=3;epsilon=0.01; t1=a;f1=f(t1); t3=b;f3=f(t3); t2=0.5*(t1+t3);f2=f(t2); c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=0; while(abs(t4-t2)>=epsilon) if t2f4 f1=f2;t1=t2; t2=t4;f2=f4; else f3=f4;t3=t4; end else if f2>f4 f3=f2;t3=t2; t2=t4;f2=f4; else f1=f4;t2=t4; end end c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=k+1; end %输出最优解 if f2>f4 t=t4;f=f(t4); else t=t2;f=f(t2); end fprintf(1,'迭代计算k=%3.0f\n',k) fprintf(1,'极小点坐标t=%3.0f\n',t) fprintf(1,'函数值f=%3.4f\n',f)

运行结果如下: 迭代计算k= 7 极小点坐标t= 2 函数值f=0.0001 2.用黄金分割法求函数()32321+-=t t t ?的极小值,精度e=0.01。 在MATLAB 的M 文件编辑器中编写的M 文件,如下: f=inline('t^(2/3)-(t^2+1)^(1/3)','t'); a=0;b=3;epsilon=0.01; t1=b-0.618*(b-a);f1=f(t1); t2=a+0.618*(b-a);f2=f(t2); k=1; while abs(b-a)>=epsilon if f1

最优化方法的Matlab实现(公式(完整版))

第九章最优化方法的MatIab实现 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。 用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容: 1)建立数学模型即用数学语言来描述最优化问题。模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。 2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。 最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。 9.1 概述 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。 具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。 9.1.1优化工具箱中的函数 优化工具箱中的函数包括下面几类: 1 ?最小化函数

2.方程求解函数 3.最小—乘(曲线拟合)函数

4?实用函数 5 ?大型方法的演示函数 6.中型方法的演示函数 9.1.3参数设置 利用OPtimSet函数,可以创建和编辑参数结构;利用OPtimget函数,可以获得o PtiOns优化参数。 ? OPtimget 函数 功能:获得OPtiOns优化参数。 语法:

matlab(四连杆优化设计)

机械优化设计在matlab中的应用 东南大学机械工程学院** 一优化设计目的: 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。 " 二优化设计步骤: 1.机械优化设计的全过程一般可以分为如下几个步骤: 1)建立优化设计的数学模型; 2)选择适当的优化方法; 3)编写计算机程序; : 4)准备必要的初始数据并伤及计算; 5)对计算机求得的结果进行必要的分析。 其中建立优化设计数学模型是首要的和关键的一步,它是取得正确结果的前提。优化方法的选取取决于数学模型的特点,例如优化问题规模的大小,目标函数和约束函数的性态以及计算精度等。在比较各种可供选用的优化方法时,需要考虑的一个重要因素是计算机执行这些程序所花费的时间和费用,也即计算效率。 2.建立数学模型的基本原则与步骤 ①设计变量的确定; — 设计变量是指在优化设计的过程中,不断进行修改,调整,一直处于变化的参数称为设计变量。设计变量的全体实际上是一组变量,可用一个列向量表示: x=。 ②目标函数的建立; 选择目标函数是整个优化设计过程中最重要的决策之一。当对某以设计性能有特定的要求,而这个要求有很难满足时,则针对这一性能进行优化会得到满意的效果。目标函数是设计变量的函数,是一项设计所追求的指标的数学反映,因此它能够用来评价设计的优劣。 目标函数的一般表达式为: 。 f(x)=,要根据实际的设计要求来设计目标函数。 ③约束条件的确定。 一个可行性设计必须满足某些设计限制条件,这些限制条件称为约束条件,简称约束。 由若干个约束条件构成目标函数的可行域,而可行域内的所有设计点都是满足设计要求的,一般情况下,其设计可行域可表示为

最优化方法的Matlab实现(公式(完整版))

第九章最优化方法的Matlab实现 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。 用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容:1)建立数学模型即用数学语言来描述最优化问题。模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。 2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。 最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。 9.1 概述 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。 9.1.1 优化工具箱中的函数 优化工具箱中的函数包括下面几类: 1.最小化函数

表9-1 最小化函数表 2.方程求解函数 表9-2 方程求解函数表 3.最小二乘(曲线拟合)函数 表9-3 最小二乘函数表

4.实用函数 表9-4 实用函数表 5.大型方法的演示函数 表9-5 大型方法的演示函数表 6.中型方法的演示函数 表9-6 中型方法的演示函数表 9.1.3 参数设置 利用optimset函数,可以创建和编辑参数结构;利用optimget函数,可以获得o ptions优化参数。 ● optimget函数 功能:获得options优化参数。

(完整word版)优化设计Matlab编程作业

优化设计

无约束优化 min f(x)= 21x +22x -21x 2x -41x 初选x0=[1,1] 程序: Step 1: Write an M-file objfun1.m. function f1=objfun1(x) f1=x(1)^2+2*x(2)^2-2*x(1)*x(2)-4*x(1); Step 2: Invoke one of the unconstrained optimization routines x0=[1,1]; >> options = optimset('LargeScale','off'); >> [x,fval,exitflag,output] = fminunc(@objfun1,x0,options) 运行结果: x = 4.0000 2.0000 fval = -8.0000 exitflag = 1 output = iterations: 3 funcCount: 12 stepsize: 1 firstorderopt: 2.3842e-007 algorithm: 'medium-scale: Quasi-Newton line search' message: [1x85 char] 非线性有约束优化 1. Min f(x)=321x +2 2x +21x -32x +5

Subject to: 1g (x)=1x +2x +18≤0 2g (x)=51x -32x -25≤0 3g (x)=131x -412 2x 0≤ 4g (x)=14≤1x 130≤ 5g (x)=2≤2x 57≤ 初选x0=[10,10] Step 1: Write an M-file objfun2.m function f2=objfun2(x) f2=3*x(1)^2+x(2)^2+2*x(1)-3*x(2)+5; Step 2: Write an M-file confun1.m for the constraints. function [c,ceq]=confun1(x) % Nonlinear inequality constraints c=[x(1)+x(2)+18; 5*x(1)-3*x(2)-25; 13*x(1)-41*x(2)^2; 14-x(1); x(1)-130; 2-x(2); x(2)-57]; % Nonlinear inequality constraints ceq=[]; Step 3: Invoke constrained optimization routine x0=[10,10]; % Make a starting guess at the solution >> options = optimset('LargeScale','off'); >> [x, fval] = ... fmincon(@objfun2,x0,[],[],[],[],[],[],@confun1,options) 运行结果: x = 3.6755 -7.0744 fval = 124.1495

MATLAB第12章工程优化设计实例

MATLAB第12章工程优化设计实例 第12章工程优化设讣实例优化设讣的数学模型 优化设讣的数学模型是描述实际优化问题的设计内容、变量关系、有关设计条件和意图的数学表达式,它反映了物理现象各主要因素的内在联系,是进行优化设计的基础。优化设计数学模型的三大要素: ?设计变量 ?约束条件 ? LI标函数 1.设计变量 一个设计方案可以用一组基本参数的数值来表示,这些基本参数可以是构件尺寸等儿何量,也可以是质量等物理量,还可以是应力、变形等表示丄作性能的导出量。设计变量:在设讣过程中进行选择并最终必须确定的各项独立的基本参数,乂叫做优化参数。 设计变量的全体实际上是一组变量,可用一个列向量表示 2.约束条件 设计空间是所有设计方案的集合,但这些设计方案有些是工程上所不能接受 的。如一个设计满足所有对它提出的要求,就称为可行设计。 一个可行设讣必须满足某些设讣限制条件,这些限制条件称作约束条件,简称约 束。3.目标函数 为了对设计进行定量评价,必须构造包含设讣变量的评价函数,它是优化的口标, 称为LI标函数,以F(X)表示。

FxFxxx ()(),, , , 12n 在优化过程中,通过设计变量的不断向F(X)值改善的方向自动调整,最后求得 F(X)值最好或最满意的X值。在构造LI标函数时,应注意:訂标函数必须包含全部设计变量,所有的设计变量必须包含在约束函数中。 模型输入时需要注意的问题 使用优化工具箱时,山于优化函数要求口标函数和约束条件满足一定的格式,所以需要用户在进行模型输入时注意以下儿个问题: 1.目标函数最小化 优化函数 fminbnd、fminsearchx fminunc、fmincon、fgoalattdin、fminmax 和1 sqnonlin都要求LI标函数最小化,如果优化问题要求LI标函数最大化,可以通过使该LI标函数的负值最小化即-f(x)最小化来实现。近似地,对于quadprog函数提供-H 和-f,对于1 inprog函数提供-f。 2.约束非正 优化工具箱要求非线性不等式约束的形式为Ci(x)?0,通过对不等式取负可以达到使大于零的约束形式变为小于零的不等式约束形式的U的,如Ci (x)?0形式的约束等价于- Ci(x)?0;Ci(x)?b形式的约束等价于- Ci(x)+b?0。 3.避免使用全局变量 Fmincon是mat lab最主要内置的求解约束最优化的函数,该函数的优化问题的标准形式为:1.数学模型标准形式: min f , X, s. t. AX?b ,线性不等式约束, AeqX二beq ,线性等式约束, C(X)?0 ,非线性不等式约束条件,

第10章__Matlab在最优化问题中的应用

第10章 Matlab 在最优化问题中的应用 优化理论是一门实践性很强的学科,广泛应用于生产管理、军事指挥和科学试验等各种领域,Matlab 优化工具箱提供了对各种优化问题的一个完整的解决方案。 在数学上,所谓优化问题,就是求解如下形式的最优解: Min fun (x) Sub. to [C.E.] [B.C.] 其中fun (x)称为目标函数,“Sub. to ”为“subject to ”的缩写,由其引导的部分称为约束条件。[C.E.]表示Condition Equations ,即条件方程,可为等式方程,也可为不等式方程。[B.C.]表示Boundary Conditions ,即边界条件,用来约束自变量的求解域,以lb ≤x ≤ub 的形式给出。当[C.E.]为空时,此优化问题称为自由优化或无约束优化问题;当[C.E.]不空时,称为有约束优化或强约束优化问题。 在优化问题中,根据变量、目标函数和约束函数的不同,可以将问题大致分为: ·线性优化 目标函数和约束函数均为线性函数。 ·二次优化 目标函数为二次函数,而约束条件为线性方程。线性优化和二次优化 统称为简单优化。 ·非线性优化 目标函数为非二次的非线性函数,或约束条件为非线性方程。 ·多目标优化 目标函数并非一个时,称为多目标优化问题。 本章将对以上几类优化问题在Matlab 中的实现作比较详细的讲解。另外还将介绍两个利用优化方法解非线性方程的函数。 通过本章的介绍,用户可以不必掌握艰涩的各种优化算法而轻易地解决一些常用的最优化问题了。 10.1 线性规划问题 线性规划问题即目标函数和约束条件均为线性函数的问题。 其标准形式为: min C ’x sub. To Ax = b x ≥0 其中C, b, 0∈R n ,A ∈R m ?n ,均为数值矩阵,x ∈R n 。 若目标函数为:max C ’x ,则转换成:min –C ’x 。 标准形式的线性规划问题简称为LP (Linear Programming )问题。其它形式的线性规划问题经过适当的变换均可以化为此种标准形。线性规划问题虽然简单,但在工农业及其他生产部门中应用十分广泛。 在Matlab 中,线性规划问题由linprog 函数求解。 函数:linprog %求解如下形式的线性规划问题: x f T x min such that b x A ≤? beq x Aeq =? ub x lb ≤≤ 其中f, x, b, beq, lb, ub 为向量,A, Aeq 为矩阵。 格式:x = linprog(f,A,b) x = linprog(f,A,b,Aeq,beq) x = linprog(f,A,b,Aeq,beq,lb,ub)

转向梯形优化设计matlab程序

优化计算MATLAB程序 首先,将目标函数写成M文件,其程序语句如下; function f = fun (x) global K L thetamax alpha for i=1:61 f = 0 betae = atan(tan(alpha(i)/(1-(K/L)*tan(alpha(i)))); A(i)=2*x(1).^2*sin(x(2)+alpha(i)); B(i)=2*K*x(1)-2*x(1).^2*cos(x(2)+alpha(i)); C(i)=2*x(1).^2-4*x(1).^2*(cos(x(2)).^2+4*K*x(1)*cos(x(2))-2*K*x(1)* cos(x(2)+alpha(i)); theta3(i)= 2*acot((A(i)+sqrt(A(i).^2+B(i).^2-C(i).^2))/(B(i)+C(i))); beta(i)=x(2)+theta3(i)-pi; if alpha(i)<=pi/18 f(i)=1.5*abs(beta(i)-betae3(i)); elseif alpha>=pi/18,alpha(i)<=pi/9;f(i)=abs(betaa(i)-betae3(i)); elsef(i)=0.5*abs(beta(i)-betae3(i)); global K L thetamax alpha K=input L=input thetamax=input x0(1)=input

x0(2)=input thetamax = thetamax*pi/180; x0(2)=x0(2)*pi/180;lb(1)=0.17K; lb(2)=0.17*K; ub(1)=acot(K/(1.2*L))ub(2)=pi/2; alpha=linspace (0, theamax ,61); lb=[lb(1),lb(2)]; ub=[ub(1),ub(2)];x(0)=[x0(1),x0(2)]; options = optimset ( ‘TolFun’,‘le-10’,‘TolCon’,‘le-6’) [x,resnorm] = lsqnonlin(‘fun’,x0,lb,ub,options) g lobal K L thetamax alpha K = input L= input thetamax= input x ( 1) = input x ( 2) = input thetamax = thetamax * pi/ 180; x ( 2) = x ( 2) * pi/ 180; alpha= linspace( 0, thetamax , 61) ; fo r i= 1∶61 betae= atan( tan( alpha( i) ) / (( 1- K/ L) * tan( alpha( i) ) ) ) ; A ( i) = 2* ( x ( 1) ) .∧2* sin ( x ( 2) + alpha( i) ) ; B( i) = 2* K* x( 1) - 2* ( x ( 1) ) . ∧2* cos( x( 2) + alpha( i) ) ) ;

简述基于MATLAB的优化设计

基于MATLAB 的曲柄摇杆机构优化设计 1. 问题的提出 根据机械的用途和性能要求的不同,对连杆机构设计的要求是多种多样的,但这些设计要求可归纳为以下三种问题:(1)满足预定的运动规律要求;(2)满足预定的连杆位置要求;(3)满足预定的轨迹要求。在在第一个问题里按照期望函数设计的思想,要求曲柄摇杆机构的曲柄与摇杆转角之间按照()f φ?=(称为期望函数)的关系实现运动,由于机构的待定参数较少,故一般不能准确实现该期望函数,设实际的函数为()F φ?=(称为再现函数),而再现函数一般是与期望函数不一致的,因此在设计时应使机构再现函数()F φ?=尽可能逼近所要求的期望函数()f φ?=。这时需按机械优化设计方法来设计曲柄连杆,建立优化数学模型,研究并提出其优化求解算法,并应用于优化模型的求解,求解得到更优的设计参数。 2. 曲柄摇杆机构的设计 在图 1 所示的曲柄摇杆机构中,1l 、2l 、3l 、 4l 分别是曲柄AB 、连杆BC 、摇杆CD 和机架AD 的长度。这里规定0?为摇杆在右极限位置0φ时的曲柄起始位置角,它们由1l 、2l 、3l 和4l 确定。 图1 曲柄摇杆机构简图 设计时,可在给定最大和最小传动角的前提下,当曲柄从0?转到090??+时,要求摇杆的输出角最优地实现一个给定的运动规律()f ?。这里假设要求: ()()2 0023E f φ?φ??π ==+ - (1)

对于这样的设计问题,可以取机构的期望输出角()E f φ?=和实际输出角 ()F φ?=的平方误差之和作为目标函数,使得它的值达到最小。 2.1 设计变量的确定 决定机构尺寸的各杆长度1l 、2l 、3l 和4l ,以及当摇杆按已知运动规律开始运行时,曲柄所处的位置角0?应列为设计变量,即: []12340T x l l l l ?= (2) 考虑到机构的杆长按比例变化时,不会改变其运动规律,通常设定曲柄长度 1l =1.0,在这里可给定4l =5.0,其他杆长则按比例取为1l 的倍数。若取曲柄的初始 位置角为极位角,则?及相应的摇杆l 位置角φ均为杆长的函数,其关系式为: ()()()()222221243230124225arccos 210l l l l l l l l l l l l ?????++-+-+==????++???????? (3) ()()22222124323034325arccos 210l l l l l l l l l l ????? +--+--==???????????? (4) 因此,只有2l 、3l 为独立变量,则设计变量为[][]2312T T x l l x x ==。 2.2目标函数的建立 目标函数可根据已知的运动规律与机构实际运动规律之间的偏差最小为指标来建立,即: ()()2 1min m Ei i i f x φφ==-→∑ (5) 式中,Ei φ-期望输出角;m -输出角的等分数;i φ-实际输出角,由图 1 可知: ()()02i i i i i i i παβ?πφπαβπ?π--≤≤??=?-+≤≤?? (6) 式中,222222322132arccos arccos 22i i i i i r l l r x x rl r x α???? +-+-== ? ????? (7) 222241424arccos arccos 210i i i i i r l l r rl r β???? +-+== ? ????? (8) i r == (9) 2.3约束条件

matlab在优化设计中的应用

m a t l a b在优化设计中的 应用 The Standardization Office was revised on the afternoon of December 13, 2020

Matlab 在优化设计中的应用 摘 要 常见的优化问题包括线性规划、无约束优化、约束优化、最下二乘优化、多目标规划等。本文研究了matlab 在这些常见优化问题中的应用及求解。 在进行研究本课题之前,我们先通过网络、电子书刊等各种有效渠道获取我们所需信息,在充分了解与熟练掌握了各种优化问题的具体特点及性质后,我们给出了关于如何用matlab 进行多类优化问题的求解基本方法,在此前提下,为了体现该软件在这些优化领域的实际应用效果,我们结合若干个优化问题的实例进行分析、建模、以及运用matlab 编程求解,在求解过程中,通过得到的精确数据和反应结果的图例,我们了解到matlab 工具箱的功能强大,是处理优化问题的非常方便的编程工具。 关键词:matlab 优化问题 二、基本概念 线性规划 线性规划是优化的一个重要分支。它在理论和算法上都比较成熟,在实际中有广泛的应用。例如数学表达形式: ???? ? ??? ?=≥=+++=+++=++++++n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c i m n mn m m n n n n n n ,,2,1,0..min 221 122222121112121112211

在MTLAB 提供的优化工具箱中,解决规划的命令是linprog ,它的调用格式如下, ),,(b A c linprog x = 求解下列形式的线性规划: ?? ?≤b Ax t s x c T ..min ),,,,(beq Aeq b A c linprog x = 求解下面形式的线性规划: ?? ? ? ????=?≤beq x Aeq b Ax t s x c T ..min 若没有不等式约束b Ax ≤,则只需命令 [][],==b A 。 ),,,,,,(ub lb beq Aeq b A c linprog x = 求解下面形式的线性规划: ??? ?????? ? ??≤≤=?≤ub x lb beq x Aeq b Ax t s x c T ..min 若没有不等式约束b Ax ≤,则只需令[][],==b A ;若只有下界约束,则可以不用输入 ub 。 无约束优化算法 对于无约束优化问题,已经有许多有效的算法。这些算法基本都是迭代法,它们都遵循下面的步骤: ① 选取初始点x 0 ,一般来说初始点越靠近最优解越好;

Matlab 7最优化问题求解

Matlab 最优化问题求解 1.无约束最优化问题 无约束最优化问题一般描述为: 其中,该数学表示的含义是求一组x,使得目标函数f(x)最小.这种问题也称为最小化问题. Matlab中提供了3个求最小值的函数,调用格式为: ·[x,fval]=fminbnd(@fname,x1,x2,options):求一元函数在(x1,x2)区间中的极小值点x和极小值fval; ·[x,fval]=fminsearch(@fname,x0,options):基于单纯形算法求多元函数的极小值点x和极小值fval; ·[x,fval]=fminunc(@fname,x0,options):基于拟牛顿法求多元函数的极小值点x和极小值fval. 这里讨论的是局域极值问题,fname是定义函数m文件的文件名,fminbnd的输入变量x1,x2分别是研究区间的左右边界;fminsearch和fminunc的输入变量x0是一个向量,表示极值点的初值.options为优化参数,可以通过optimset函数来设置,当目标函数的阶数大于2时,使用fminunc比fminsearch更有效;但是目标函数高度不连续时,使用fminsearch函数效果更好. Matlab中没有专门求最大值的函数,只要-f(x)在(a,b)上的最小值就是f(x)在(a,b)上最大值的相反数.因此用fminbnd(-f,x1,x2)返回函数f(x)在(x1,x2)上的最大值的相反数. --------------------------------------------------------------------- 例如:求函数在区间[0,5]内的极小值和极小值点. function fx=mymin(x) fx=x.^3-2*x-5; [x,fval]=fminbnd(@mymin,0,5) x = 0.8165 fval = -6.0887 因此极小值点为x=0.8165,极小值为-6.0887 --------------------------------------------------------------------- 例如:设 求函数f(x,y,z)在(0.5,0.5,0.5)附近的最小值. function f=fxyz(p)

Matlab在最优化问题中的应用举例

在企业生产和日常生活中,人们总是希望用最少的人力、物力、财力和时间去办更多的事,这就是所谓的最优化问题。线性规划方法是解决最优化问题的有效方法之一,因此受到人们的普遍关注。在企业生产过程中,生产计划安排直接影响到企业的经济效益,而生产计划本质就是在目标一定时,对于人力、时间和物质资源的优化配置问题。 1。综述了最优化方法,归纳了最优化闯题中线性规划和非线性规划模型的解法,并给出了相应的matlab求解代码。 2。提出了基于信息增益率的用电客户指标选择方法,根据信息增益率的大小选择对分类有贡献的指标。 关键词:Matlab,最优化方法,应用举例 In enterprise production and daily life, people always hope with the least amount of human, material and financial resources and time to do more things, this is the so-called optimization problem. Linear programming method is to solve the optimal problem, so one of the effective method by people's attention. In enterprise production process, production plan directly affect the enterprise economic benefit, but in essence is the production plan for the target certain human, time and material resources optimization allocation problem. 1·Studying the optimization,summing up the solutions ofoptimization problem for both linear and non-linear programming model and proposing the matlabcode. 2·Proposing a new way based on information-gain-ratio to choose the powercustomer indices,selecting the indices which are more contributive to theclassification,in order to avoid over learning。 K eywords:Matlab,Optimization method,Applied examples 1.1选题背景及研究意义 1.1.1最优化问题的相关应用

机械优化设计MATLAB程序

t t t 机械优化设计作业 1.用二次插值法求函数?( )= ( +1)( - 2)2 极小值,精度 e=0.01。 在 MA TLAB 的 M 文件编辑器中编写的 M 文件,如下: f=inline('(t+1)*(t -2)^2','t') a=0;b=3;epsilon=0.01; t1=a;f1=f(t1); t3=b;f3=f(t3); t2=0.5*(t1+t3);f2=f(t2); c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=0; while(abs(t4-t2)>=epsilon) if t2f4 f1=f2;t1=t2; t2=t4;f2=f4; else f3=f4;t3=t4; end else if f2>f4 f3=f2;t3=t2; t2=t4;f2=f4; else f1=f4;t2=t4; end end c1=(f3-f1)/(t3-t1); c2=((f2-f1)/(t2-t1)-c1)/(t2-t3); t4=0.5*(t1+t3-c1/c2);f4=f(t4); k=k+1; end %输出最优解 if f2>f4 t=t4;f=f(t4); else t=t2;f=f(t2); end fprintf(1,'迭代计算 k=%3.0f\n',k) fprintf(1,'极小点坐标 t=%3.0f\n',t) fprintf(1,'函数值 f=%3.4f\n',f)

3.用牛顿法、阻尼牛顿法及变尺度法求函数 的极小点。( ) ( ) ( )21121 22, xxxxxf -+-= 4 2 (1)在用牛顿法在 MATLAB 的 M 文件编辑器中编写的 M 文件,如下: function [x,fx,k]=niudunfa(x0) syms x1 x2 f=(x1-2)^4+(x1-2*x2)^2; fx=0; v=[x1,x2]; df=jacobian(f,v); df=df.'; G=jacobian(df,v); epson=1e -12; g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)}); G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)}); k=0; p=-G1\g1; x0=x0+p; while(norm(g1)>epson) p=-G1\g1; x0=x0+p; g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)}); G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)}); k=k+1; end x=x0; fx=subs(f,{x1,x2},{x(1,1),x(2,1)}); 运行结果如下: >> [x,fx,k]=niudunfa([1;1]) x =1.9999554476059523381489991377897 0.99997772380297616907449956889483 fx =0.0000000000000000039398907941382470301534502947647 k =23 (2)用阻尼牛顿法在 MA TLAB 的 M 文件编辑器中编写的 M 文件,如下: function [x,fx,k]=zuniniudunfa(x0)%阻尼牛顿法 syms x1 x2 f=(x1-2)^4+(x1-2*x2)^2; fx=0; v=[x1,x2]; df=jacobian(f,v); df=df.'; G=jacobian(df,v); epson=1e -12;%停机原则

相关文档
最新文档