MATLAB求解非线性规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
While
循环以不定的次数执行一条或多条语句, 当条件不再满足时退出循环。While循环的一般形 式是:
while 条件式 语句; end
只要在表达式里的所有元素为真,就执行while和end
语 句之间的运算式。就是说,只要条件式成立,运算式就会 一再被执行。
While示例
x=input('x='); while x>=10 y=x*5
截至目前,MATLAB已经发展到12.1版, 适用于所有32位的
Windows操作系统, 按NTFS(NT文件系统)格式下完全安装约需 850 MB。MATLAB软件主要由主包、仿真系统和工具箱三大部 分组成。
MATLAB的安装与卸载
MATLAB软件在用户接口设计上具有较强的亲和力, 其安装过程比较典型, 直接运行光盘中的安装向导 支撑程序SETUP.exe, 按其提示一步步选择即可。 MATLAB自身带有卸载程序,在其安装目录下有
MATLAB求解非线性规划
第一部分:无约束极值问题
• 单变量函数求最小值的标准形式为
min
s.t
x
f ( x)
x1 x x2
函数 fminbnd 格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间 上函数fun取最小值时x值,fun为目标函数的表达式字符串 或MATLAB自定义函数的函数柄。 函数fminbnd的算法基于黄金分割法和二次插值法,它要求 目标函数必须是连续函数,并可能只给出局部最优解。
2.1 简单的数学运算
在 MATLAB 命令窗口中,可以直接输入数学运 算式子并回车,即能够显示出计算结果,例如, 输入: 4+2-5*6+8/4 显示结果为: ans = -22 其中变量ans(answer的缩写)为MATLAB预设置 的一个变量。
另一种方式是把计算所得的值赋给一个 MATLAB变量, 例如:
plot3命令将绘制二维图形的函数plot的特性扩展到三维空间。函 数格式除了包括第三维的信息(比如Z方向)之外,与二维函数 plot相同。
2.三维网线图的绘制
步骤: 1)栅格数据点的产生 命令:meshgrid(x,y)
2)绘制三维网格命令:mesh(x,y,z)
绘制三维网线图
程序: x=[-8:0.5:8]; y=x; [X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; mesh(X,Y,Z)
求 y=x3+2.5x2+x+10=0 的根。 p=[1 2.5 1 10]; % 多项式方程的 MATLAB表达 x=roots(p) % root
6 控制流与若干控制命令
控制流语句有三种结构:for循环,while循环,if— else—end,switch-case结构等。控制命令主要介绍 break、pause、input、keyboard、debug等命令。
2.10 M文件
在命令窗口模式下键入一行命令立即执行,程序 可读性差且难以存储——〉编成可存储的程序文 本——〉m文件 M文件名的后缀为m。MATLAB语言环境下能 执行的文件是以后缀为m的文件
Matlab本身含有很多.m文件
2.10.1 M文件的编制
1、打开编辑窗口 2、编制一个多项式方程求根的程序: A=[4 5 6 8] P=roots(A) % 即 A=4x3+5x2+6x+8
• 多条曲线的绘制 plot(x1,y1,x2,y2,· · · )
二、绘制三维图形
1、三维曲线的基本绘图命令 基本格式:
plot3(x,y,z,’s’) plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’,· · · ) 例:t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t);
MATLAB基础及求解非线性规划
经济管理学院:李继红
1 Matlab简介及操作环境
1.1 Matlab简介
由美国 DOCTORCLEVER MOLER 于 1980 年 开始研制并于1984年推出正式版本。以后陆续推 出了4.0,4.2和5.0版本,1999年初推出了功能更 为强大的5.3版本,2001年推出6.1版本,2003年 推出了6.5版本。2004年6月正式推出7.0版本。 MATLAB是建立在 C 语言基础上的高级语言, 并建立了自已独特的语言环境。
6.1 for循环
li1_6_1.m 1、for循环 • For循环可以按指定的次数重复执行一系列语 句。For循环的常见结构: • for 变量 =表达式 这里循环语句可以是一条或 循环语句 多条,并且可以是变量的函 数 end • 如:for k=初值: 增值: 终值
例:
% mzmfor.m clear all N=input('请输入矩阵的维数 N:'); for I = 1:N, for J = 1:N, A(I,J) = 1/(I+J-1); end end
除:逆阵A-1 = inv(A),矩阵行列式 det(A),左除,右除,行列式不为0
4 关系与逻辑运算
关系运算:< <= > >= == ~=
逻辑运算: &
|
~
xor
5 向量与多项式
在MATLAB中向量的表达和一维数组的表示 形式一致,而多项式也可以用一个行向量来表 示,即将多项式的系数按变量的降幂排列。
uninstall子目录,运行该目录下的uninstall.exe即可;
也可以通过Windows系统的安装卸载程序进行卸载。
MATLAB的启动与退出
MATLAB安装完成后,会自动在Windows桌面 上生成一个快捷方式, 它是指向安装目录下 \bin\win32\matlab.exe的链接, 双击它即可来到 MATLAB集成环境的基本窗口,通常称之为命令 窗口。 MATLAB的退出与普通WIN32的程序一样, 值 得一提的是它有一个自身专有的快捷键Ctrl+Q。
MATLAB程序设计语言简介
MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开
发的一套用于科学工程计算的可视化高性能语言,具有强大的矩
阵运算能力。 与大家常用的Fortran和C等高级语言相比,MATLAB的语法 规则更简单,更贴近人的思维方式,被称之为“草稿纸式的语 言”。
>>a1=5^2
a1 = 25
又例如:
>>bz=10+a1 bz =
35
这样创建了两个MATLAB变量a1和bz,每一个变量都显 示出一个计算结果。
2.9 常用的基本数学函数
MATLAB中,数学公式大多数可以用数学函数的 方式来表示。 要注意的是,三角函数的计算只采用弧度的操作, 角度必须经过弧度的换算才能使用。例如: sin(90°),只能表示为:sin(pi/2),其中pi为圆 周率π 。
循环条件是条 件表达式的值 为真
x=x-5
end
6.3 if-else-end分支语句
最简单的If-else-end结构是:
条件式; 循环体语句; end 如果在表达式中的所有元素为真(非零), 那么就执行if和end语言之间的语句。
if
6.4 switch-case语句
一般switch-case语句格式为: switch num case n1 command case n2 command case n3 command . . .otherwise Command
在用for语句实 现多重循环时, for和end必须 成对出现!
请分析一下本段程序共循环多少次?
% mzmfor2.m for n=1:5 x(n)=sin(n*pi/10); n=10; end
For循环不能用For 循环内新赋值循环变 量n来终止。因此本 段中循环次数仍为五 次!
6.2 while循环
编辑窗口
提供给用户编程、阅读和调 试程序的窗口
图形输出窗口
实现图形的可视化、编辑图形的注释和对图形的编辑
Simulink窗口
应用框图编程的方法,实现对系统的仿真,并 以图形方式表示。
图1.8 新建Sinulink模 型窗口 图1.7 Sinulink模块库浏览器
2 Matlab基本特性
MATLAB语言的规则十分简单,是一种表达 式语言,其语句格式类似于数学式子。 其管理的对象是矩阵,标量(数量)是作为1×1 的矩阵来处理的。与数学术语一样,仅有一行 或一列的矩阵作为向量来处理。
• x = fminbnd(fun,x1,x2,options) % options为指定优化参 数选项 • *x,fval+ = fminbnd(…) % fval为目标函数的最小值 • *x,fval,exitflag+ = fminbnd(…) %xitflag为终止迭代的条 件 • *x,fval,exitflag,output+ = fminbnd(…) % output为优化信 息 • 说明 若参数exitflag>0,表示函数收敛于x,若 exitflag=0,表示超过函数估计值或迭代的最大数字, exitflag<0表示函数不收敛于x;若参数 output=iterations表示迭代次数,output=funccount表 示函数赋值次数,output=algorithm表示所使用的算法。
MATLAB(MATrix LABoratory)的基本含义是矩阵实验室,
它是由美国MathWorks公司研制开发的一套高性能的集数值计算、
图形显示等于一体的可视化数学工具软件。它是建立在向量、
数组和矩阵基础之上的,除了基本的数值计算、数据处理、 图形显示等功能之外,还包含功能强大的多个“工具箱”, 如优化工具箱(optimization toolbox)、统计工具箱、样条 函数工具箱和数据拟合工具箱等都是优化计算的有力工具。
2.10.6 M文件的调试
MATLAB在执行M文件过程中,若一旦发现有语法错误,将在 MATLAB命令窗口中显示其错误类型,还指出错误的行号,并 停止程序的执行,用户可以根据所提供的信息来修改程序。 另外,在MATLAB编辑/调试器窗口的工具栏和菜单中,可以通 过设置程序断点,并使程序单步执行来调试程序,工具栏中 有有关调试程序的图标。
1.2 Matlab的语言环境
1、Matlab的工作视窗/界面 A、命令窗口 (command window) B、编辑/调节器窗口(editor/debugger) C、图形输出窗口(figure) D、simulink集成编程窗口
命令窗口
提供给用户使用管 理功能的人机界面
主要项目:
New Open Preference Set path
li1_6_4.m
7 数据的可视化
一. 绘制二维图形
1、简单的二维绘图命令(plot) • Plot函数是将各个数据点通过连折线的方式来 绘制二维图形的。其格式有以下几种。 • plot(y) %绘制向量y的曲线 • plot(x,y) %绘制纵坐标为向量y横坐标为向量x的曲线
•
%x,y的维数应相同。
用例子来说明:设A矩阵为3×3矩阵,其数据为: 1 2 3 4 5 6 7 8 9 在MATLAB中,输入方法有几种: 例 A=[1 2 3;4 5 6;7 8 9] 也可这样输入: A=[1, 2 3 4, 5, 6 7 8 9]
矩阵元素之间可用逗号‘, ’或空格‘ ’ 隔开, 行与行之间用分号‘;’隔开;
3、存盘(文件名不得与已存在的m文件相 同)
2.10.2 M文件的执行
在MATLAB命令窗口下直接键入文件名并按回车键即可
2.10.3 M文件的打开 2.10.4 M文件的编辑修改 2.10.5 M文件变量的工作空间
M文件变量的工作空间就是MATLAB的工作空间。若变量在 MATLAB工作空间中已存在,其变量的值可以被其他的M文 件使用。但要特别注意在MATLAB工作空间中该变量的大小。
3 数组、矩阵的基本运算
MATLAB (MATrix LABoratory) 是一种 以矩阵作为基本数据结构、以矩阵wenku.baidu.com算为
基础的科学计算软件
所有变量和数据都可看成为矩阵变量和矩阵数据。 应用MATLAB语言编程时,尤其要注意矩阵的 向量的维数问题。标量可以看作为1×1的矩阵。
数组与矩阵元素的输入
语句结尾:逗号显示结果,分号不显示结果
• 例 x=[3,4,2];y=[6 7 2];z=x*y' • z= • 50 • 又例 z=x'*y • z= • 18 21 6 • 24 28 8 • 12 14 4
矩阵运算:
加:两矩阵阶数相同
减:两矩阵阶数相同
乘:第一个矩阵的列数等于第二个矩阵的行数, 即内阶数相等
循环以不定的次数执行一条或多条语句, 当条件不再满足时退出循环。While循环的一般形 式是:
while 条件式 语句; end
只要在表达式里的所有元素为真,就执行while和end
语 句之间的运算式。就是说,只要条件式成立,运算式就会 一再被执行。
While示例
x=input('x='); while x>=10 y=x*5
截至目前,MATLAB已经发展到12.1版, 适用于所有32位的
Windows操作系统, 按NTFS(NT文件系统)格式下完全安装约需 850 MB。MATLAB软件主要由主包、仿真系统和工具箱三大部 分组成。
MATLAB的安装与卸载
MATLAB软件在用户接口设计上具有较强的亲和力, 其安装过程比较典型, 直接运行光盘中的安装向导 支撑程序SETUP.exe, 按其提示一步步选择即可。 MATLAB自身带有卸载程序,在其安装目录下有
MATLAB求解非线性规划
第一部分:无约束极值问题
• 单变量函数求最小值的标准形式为
min
s.t
x
f ( x)
x1 x x2
函数 fminbnd 格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间 上函数fun取最小值时x值,fun为目标函数的表达式字符串 或MATLAB自定义函数的函数柄。 函数fminbnd的算法基于黄金分割法和二次插值法,它要求 目标函数必须是连续函数,并可能只给出局部最优解。
2.1 简单的数学运算
在 MATLAB 命令窗口中,可以直接输入数学运 算式子并回车,即能够显示出计算结果,例如, 输入: 4+2-5*6+8/4 显示结果为: ans = -22 其中变量ans(answer的缩写)为MATLAB预设置 的一个变量。
另一种方式是把计算所得的值赋给一个 MATLAB变量, 例如:
plot3命令将绘制二维图形的函数plot的特性扩展到三维空间。函 数格式除了包括第三维的信息(比如Z方向)之外,与二维函数 plot相同。
2.三维网线图的绘制
步骤: 1)栅格数据点的产生 命令:meshgrid(x,y)
2)绘制三维网格命令:mesh(x,y,z)
绘制三维网线图
程序: x=[-8:0.5:8]; y=x; [X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; mesh(X,Y,Z)
求 y=x3+2.5x2+x+10=0 的根。 p=[1 2.5 1 10]; % 多项式方程的 MATLAB表达 x=roots(p) % root
6 控制流与若干控制命令
控制流语句有三种结构:for循环,while循环,if— else—end,switch-case结构等。控制命令主要介绍 break、pause、input、keyboard、debug等命令。
2.10 M文件
在命令窗口模式下键入一行命令立即执行,程序 可读性差且难以存储——〉编成可存储的程序文 本——〉m文件 M文件名的后缀为m。MATLAB语言环境下能 执行的文件是以后缀为m的文件
Matlab本身含有很多.m文件
2.10.1 M文件的编制
1、打开编辑窗口 2、编制一个多项式方程求根的程序: A=[4 5 6 8] P=roots(A) % 即 A=4x3+5x2+6x+8
• 多条曲线的绘制 plot(x1,y1,x2,y2,· · · )
二、绘制三维图形
1、三维曲线的基本绘图命令 基本格式:
plot3(x,y,z,’s’) plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’,· · · ) 例:t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t);
MATLAB基础及求解非线性规划
经济管理学院:李继红
1 Matlab简介及操作环境
1.1 Matlab简介
由美国 DOCTORCLEVER MOLER 于 1980 年 开始研制并于1984年推出正式版本。以后陆续推 出了4.0,4.2和5.0版本,1999年初推出了功能更 为强大的5.3版本,2001年推出6.1版本,2003年 推出了6.5版本。2004年6月正式推出7.0版本。 MATLAB是建立在 C 语言基础上的高级语言, 并建立了自已独特的语言环境。
6.1 for循环
li1_6_1.m 1、for循环 • For循环可以按指定的次数重复执行一系列语 句。For循环的常见结构: • for 变量 =表达式 这里循环语句可以是一条或 循环语句 多条,并且可以是变量的函 数 end • 如:for k=初值: 增值: 终值
例:
% mzmfor.m clear all N=input('请输入矩阵的维数 N:'); for I = 1:N, for J = 1:N, A(I,J) = 1/(I+J-1); end end
除:逆阵A-1 = inv(A),矩阵行列式 det(A),左除,右除,行列式不为0
4 关系与逻辑运算
关系运算:< <= > >= == ~=
逻辑运算: &
|
~
xor
5 向量与多项式
在MATLAB中向量的表达和一维数组的表示 形式一致,而多项式也可以用一个行向量来表 示,即将多项式的系数按变量的降幂排列。
uninstall子目录,运行该目录下的uninstall.exe即可;
也可以通过Windows系统的安装卸载程序进行卸载。
MATLAB的启动与退出
MATLAB安装完成后,会自动在Windows桌面 上生成一个快捷方式, 它是指向安装目录下 \bin\win32\matlab.exe的链接, 双击它即可来到 MATLAB集成环境的基本窗口,通常称之为命令 窗口。 MATLAB的退出与普通WIN32的程序一样, 值 得一提的是它有一个自身专有的快捷键Ctrl+Q。
MATLAB程序设计语言简介
MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开
发的一套用于科学工程计算的可视化高性能语言,具有强大的矩
阵运算能力。 与大家常用的Fortran和C等高级语言相比,MATLAB的语法 规则更简单,更贴近人的思维方式,被称之为“草稿纸式的语 言”。
>>a1=5^2
a1 = 25
又例如:
>>bz=10+a1 bz =
35
这样创建了两个MATLAB变量a1和bz,每一个变量都显 示出一个计算结果。
2.9 常用的基本数学函数
MATLAB中,数学公式大多数可以用数学函数的 方式来表示。 要注意的是,三角函数的计算只采用弧度的操作, 角度必须经过弧度的换算才能使用。例如: sin(90°),只能表示为:sin(pi/2),其中pi为圆 周率π 。
循环条件是条 件表达式的值 为真
x=x-5
end
6.3 if-else-end分支语句
最简单的If-else-end结构是:
条件式; 循环体语句; end 如果在表达式中的所有元素为真(非零), 那么就执行if和end语言之间的语句。
if
6.4 switch-case语句
一般switch-case语句格式为: switch num case n1 command case n2 command case n3 command . . .otherwise Command
在用for语句实 现多重循环时, for和end必须 成对出现!
请分析一下本段程序共循环多少次?
% mzmfor2.m for n=1:5 x(n)=sin(n*pi/10); n=10; end
For循环不能用For 循环内新赋值循环变 量n来终止。因此本 段中循环次数仍为五 次!
6.2 while循环
编辑窗口
提供给用户编程、阅读和调 试程序的窗口
图形输出窗口
实现图形的可视化、编辑图形的注释和对图形的编辑
Simulink窗口
应用框图编程的方法,实现对系统的仿真,并 以图形方式表示。
图1.8 新建Sinulink模 型窗口 图1.7 Sinulink模块库浏览器
2 Matlab基本特性
MATLAB语言的规则十分简单,是一种表达 式语言,其语句格式类似于数学式子。 其管理的对象是矩阵,标量(数量)是作为1×1 的矩阵来处理的。与数学术语一样,仅有一行 或一列的矩阵作为向量来处理。
• x = fminbnd(fun,x1,x2,options) % options为指定优化参 数选项 • *x,fval+ = fminbnd(…) % fval为目标函数的最小值 • *x,fval,exitflag+ = fminbnd(…) %xitflag为终止迭代的条 件 • *x,fval,exitflag,output+ = fminbnd(…) % output为优化信 息 • 说明 若参数exitflag>0,表示函数收敛于x,若 exitflag=0,表示超过函数估计值或迭代的最大数字, exitflag<0表示函数不收敛于x;若参数 output=iterations表示迭代次数,output=funccount表 示函数赋值次数,output=algorithm表示所使用的算法。
MATLAB(MATrix LABoratory)的基本含义是矩阵实验室,
它是由美国MathWorks公司研制开发的一套高性能的集数值计算、
图形显示等于一体的可视化数学工具软件。它是建立在向量、
数组和矩阵基础之上的,除了基本的数值计算、数据处理、 图形显示等功能之外,还包含功能强大的多个“工具箱”, 如优化工具箱(optimization toolbox)、统计工具箱、样条 函数工具箱和数据拟合工具箱等都是优化计算的有力工具。
2.10.6 M文件的调试
MATLAB在执行M文件过程中,若一旦发现有语法错误,将在 MATLAB命令窗口中显示其错误类型,还指出错误的行号,并 停止程序的执行,用户可以根据所提供的信息来修改程序。 另外,在MATLAB编辑/调试器窗口的工具栏和菜单中,可以通 过设置程序断点,并使程序单步执行来调试程序,工具栏中 有有关调试程序的图标。
1.2 Matlab的语言环境
1、Matlab的工作视窗/界面 A、命令窗口 (command window) B、编辑/调节器窗口(editor/debugger) C、图形输出窗口(figure) D、simulink集成编程窗口
命令窗口
提供给用户使用管 理功能的人机界面
主要项目:
New Open Preference Set path
li1_6_4.m
7 数据的可视化
一. 绘制二维图形
1、简单的二维绘图命令(plot) • Plot函数是将各个数据点通过连折线的方式来 绘制二维图形的。其格式有以下几种。 • plot(y) %绘制向量y的曲线 • plot(x,y) %绘制纵坐标为向量y横坐标为向量x的曲线
•
%x,y的维数应相同。
用例子来说明:设A矩阵为3×3矩阵,其数据为: 1 2 3 4 5 6 7 8 9 在MATLAB中,输入方法有几种: 例 A=[1 2 3;4 5 6;7 8 9] 也可这样输入: A=[1, 2 3 4, 5, 6 7 8 9]
矩阵元素之间可用逗号‘, ’或空格‘ ’ 隔开, 行与行之间用分号‘;’隔开;
3、存盘(文件名不得与已存在的m文件相 同)
2.10.2 M文件的执行
在MATLAB命令窗口下直接键入文件名并按回车键即可
2.10.3 M文件的打开 2.10.4 M文件的编辑修改 2.10.5 M文件变量的工作空间
M文件变量的工作空间就是MATLAB的工作空间。若变量在 MATLAB工作空间中已存在,其变量的值可以被其他的M文 件使用。但要特别注意在MATLAB工作空间中该变量的大小。
3 数组、矩阵的基本运算
MATLAB (MATrix LABoratory) 是一种 以矩阵作为基本数据结构、以矩阵wenku.baidu.com算为
基础的科学计算软件
所有变量和数据都可看成为矩阵变量和矩阵数据。 应用MATLAB语言编程时,尤其要注意矩阵的 向量的维数问题。标量可以看作为1×1的矩阵。
数组与矩阵元素的输入
语句结尾:逗号显示结果,分号不显示结果
• 例 x=[3,4,2];y=[6 7 2];z=x*y' • z= • 50 • 又例 z=x'*y • z= • 18 21 6 • 24 28 8 • 12 14 4
矩阵运算:
加:两矩阵阶数相同
减:两矩阵阶数相同
乘:第一个矩阵的列数等于第二个矩阵的行数, 即内阶数相等