问题提出:

已知三角形的周长固定为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非线性规划——求解周长固定三角形的最大面积相关推荐

  1. Matlab非线性规划——求解周长固定四边形的最大面积

    问题提出: 已知四边形的周长固定为4cm,四边形边长为a,b,c,d,对角线长度为x.求四边形面积最大时的每一条边长和面积.编写MATLAB程序进行求解. 问题分析: 四边形ABCD问题可将其划分为

  2. matlab非线性约束条件,MATLAB 非线性规划及非线性约束条件求解

    MATLAB 非线性规划及非线性约束条件求解 [题1]求非线性规划问题: 221212121min 262 f x x x x x x =+--- 12121212222.23 ,0 x x x x ...

  3. matlab用dde23求解带有固定时滞的时滞微分方程

    dde23函数调用方法 sol = dde23(ddefun,lags,history,tspan,options) dde23 跟踪不连续性并使用显式 Runge-Kutta (2,3) 对和插值对 ...

  4. python非线性规划求解_Python之建模规划篇--非线性规划

    Python之建模规划篇--非线性规划 基本介绍 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问 题.一般说来,解非线性规划要比解线性规划问题困难得多.而且,也不象线性规划有 ...

  5. Matlab 最优化求解

    文章目录 @[toc] 1 线性规划 2 非线性规划 3 无约束问题matlab解法 3.1 符号解 3.2 数值解 4 求解零点与方程组的解 4.1 多项式 4.2 符号解 4.3 数值解 4.4 ...

  6. 【MATLAB】求解约束条件下的目标函数最值(fmincon用法解析)

    [MATLAB]求解约束条件下的目标函数最值(fmincon用法解析) 一.简介 二.fmincon()的基本形式与参数 三.约束条件类型与参数写法 1.线性不等式约束(参数写法) 2.线性等式约束( ...

  7. 对数线性模型 matlab,非线性规划含有对数函数用什么matlab调用函数的程序

    matlab非线性规划fmincon函数中目标函数参数传递问题, 使用匿名函数句柄就可以了fmincon需要的函数fun只有一个输入参数fun(x)而你的函数需要多一个能改变的变量那么形式变成myfu ...

  8. MATLAB遗传算法求解物流配送中心选址问题优化代码实例

    1.简介 物流分配中心选址问题是指一定数量的客户,它们有不同数量的货物需求,有一定数量的备选中心作为配送中心.配送中心向客户提供货物的配送服务,现需要选择合适的配送中心位置(选址数量一定)或合适的配送 ...

  9. python解非线性规划问题讲析_python中线性规划中的单纯形法、scipy库与非线性规划求解问题...

    单纯形法.scipy库与非线性规划求解问题 单纯形法的基本定义 大M法求解线性规划的原理 excel求解 Python调用optimize包和scipy求解线性规划 Python编程实现单纯形法 对比 ...

最新文章

  1. unity2D平面摄像机滑动缩放
  2. Bootstrap table 行编辑导航
  3. 利用JS实现点击上一周或下一周却换
  4. 解决PendingIntent传递参数为空的问题
  5. 乐高科技系列搭建指南 pdf_近30年十辆乐高科技系列摩托车回顾_积木
  6. c语言指针f32*,还没搞懂C语言指针?这里有最详细的纯干货讲解(附代码)
  7. Rust: 如何在windows环境中用Atom中玩转它?--new
  8. SuperMap IClient for Leaflet 加载高斯克吕格投影三度分带CGCS2000大地坐标系WMTS服务
  9. 软考中级网络工程师学习笔记(知识点汇总)详细版本
  10. dispatch_once造成的死锁问题
  11. 网页第三方追踪原理——如何通过1像素的图片追踪
  12. 【Tableau 设计提示11 】- 仪表板布局提示
  13. 带栩字的优美古诗句_带栩字有寓意的男孩名字
  14. Vue 设置背景图片
  15. C语言函数-形参和实参
  16. Niagara Networks和Fortinet安全解决方案
  17. relative absolute实例讲解
  18. 《秋雨挽歌》由迟到到其他2012-11-5
  19. VMware虚拟机走主机代理上网
  20. Android播放网络视频截图

热门文章

  1. java jit 编译器_浅谈对JIT编译器的理解。
  2. Coremail邮件安全竞赛正式启动
  3. mask_rcnn 版本过高的错误
  4. Codeforces2000分左右DP泛刷
  5. 【PaddleNLP 基于深度学习的自然语言处理】第三次作业--必修|快递单信息识别
  6. 日本人真实的生活水平
  7. 身份证号码和姓名大全 身份证姓名和真实姓名不一致?
  8. docker Alpine一个只有5M小而美的Docker镜像
  9. 记录使用的安卓开发工具
  10. 单刹车信号不合理故障_驾照考试不合理