Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-05-23, 17:36   #1
duanyaodong
初级会员
 
注册日期: 2009-05-20
年龄: 39
帖子: 4
声望力: 0
duanyaodong 正向着好的方向发展
默认 ga函数调用

我在求三次B样条曲线外一已知点坐标的点到样条曲线的最短距离时调用了ga函数,程序如下:
i=1;
for m=up_m:1:down_m
k=1;
for d=0:0.01:0.3
j=1;
cun_mindis(i,j)=0;
for n=up_n:1:down_n %在一行上的每一点计算它到B样条曲线的最小值
x=Hx(m,n);
z=Hz(m,n);
[a fval]=ga(@dis,1);
cun_mindis(i,j)=fval;
j=j+1;
end
min_dis(i,k)=min(cun_mindis(i,);
k=k+1;
end
Rafa(i)=sum(mis_dis(i,)/(down_n-up_n);%计算此时的粗糙度
i=i+1;
end
function y=dis(x,z,u)
y=((x-0.36109998859720*u^3+3.25*u^2+8.875*u+21.00003998767780)^2+(z-1.71245000056680*u^3-1.4971*u^2-1.361*u+1.89996746693460)^2)^(1/2);
出现以下错误提示:
??? Error using ==> gads\private\makeState
GA cannot continue because user supplied fitness function failed with the following error:
Input argument "u" is undefined.

Error in ==> gads\private\gaunc at 65
state = makeState(GenomeLength,FitnessFcn,options);

Error in ==> ga at 260
[x,fval,exitFlag,output,population,scores] = gaunc(FUN,GenomeLength,options);

Error in ==> draw_simulate at 61
[a fval]=ga(@dis,1);
x和z值不知道能不能读进去,这两个值是已知的,郁闷啊,那位高手指点一二,不胜感激!
duanyaodong 当前离线   回复时引用此帖
旧 2009-05-23, 17:39   #2
duanyaodong
初级会员
 
注册日期: 2009-05-20
年龄: 39
帖子: 4
声望力: 0
duanyaodong 正向着好的方向发展
默认 回复: ga函数调用

其中那个笑脸应该是:
duanyaodong 当前离线   回复时引用此帖
旧 2009-05-24, 17:43   #3
duanyaodong
初级会员
 
注册日期: 2009-05-20
年龄: 39
帖子: 4
声望力: 0
duanyaodong 正向着好的方向发展
默认 回复: ga函数调用

我怎样才能向ga的适应度函数里边传值,[a fval]=ga(@dis,1);
dis函数里边有四个参数,只有一个是变量,其他的三个参数如何送进去?
duanyaodong 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 06:32


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.