|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
clear all
tic %启动计时器
num=15; %用于检验网络的实测数据天数
load shuju
[r,q]=size(f0F2); %f0F2共有r行,q列
f0F2=f0F2.*0.1;
[r,q]=size(f0F2); %f0F2共有r行,q列
%函数展开所用的正交基
L=51; %正交基的个数
Func=ones(1,L); %Func为Fourier正交基函数
Func=sym(Func);
Func(1)=sym('1/sqrt(2*pi)');
syms t
for i=2:2:L-1
Func(i)=sym(cos(i/2*t)/'sqrt(pi)');
Func(i+1)=sym(sin(i/2*t)/'sqrt(pi)');
end
Func;
%求预测值
for ii=1:r
%对数据进行拟和,求出拟和多项式
mm=7; %每连续6个数据拟和一个多项式,第7个数据作为理想输出
nn=q-mm; %每一时刻数据,可以求出nn+1个多项式
%根据预测要求,节省计算时间,只对每一时刻前q-1个数据拟和,即只需求出nn个多项式
days=1:mm;
xishu1=zeros(mm,nn); %拟和系数
func1=ones(1,nn);
func1=sym(func1); %拟和得到的多项式
for j=1:nn
a_fit=polyfit(days,f0F2(ii,j:j+mm-1),mm-1);
b_fit=poly2sym(a_fit,'t');
func1(j)=b_fit;
xishu1(:,j)=a_fit';
end
xishu1;
func1;
%调用函数xishu,求输入函数的展开系数
xishu_x=zeros(L,nn); %输入函数的正交基展开系数
for i=1:nn
func=func1(i); %func为被展开的函数
for j=1:L
func2=Func(j);
int_func=func.*func2; %被积函数
xi_shu=int(int_func,t,0,2*pi);
xishu2(j,i)=xi_shu; %xihsu2为函数展开系数
end
xishu2=double(vpa(xishu2));
size(xishu2)
xishu_x(:,i)=xishu2(:,i);
end
xishu_x;
end %ii=1:r
Time=toc %关闭计时器,并给出程序运行时间
出错信息
??? Error using ==> reshape
To RESHAPE the number of elements must not change.
Error in ==> sym.maple at 94
result = reshape(result,size(varargin{3}));
Error in ==> sym.int at 51
r = reshape(maple('map','int',f(:),[x.s '=(' a.s ')..(' b.s ')']),size(f));
Error in ==> l1 at 69
xi_shu=int(int_func,t,0,2*pi); |
|