资源简介
很好用的啊 这 是和数值分析紧密联系的啊
代码片段和文件信息
function a=zjdxsnh(xym)%函数名意思:正交多项拟合.
%离散试验数据点的正交多项式最小二乘拟合
%其中所有的数据的权值均为1。
%xy是离散数据点。m为要得到的多项式最高次幂的次数;
%a为输出的多项式的系数,从左到右次数依次升高。
if(length(x) == length(y))
n = length(x);
else
disp(‘x和y的维数不相等!‘);
return;
end %维数检查
syms v;
d = zeros(1m+1);
q = zeros(1m+1);
alpha = zeros(1m+1);
for k=0:m
px(k+1)=power(vk);
end %x的幂多项式,px为所得的正交基函数。
B2 = [1];
d(1) = n;
for l=1:n
q(1) = q(1) + y(l);
alpha(1) = alpha(1) + x(l);
end
q(1) = q(1)/d(1);
alpha(1) = alpha(1)/d(1);
a(1) = q(1);
B1 = [-alpha(1) 1];
for l=1:n
d(2) = d(2) + (x(l)-alpha(1))^2;
q(2) = q(2) + y(l)*(x(l)-alpha(1));
alpha(2) = alpha(2) + x(l)*(x(l)-alpha(1))^2;
end
q(2) = q(2)/d(2);
alpha(2) = alpha(2)/d(2);
a(1) = a(1)+q(2)*(-alpha(1));
a(2) = q(2);
beta = d(2)/d(1);
for i=3:(m+1)
B = zeros(1i);
B(i) = B1(i-1);
B(i-1) = -alpha(i-1)*B1(i-1)+B1(i-2);
for j=2:i-2
B(j) = -alpha(i-1)*B1(j)+B1(j-1)-beta*B2(j);
end
B(1) = -alpha(i-1)*B1(1)-beta*B2(1);
BF = B*transpose(px(1:i));
for l=1:n
Qx = subs(BF‘v‘x(l));
d(i) = d(i) + (Qx)^2;
q(i) = q(i) + y(l)*Qx;
alpha(i) = alpha(i) + x(l)*(Qx)^2;
end
alpha(i) = alpha(i)/d(i);
q(i) = q(i)/d(i);
beta = d(i)/d(i-1);
for k=1:i-1
a(k) = a(k)+q(i)*B(k);
end
a(i) = q(i)*B(i);
B2 = B1;
B1 = B;
px
q
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1590 2010-11-01 19:58 zjdxsnh.m
文件 445 2010-11-01 18:39 shuju.mat
文件 18944 2010-11-01 19:54 092086234周明.doc
- 上一篇:安大编译原理试卷
- 下一篇:基于GIS的数据挖掘
评论
共有 条评论