Matlab非线性规划——求解周长固定三角形的最大面积
问题提出:
已知三角形的周长固定为3cm,求三角形面积最大时的每一条边长和面积。编写MATLAB程序进行求解。
问题分析:
我们假设边长分别为a,b,c,a+b+c=3,面积为S,三角形面积求法为:
根据三角形两边之和大于第三边(两边只差小于第三边)以及周长固定为3cm建立约束关系如下:
由此,问题转化成了求解非线性规划问题,先介绍一下MATLAB中的fmincon函数,fmincon函数为求解最小值的函数,基本语法如下:
[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
x的返回值是决策向量x的取值,fval的返回值是目标函数f(x)的取值
fun是用M文件定义的函数f(x),代表了(非)线性目标函数
x0是x的初始值
A,b,Aeq,beq定义了线性约束 ,如果没有线性约束,则A=[],b=[],Aeq=[],beq=[]
lb和ub是变量x的下界和上界,如果下界和上界没有约束,则lb=[],ub=[],也可以写成lb的各分量都为 -inf,ub的各分量都为inf
nonlcon是用M文件定义的非线性向量函数约束
options定义了优化参数,不填写表示使用Matlab默认的参数设置
编写代码:
(1)编写约束函数的function,注意fmincon函数为求解最小值的函数,所以首先要在表示三角形面积的函数前加上负号。建立的第一个fun1.m如下:
%a表示为x(1),b表示为x(2);c表示为x(3)
function f=fun1(x)
s=(x(1)+x(2)+x(3))/2;
f=-sqrt(s*(s-x(1))*(s-x(2))*(s-x(3)));%表示三角形面积的函数
(2)然后编写约束条件的function,注意不等式要写成小于等于0的形式,然后依次写出左侧表示的式子。建立的第二个fun2.m如下:
function [g,h]=fun2(x)
%g and h 表示约束条件
g=[-x(1)-x(2)+x(3)-x(1)+x(2)-x(3)x(1)-x(2)-x(3)];
h=[x(1)+x(2)+x(3)-3];
(3)编写主函数
clear
clc
%fun1 fun2
[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[],'fun2');
x %输出x矩阵,a,b,c的值
y=-y %fun1中目标函数加了负号,这里加回来。
运行结果:
最后:
不定期发布一些matlab设计内容,敬请期待。包括但不限于如下内容:信号处理、通信仿真、gui设计、matlab appdesigner,simulink仿真。有任何有关MATLAB的问题可加QQ:2802009708进行咨询。或扫码进行添加。
Matlab非线性规划——求解周长固定三角形的最大面积相关推荐
- Matlab非线性规划——求解周长固定四边形的最大面积
问题提出: 已知四边形的周长固定为4cm,四边形边长为a,b,c,d,对角线长度为x.求四边形面积最大时的每一条边长和面积.编写MATLAB程序进行求解. 问题分析: 四边形ABCD问题可将其划分为
- matlab非线性约束条件,MATLAB 非线性规划及非线性约束条件求解
MATLAB 非线性规划及非线性约束条件求解 [题1]求非线性规划问题: 221212121min 262 f x x x x x x =+--- 12121212222.23 ,0 x x x x ...
- matlab用dde23求解带有固定时滞的时滞微分方程
dde23函数调用方法 sol = dde23(ddefun,lags,history,tspan,options) dde23 跟踪不连续性并使用显式 Runge-Kutta (2,3) 对和插值对 ...
- python非线性规划求解_Python之建模规划篇--非线性规划
Python之建模规划篇--非线性规划 基本介绍 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问 题.一般说来,解非线性规划要比解线性规划问题困难得多.而且,也不象线性规划有 ...
- Matlab 最优化求解
文章目录 @[toc] 1 线性规划 2 非线性规划 3 无约束问题matlab解法 3.1 符号解 3.2 数值解 4 求解零点与方程组的解 4.1 多项式 4.2 符号解 4.3 数值解 4.4 ...
- 【MATLAB】求解约束条件下的目标函数最值(fmincon用法解析)
[MATLAB]求解约束条件下的目标函数最值(fmincon用法解析) 一.简介 二.fmincon()的基本形式与参数 三.约束条件类型与参数写法 1.线性不等式约束(参数写法) 2.线性等式约束( ...
- 对数线性模型 matlab,非线性规划含有对数函数用什么matlab调用函数的程序
matlab非线性规划fmincon函数中目标函数参数传递问题, 使用匿名函数句柄就可以了fmincon需要的函数fun只有一个输入参数fun(x)而你的函数需要多一个能改变的变量那么形式变成myfu ...
- MATLAB遗传算法求解物流配送中心选址问题优化代码实例
1.简介 物流分配中心选址问题是指一定数量的客户,它们有不同数量的货物需求,有一定数量的备选中心作为配送中心.配送中心向客户提供货物的配送服务,现需要选择合适的配送中心位置(选址数量一定)或合适的配送 ...
- python解非线性规划问题讲析_python中线性规划中的单纯形法、scipy库与非线性规划求解问题...
单纯形法.scipy库与非线性规划求解问题 单纯形法的基本定义 大M法求解线性规划的原理 excel求解 Python调用optimize包和scipy求解线性规划 Python编程实现单纯形法 对比 ...
最新文章
- unity2D平面摄像机滑动缩放
- Bootstrap table 行编辑导航
- 利用JS实现点击上一周或下一周却换
- 解决PendingIntent传递参数为空的问题
- 乐高科技系列搭建指南 pdf_近30年十辆乐高科技系列摩托车回顾_积木
- c语言指针f32*,还没搞懂C语言指针?这里有最详细的纯干货讲解(附代码)
- Rust: 如何在windows环境中用Atom中玩转它?--new
- SuperMap IClient for Leaflet 加载高斯克吕格投影三度分带CGCS2000大地坐标系WMTS服务
- 软考中级网络工程师学习笔记(知识点汇总)详细版本
- dispatch_once造成的死锁问题
- 网页第三方追踪原理——如何通过1像素的图片追踪
- 【Tableau 设计提示11 】- 仪表板布局提示
- 带栩字的优美古诗句_带栩字有寓意的男孩名字
- Vue 设置背景图片
- C语言函数-形参和实参
- Niagara Networks和Fortinet安全解决方案
- relative absolute实例讲解
- 《秋雨挽歌》由迟到到其他2012-11-5
- VMware虚拟机走主机代理上网
- Android播放网络视频截图