matlab 常用算法大全

  • 格式:doc
  • 大小:61.50 KB
  • 文档页数:32

下载文档原格式

  / 32
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab 高级算法程序代码汇总

一、灰色预测模型matlab程序

% renkou1=renkou(:,1);%年末常住人口数

% renkou2=renkou(:,2);%户籍人口

% renkou3=renkou(:,3);%非户籍人口

% shjian=1979:2010;

%以上数据自己给

x0=renkou2';

n=length(x0);

lamda=x0(1:n-1)./x0(2:n)

range=minmax(lamda)

x1=cumsum(x0)

for i=2:n

z(i)=*(x1(i)+x1(i-1));

end

B=[-z(2:n)',ones(n-1,1)];

Y=x0(2:n)';

u=B\Y

x=dsolve('Dx+a*x=b','x(0)=x0');

x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});

yuce1=subs(x,'t',[0:n-1]);

digits(6),y=vpa(x) %为提高预测精度,先计算预测值,再显示微分方程的解yuce=[x0(1),diff(yuce1)]

epsilon=x0-yuce %计算残差

delta=abs(epsilon./x0) %计算相对误差

rho=1-*u(1))/(1+*u(1))*lamda %计算级比偏差值

%以深圳人口数据得到预测模型及预测误差相关数据

lamda =

Columns 1 through 8

Columns 9 through 16

Columns 17 through 24

Columns 25 through 31

range =

x1 =

+003 *

Columns 1 through 8

Columns 9 through 16

Columns 17 through 24

Columns 25 through 32

u =

y =

+*exp(.664533e-1*t)

yuce =

Columns 1 through 8

Columns 9 through 16

Columns 17 through 24

Columns 25 through 32

epsilon =

Columns 1 through 8

0 Columns 9 through 16

Columns 17 through 24

Columns 25 through 32

delta =

Columns 1 through 8

Columns 9 through 16

Columns 17 through 24

Columns 25 through 32

rho =

Columns 1 through 8

Columns 9 through 16

Columns 17 through 24

Columns 25 through 31

二、遗传算法程序代码

% Optimizing a function using Simple Genetic Algorithm with elitist preserved

%Max f(x1,x2)=100*(x1*x1-x2).^2+(1-x1).^2; <=x1,x2<=

% Author: Wang Yonglin ()

clc;clear all;

format long;%设定数据显示格式

%初始化参数

T=100;%仿真代数

N=80;% 群体规模

pm=;pc=;%交叉变异概率

umax=;umin=;%参数取值范围

L=10;%单个参数字串长度,总编码长度2L bval=round(rand(N,2*L));%初始种群bestv=-inf;%最优适应度初值

%迭代开始

for ii=1:T

%解码,计算适应度

for i=1:N

y1=0;y2=0;

for j=1:1:L

y1=y1+bval(i,L-j+1)*2^(j-1);

end

x1=(umax-umin)*y1/(2^L-1)+umin;

for j=1:1:L

y2=y2+bval(i,2*L-j+1)*2^(j-1);

end

x2=(umax-umin)*y2/(2^L-1)+umin;

obj(i)=100*(x1*x1-x2).^2+(1-x1).^2; %目标函数xx(i,:)=[x1,x2];

end

func=obj;%目标函数转换为适应度函数

p=func./sum(func);

q=cumsum(p);%累加

[fmax,indmax]=max(func);%求当代最佳个体

if fmax>=bestv

bestv=fmax;%到目前为止最优适应度值

bvalxx=bval(indmax,:);%到目前为止最佳位串optxx=xx(indmax,:);%到目前为止最优参数

end

Bfit1(ii)=bestv; % 存储每代的最优适应度%%%%遗传操作开始

%轮盘赌选择

for i=1:(N-1)

r=rand;

tmp=find(r<=q);

相关主题