MATLAB在数学建模中的应用
2017-01-13 10:18
162 查看
线性规划linear programming
linprog函数
非线性规划nonlinear programming
fmincon函数
二次规划quadprog函数
灰色预测模型gray model
遗传算法
线性不等式约束:A∗x⃗ ≤b
线性等式约束:Aeq∗x⃗ =beq
eg.
c=[1 2 3]
x⃗ =[x1;x2;x3] 注:x⃗ 是列向量
f=cT∗x⃗ =x1+2∗x2+3∗x3
线性约束:A∗x⃗ ≤b 、Aeq∗x⃗ =beq
非线性约束:C(x)≤0、Ceq(x)=0(注:线性约束也可以写这里)
‘func1’目标函数f(x)函数m文件:
‘nonlinear’非线性函数m文件:
fmincon语法:
H对称矩阵两倍,fTx是一次函数部分
令 x(1)(i)=∑x(0)(i)
则累积和向量:X1=[x(1)(1),x(1)(2),...x(1)(n)]
矩阵:E=⎡⎣⎢⎢⎢⎢1,1,...1,x(1)(1)+x(1)(2)x(1)(2)+x(1)(3)x(1)(n−1)+x(1)(n)⎤⎦⎥⎥⎥⎥
且:dx(1)/dt+ax(1)=u
设:a⃗ =[au]
用最小二乘法求a⃗ :
a⃗ =(ETE)−1ET∗[x(0)(1),x(0)(2),...x(0)(n)]T=(ETE)−1ETX0T
matlab代码:
linprog函数
非线性规划nonlinear programming
fmincon函数
二次规划quadprog函数
灰色预测模型gray model
遗传算法
线性规划(linear programming)
目标函数(求min):f=cT∗x⃗线性不等式约束:A∗x⃗ ≤b
线性等式约束:Aeq∗x⃗ =beq
eg.
c=[1 2 3]
x⃗ =[x1;x2;x3] 注:x⃗ 是列向量
f=cT∗x⃗ =x1+2∗x2+3∗x3
linprog函数
[x result]=linprog(c, A, b, Aeq, beq, LOW, UP, x0, options)
非线性规划(nonlinear programming)
fmincon函数
目标函数(求min):f(x)线性约束:A∗x⃗ ≤b 、Aeq∗x⃗ =beq
非线性约束:C(x)≤0、Ceq(x)=0(注:线性约束也可以写这里)
‘func1’目标函数f(x)函数m文件:
function f=func1(x) ...
‘nonlinear’非线性函数m文件:
function [C Ceq]=nonlinear(x) ...
fmincon语法:
[x result]=fmincon('func1', A, b, Aeq, beq, LOW, UP, 'nonlinear', options)
二次规划(quadprog函数)
目标函数变化成:(xTHx)/2+fTxH对称矩阵两倍,fTx是一次函数部分
[x result]=quadprog(H, f, A, b, Aeq, beq, LOW, UP, x0, options)
灰色预测模型(gray model)
多个数据向量:X0=[x(0)(1),x(0)(2),...x(0)(n)]令 x(1)(i)=∑x(0)(i)
则累积和向量:X1=[x(1)(1),x(1)(2),...x(1)(n)]
矩阵:E=⎡⎣⎢⎢⎢⎢1,1,...1,x(1)(1)+x(1)(2)x(1)(2)+x(1)(3)x(1)(n−1)+x(1)(n)⎤⎦⎥⎥⎥⎥
且:dx(1)/dt+ax(1)=u
设:a⃗ =[au]
用最小二乘法求a⃗ :
a⃗ =(ETE)−1ET∗[x(0)(1),x(0)(2),...x(0)(n)]T=(ETE)−1ETX0T
matlab代码:
clear syms a b; c=[a b]'; A=[89677 99215 109655 120333 135823 159878 182321 209407 246619 300670]; %求A=X0 B=cumsum(A); %求B=X1 n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end D=A; D(1)=[]; D=D'; E=[-C;ones(1,n-1)]; %求E=E^T c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %求a u F=[]; F(1)=A(1); for i=2:(n+10) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+10) G(i)=F(i)-F(i-1); end t1=1999:2008; t2=1999:2018; G plot(t1, A, 'o', t2, G)
遗传算法
相关文章推荐
- 对于运行时间很长的matlab程序能否察看其运行进度
- matlab: 盒图---boxplot
- 通俗解释遗传算法及其Matlab实现
- matlab中cell数组的全面介绍
- MATLAB 如何输出-print,fprint,fscanf,disp
- 【matlab】简要记录在MATLAB的 gui编写中常用的函数知识。
- 【matlab】GUI的handlevisibility属性
- 线性回归(Matlab)
- MATLAB是否支持多线程
- 使用 MATLAB Coder 将 MATLAB 代码生成 C/C++ 代码
- Matlab 形态学图像处理
- 最大似然参数估计
- MATLAB 摄像头视频获取和保存
- MATLAB批量注释及撤销的办法
- matlab eval() 不能计算分段函数
- 调试别人的MATLAB+C混合编程时遇到的问题
- 【matlab】逻辑运算符 | || ~ ... 解读
- Matlab_GUI gcf、gca 以及gco 的区别用法
- matlab快速傅立叶变换小程序(含GUI)
- 【matlab】题目:(不同GUI之间控件的调用(原创))