早教吧作业答案频道 -->其他-->
关于粒子群算法中调用m文件出错我最近参考别人的程序写了一个自己的程序但是代入不了fitness函数,)我要做的是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组
题目详情
关于粒子群算法中调用m文件出错
我最近参考别人的程序写了一个自己的程序但是代入不了fitness函数,) 我要做的是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最小,
function [out]=fitness(x)
ai=x(i,:) %第几组数据就是取第几个;
a1=ai(1)
a2=ai(2)
a3=ai(3)
a4=ai(4)
u=load('F:\测试记录控制.txt');u1=u(2:399,2);
y=load('F:\测试记录反馈.txt');y1=y(2:400,2);
c=0;
for k=3:399
f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2 %求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度
c=c+f
Msum(k)=c;
end%
out=Msum(:,k); %输出适应度
那么在粒子群算法中应如何调用这个函数呢?当位置和速度更新后,怎么计算这时的适应度呢?
fitness(i)=fitness(pop(i,:)这样调用为什么会出错呢?而且是在计算第一组数据的时候正确,用行第二组数据就出现
pop =
-0.0069 0.7995 0.6433 0.2898 0.6359
0.4542 -0.3814 0.6770 0.1361 -0.2592
v =
0.6602 0.3420 0.2897 0.3412 0.5341
0.7027 0.5466 0.4449 0.6946 0.6213
Subscript indices must either be real positive integers or logicals.
Error in ==> myPSO at 14
fitness(i)=fitness(pop(i,:))
就是这位热心人,如果你上来,请来这再做个回复,我把分给你,谢谢你的回复,真不好意思.
我最近参考别人的程序写了一个自己的程序但是代入不了fitness函数,) 我要做的是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最小,
function [out]=fitness(x)
ai=x(i,:) %第几组数据就是取第几个;
a1=ai(1)
a2=ai(2)
a3=ai(3)
a4=ai(4)
u=load('F:\测试记录控制.txt');u1=u(2:399,2);
y=load('F:\测试记录反馈.txt');y1=y(2:400,2);
c=0;
for k=3:399
f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2 %求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度
c=c+f
Msum(k)=c;
end%
out=Msum(:,k); %输出适应度
那么在粒子群算法中应如何调用这个函数呢?当位置和速度更新后,怎么计算这时的适应度呢?
fitness(i)=fitness(pop(i,:)这样调用为什么会出错呢?而且是在计算第一组数据的时候正确,用行第二组数据就出现
pop =
-0.0069 0.7995 0.6433 0.2898 0.6359
0.4542 -0.3814 0.6770 0.1361 -0.2592
v =
0.6602 0.3420 0.2897 0.3412 0.5341
0.7027 0.5466 0.4449 0.6946 0.6213
Subscript indices must either be real positive integers or logicals.
Error in ==> myPSO at 14
fitness(i)=fitness(pop(i,:))
就是这位热心人,如果你上来,请来这再做个回复,我把分给你,谢谢你的回复,真不好意思.
▼优质解答
答案和解析
做任务 请谅解
看了 关于粒子群算法中调用m文件出...的网友还看了以下:
偏微分方程∂^2*u/∂x^2+∂^2*u/∂y^2=2(x^2+y^2)的数值解法..定解条件u 2020-05-13 …
设Φ(u,v)具有连续偏导数,证明由方程Φ(cx-az,cy-bz)=0所确定的函数z=f(x,y 2020-05-17 …
一个关于多元函数求微分的问题f(lnx,y/x)=[x^2+x(lny-lnx)]/(y+xlnx 2020-06-05 …
已知x/(y+z+u)=y/(z+u+x)=z/(u+x+y)=u/(x+y+z),求(x+y)/ 2020-06-12 …
齐次函数对u求导一直没弄懂一个问题举个栗子=3=y'=y/x+tan(y/x)答案是令u=y/xx 2020-07-03 …
模拟三设函数u(x,y)=B(x+y)+B(x-y)+∫[x-y→x+y]C(t)dt,其中函数B 2020-07-21 …
若y=f(u),u=g(x)则称函数y=f[g(x)]是函数y=f(u)与函数u=g(x)的复合函 2020-08-02 …
一道函数难题.集合M={x∣1≤x≤9,x∈Z},F={(a,b,c,d)∣a,b,c,d∈M},定 2020-11-01 …
求教几个高数问题1.求下列函数的一阶偏导数(其中f具有一阶连续偏导数)①u=f(x^2-y^2,e^ 2020-11-01 …
d(lny)/d(1/x).d(y)/d(lnx).这l两个个怎么求导还有lny=b1+b2(1/x 2021-02-03 …