资源简介
用matlab实现动态规划的源代码,函数文件形式,参数说明见注释
代码片段和文件信息
function [p_optfval]=dynprog(xDecisFunObjFunTransFun)
% [p_optfval]=dynprog(xDecisFunObjFunTransFun)
% 自由始端和终端的动态规划求指标函数最小值的逆序算法递归计算程序。
% x是状态变量,一列代表一个阶段状态;
% M-函数DecisFun(kx)由阶段k的状态变量x求出相应的允许决策变量;
% M-函数ObjFun(kxu)是阶段指标函数,
% M-函数TransFun(kxu)是状态转移函数其中x是阶段k的某状态变量,u是相应的决策变量;
% 输出p_opt由4列构成,p_opt=[序号组;最优策略组;最优轨线组;指标函数值组];
% 输出fval是一个列向量,各元素分别表示p_opt各最优策略组对应始端状态x的最优函数值;
%
%例(参看胡良剑等编《数学实验--使用MATLAB》P180
%先写3个函数
% eg13f1_2.m
% function u=DecisF_1(kx)
% 在阶段k由状态变量x的值求出其相应的决策变量所有的取值
% c=[70728076];q=10*[67126];
% if q(k)-x<0u=0:100; %决策变量不能取为负值
% elseu=q(k)-x:100;end; %产量满足需求且不超过100
% u=u(:);
% eg13f2_2.m
% function v=ObjF_1(kxu)
% 阶段k的指标函数
% c=[70728076];v=c(k)*u+2*x;
% eg13f3_2.m
% function y=TransF_1(kxu)
% 状态转移方程
% q=10*[67126];y=x+u-q(k);
%调用DynProg.m计算如下:
% clear;x=nan*ones(144);% x是10的倍数,最大范围0≤x≤130
% %因此x=01...13,所以x初始化取14行,nan表示无意义元素
% x(1:71)=10*(0:6)‘; % 按月定义x的可能取值
% x(1:112)=10*(0:10)‘;x(1:123)=10*(2:13)‘;
% x(1:74)=10*(0:6)‘;
% [pf]=dynprog(x‘eg13f1_2‘‘eg13f2_2‘‘eg13f3_2‘)
% By X.D. Ding June 2000
k=length(x(1:));f_opt=nan*ones(size(x));d_opt=f_opt;
t_vubm=inf*ones(size(x));x_isnan=~isnan(x);t_vub=inf;
% 计算终端相关值
tmp1=find(x_isnan(:k));tmp2=length(tmp1);
for i=1:tmp2
u=feval(DecisFunkx(ik));tmp3=length(u);
for j=1:
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论