bumiedexin 发表于 2007-4-27 10:40

遗传算法求解模型

最近在做一个模型的优化,用到了matlab7.0中的遗传算法
我设计的算法是.1、选定初始参数,求解微分方程组
2、将方程的解与实验值比较,有一个目标函数
3、目标函数符合要求输出结果,不符合调整参数回到1。
下面是我编的解微分方程和目标函数的程序。
解微分方程:
%fangchengzu.m
%模型的方程组
function dydt=fangchengzu(t,y,a,b,c,d,e,f)
%function dydt=fangchengzu(t,y)
dydt=zeros(5,1);
%Xf、Xd、V、S、P分别对应矩阵dydt中5个元素
%a,b,c,d,e,f分别代表参数λ、kd、Z、ki、a、b
dydt(2)=a*y(4)*y(3)*y(2)-b*y(2);
dydt(1)=y(1)*(a*y(4)*(1-y(3))-(y(1)/(y(3)*y(2)))^2)+c*y(3)*y(2);
dydt(3)=y(3)*(a*y(4)*(1-y(3))-d*(y(1)/(y(3)*y(2)))^2);
dydt(4)=(b-a*y(4)*y(3))*y(2)/0.4842;
dydt(5)=y(3)*y(2)*(e*a(1)*y(4)*y(3)-e*b+f)+y(5)*(a*y(4)*(1-y(3))-d*(y(1)/(y(3)*y(2)))^2);
目标函数程序:
%jiefangcheng.m
%解模型的常微分方程组
function mubiao=jiefangchengzu(x)
a=x(1);
b=x(2);
c=x(3);
d=x(4);
e=x(5);
f=x(6);
=ode45(@fangchengzu,,,[],a,b,c,d,e,f);
%调用ode45函数求解微分方程
z=;
%z为t=时刻,Xf、Xd、V、S、P对应的实验值
mubiao=sum(sum((z-y).^2));
%目标函数,使其求得最小值
之后使用matlab7.0中的gatool优化参数就出问题了。

求高手帮忙看看,之后应该怎么做

我有matlab7.0安装盘,《遗传算法工具箱及应用》等遗传算法的书籍。
这里上传只能200K,有需要的我可以发到你们邮箱,大家一起学习交流
页: [1]
查看完整版本: 遗传算法求解模型