数学建模社区-数学中国
标题:
粒子群算法中适应度函数的调入
[打印本页]
作者:
s20090281
时间:
2011-9-20 08:51
标题:
粒子群算法中适应度函数的调入
我最近参考别人的程序写了一个自己的程序但是代入不了fitness函数,请大家指点一下:
$ D& f8 K* l5 y2 Z F4 W
我要做的是y(k)=a1*y(k-1)+b1*u(k-1)+a2*y(k-2)+a3*y(k-3)函数求a1,a2,a3,b1.已知y和u,我把适应度取为399组数据的【y(k)-a1*y(k-1)-b1*u(k-1)-a2*y(k-2)-a3*y(k-3)】^2最小,
5 x4 G: Q S9 O" b9 D9 }
function [out]=fitness(x)
9 ?. J4 a( Y5 P
ai=x(i,
%第几组数据就是取第几个
' g, ^8 L8 m( c" U
a1=ai(1)
! y& ^" i% U2 C9 @$ b4 |! g7 K
a2=ai(2)
: \ h& V3 Q0 o* M/ m/ ^% h# ]
a3=ai(3)
1 e: l! D6 r- l
a4=ai(4)
+ [6 O3 ^/ {8 F/ x+ U
u=load('F:\测试记录控制.txt');u1=u(2:399,2);
! B- j1 t5 w1 p8 i7 ?% H W. o( u5 S
y=load('F:\测试记录反馈.txt');y1=y(2:400,2);
7 w% [& X4 r2 [+ F
c=0;
, k: U& C% e! }: m
for k=3:399
1 S1 j5 N0 B7 _) ]- M! P6 Z
f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2 %求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度
' P4 Z: g. o |( b
c=c+f
+ U" ]2 B* m5 b" {7 H* E
Msum(k)=c
# \3 [6 i# Y1 b8 f& f
end
; l% m0 @7 i0 J* p
out=Msum(:,k); %输出适应度
+ x) w+ T9 x* Y! I9 ]" @
那么在粒子群算法中应如何调用这个函数呢?当位置和速度更新后,怎么计算这时的适应度呢?
9 d$ A7 Y) N9 e/ X5 |- ~7 ~; n# n
fitness(i)=fitness(pop(i,
)这样调用为什么会出错呢?请各位帮我这个新手解答一下,谢谢。
作者:
s20090281
时间:
2011-9-20 08:51
代表:)
作者:
s20090281
时间:
2011-9-20 16:16
问题有新的变化,就是只能进行第一个运算,当计算第二个输入时就会出现??? Subscript indices must either be real positive integers or logicals.
8 W% a! |7 |. b: K+ p$ ^3 n- x0 d3 m
: ]8 j( R# I; j6 A2 V- a
Error in ==> myPSO at 14
( o8 {0 }3 v3 I* A0 _! R
fitness(i)=fitness(pop(i,
)
4 k# ?5 n! b; E) [
请问这怎么改呢?
0 Y1 S) H; x6 ]" K- N: O
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5