资源简介
用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:
相关资源
- 东南大学自动控制原理实验报告 实验
- 降低OFDM峰均比的matlab仿真
- MATLAB智能算法超级学习手册
- Matlab通信工程仿真
- Criminisi算法图像修复matlab
- 视频移动目标检测
- 循环码的matlab仿真
- 图像缩放,用MATLAB仿真,经典图像缩
- matlab车道线检测
- matlab数据挖掘程序
- 潮流matlab程序
- BFO算法的MATLAB源代码
- 细菌觅食算法(matlab)
- 蚁群算法的matlab源码.rar
- 关于GPS的matlab程序
- 基于Matlab实现的DES加密
- RRT_MATLAB程序带中文注释
- 牛顿——拉夫逊潮流计算的matlab程序
- 何凯明去雾MATLAB代码
- 粒子群优化算法源码matlab
- matlab十大经典算法
- matlab实现三维重建
- matlab实现画最小外接矩形
- Tabu search by matlab to solve TSP
- 基于非支配排序遗传算法处理多目标
- 读取dat文件的matlab代码
- 简单的matlab图像处理GUI程序
- Gabor变换,MATLAB,边缘检测
- MATLAB中计算psnr值的实现
- 频偏估计S&C方法及实现matlab
评论
共有 条评论