离散正交的二次多项式matlab实现,月光软件站 - 编程文档 - 其他语言 - 用离散正交多项式求三次拟合多项式[MATLAB版本]...

本文介绍了一种使用离散正交多项式进行三次曲线拟合的方法,通过示例代码展示了如何利用自定义函数`polyapproximate()`计算权重系数并生成拟合曲线。重点涉及原始数据坐标、权重设置、拟合次数选择以及误差计算。
摘要由CSDN通过智能技术生成

%用离散正交多项式求三次拟合多项式

% x,y--表示原始数据的节点坐标

% w--表示权重系数

% N--表示要拟合的离散正交多项式的最高次数

% polyapproximate()--是自定义函数,可以求解多项式的系数

% 其返回值c为多项式系数,error为偏差平方和

x=[0 0.2 0.6 1.0 1.3 1.6 1.7 1.8 1.9 2.2 2.3 2.5 2.6 2.9 3.1 3.4 3.8 4.1 4.4 4.7 4.8 4.9 5.0 5.1 5.3];

nn=length(x);

for i=1:nn

w(i)=1;

end

y=[0 -2.5 -4.0 -5.7 -3.5 -2.0 -1.0 2.0 3.5 4.0 7.0 7.5 9.9 10.9 11.9 13.5 13.0 11.9 9.0 6.5 4.0 1.5 0.0 -2.5 -5.0];

N=3;%此处可取3 or 4.

[c,error]=polyapproximate(x,y,w,N)

t=0:0.1:5.3;

u=polyval(c,t);

plot(t,u,x,y,'+')

%自定义函数polyapproximate(),用来做离散正交多项式拟合

% 此函数的作用是做不同次数的离散正交多项式的拟合

% X,Y 为原始数据的坐标值矩阵

% w 为权重系数

% N 为离散正交多项式的最高次数

function [C,E]=polyapproximate(X,Y,w,N)

M=length(X);

for i=1:N+1

for j=1:i

if j~=i

P(i,j)=0;

else

P(i,j)=1;

end

end

end

S=0;

d(1)=0;

for i=1:M

d(1)=d(1)+w(i);

S=S+w(i)*X(i);

end

AF(1)=S/d(1);

P(2,1)=-AF(1);

for i=1:M

PX(i,1)=1;

PX(i,2)=X(i)-AF(1);

end

BA(1)=0;

for k=2:N+1

S=0;

dd=0;

for i=1:M

S=S+w(i)*X(i)*PX(i,k)*PX(i,k);

dd=dd+w(i)*PX(i,k)*PX(i,k);

end

d(k)=dd;

AF(k)=S/d(k);

BA(k-1)=d(k)/d(k-1);

P(k+1,1)=-AF(k-1)*P(k,1)-BA(k-1)*P(k-1,1);

for i=1:k-1

j=k-i+1;

if j>=k

t=0;

else

t=P(k-1,j);

end

P(k+1,j)=P(k,j-1)-AF(k-1)*P(k,j)-BA(k-1)*t;

end

for i=1:M

PX(i,k+1)=PX(i,k)*(X(i)-AF(k-1))-BA(k-1)*PX(i,k-1);

end

end

d(N+1)=0;

for i=1:M

d(N+1)=d(N+1)+w(i)*PX(i,N+1)*PX(i,N+1);

end

for i=1:N+1

FM=0;

for k=1:M

FM=FM+w(k)*Y(k)*PX(k,i);

end

gp(i)=FM/d(i);

end

for i=1:N+1

C(i)=0;

for j=i:N+1

C(i)=C(i)+gp(j)*P(j,i);

end

end

C=flipud(C');

%C=C'

U=0;

for i=1:M

U=U+w(i)*Y(i)*Y(i);

end

V=0;

for k=1:N+1

V=V+gp(k)*gp(k)*d(k);

end

E=U-V;

down_info.asp?id=48505

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值