matlab 图像 算法 详解

来源:互联网 发布:mac用itunes制作铃声 编辑:程序博客网 时间:2024/04/29 01: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)=0.5*(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-(1-0.5*u(1))/(1+0.5*u(1))*lamda %计算级比偏差值  
%以深圳人口数据得到预测模型及预测误差相关数据   
lamda = 
  Columns 1 through 8 
    0.9741    0.9611    0.9419    0.8749    0.9311    0.9093    0.9302    0.9254 
  Columns 9 through 16 
    0.9245    0.9278    0.9442    0.9376    0.9127    0.9148    0.9332    0.9477 
  Columns 17 through 24 
    0.9592    0.9445    0.9551    0.9562    0.9594    0.9461    0.9469    0.9239 
  Columns 25 through 31 
    0.9140    0.9077    0.9243    0.9268    0.9312    0.9446    




   
  




0.9618   
range = 
    0.8749    0.9741   x1 = 
  1.0e+003 * 
  Columns 1 through 8 
    0.0313    0.0634    0.0967    0.1322    0.1727    0.2162    0.2641    0.3155 
  Columns 9 through 16 
    0.3711    0.4313    0.4961    0.5647    0.6380    0.7182    0.8059    0.8999 
  Columns 17 through 24 
    0.9990    1.1024    1.2119    1.3265    1.4463    1.5712    1.7033    1.8427 
  Columns 25 through 32 
    1.9936    2.1588    2.3407    2.5375    2.7499    2.9780    3.2194    3.4705   u = 
   -0.0665    31.3737   y =   
-472.117+503.377*exp(.664533e-1*t)  
yuce = 
  Columns 1 through 8 
   31.2600   34.5876   36.9641   39.5040   42.2183   45.1192   48.2194   51.5326 
  Columns 9 through 16 
   55.0734   58.8576   62.9017   67.2238   71.8428   76.7792   82.0548   87.6928 
  Columns 17 through 24 
   93.7183  100.1578  107.0397  114.3945  122.2547  130.6550  139.6324  149.2267 
  Columns 25 through 32 
  159.4802  170.4382  182.1492  194.6649  208.0405  222.3352  237.6121  253.9386   
epsilon = 
  Columns 1 through 8 






  




         0   -2.4976   -3.5741   -4.0540   -1.6983   -1.5992   -0.3594   -0.0826 
  Columns 9 through 16 
    0.5266    1.2824    1.9183    1.4262    1.3772    3.4408    5.6352    6.2772 
  Columns 17 through 24 
    5.4417    3.2222    2.4203    0.2055   -2.4047   -5.7350   -7.5924   -9.7767 
  Columns 25 through 32 
   -8.5502   -5.3082   -0.2192    2.1651    4.3395    5.7348    3.8379   -2.9086   
delta = 
  Columns 1 through 8 
         0    0.0778    0.1070    0.1144    0.0419    0.0367    0.0075    0.0016 
  Columns 9 through 16 
    0.0095    0.0213    0.0296    0.0208    0.0188    0.0429    0.0643    0.0668 
  Columns 17 through 24 
    0.0549    0.0312    0.0221    0.0018    0.0201    0.0459    0.0575    0.0701 
  Columns 25 through 32 
    0.0567    0.0321    0.0012    0.0110    0.0204    0.0251    0.0159    0.0116   rho = 
  Columns 1 through 8 
   -0.0411   -0.0271   -0.0066    0.0650    0.0049    0.0282    0.0058    0.0110 
  Columns 9 through 16 
    0.0119    0.0084   -0.0091   -0.0020    0.0245    0.0223    0.0027   -0.0128 
  Columns 17 through 24 
   -0.0251   -0.0094   -0.0208   -0.0219   -0.0254   -0.0111   -0.0119    0.0126 
  Columns 25 through 31 
    0.0232    0.0300    0.0122    0.0095    0.0048   -0.0095   -0.0280 
二、遗传算法程序代码 
% Optimizing a function  using Simple Genetic Algorithm with elitist preserved 






  




%Max f(x1,x2)=100*(x1*x1-x2).^2+(1-x1).^2; -2.0480<=x1,x2<=2.0480 % Author: Wang Yonglin (wylin77@126.com) clc;clear all; 
format long;%设定数据显示格式 %初始化参数 T=100;%仿真代数 N=80;% 群体规模 
pm=0.05;pc=0.8;%交叉变异概率 umax=2.048;umin=-2.048;%参数取值范围 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); 
newbval(i,:)=bval(tmp(1),:); end  
newbval(N,:)=bvalxx;%最优保留 bval=newbval; %单点交叉 for i=1:2:(N-1) cc=rand; if cc<pc 
point=ceil(rand*(2*L-1));%取得一个1到2L-1的整数 ch=bval(i,:); 
bval(i,point+1:2*L)=bval(i+1,point+1:2*L); bval(i+1,point+1:2*L)=ch(1,point+1:2*L); end end    
bval(N,:)=bvalxx;%最优保留 %位点变异 
mm=rand(N,2*L)<pm;%N行 






  










  










  










  










  










  










  










  










  










  










  










  










  










  










  










  










  



0 0
原创粉丝点击