高分求matlab程序 进行多项式拟合

高分求matlab程序 进行多项式拟合,第1张

给你两个例子做参考:

例一:

clc;clear;

f=@(beta,x)(beta(1)+beta(2)x(:,1)+beta(3)x(:,2)+beta(4)x(:,1)x(:,1)-beta(4)+

beta(5)x(:,2)x(:,2)-beta(5)+beta(6)x(:,1)x(:,2));

x=[000144 045

000144 0475

000144 0525

000144 055

000152 045

000152 0475

000152 0525

000152 055

000168 045

000168 0475

000168 0525

000168 055

000176 045

000176 0475

000176 0525

000176 055];

y = [4569110212

4424592344

4194713721

4058647715

4386413153

4202196312

4052672275

4119385838

4983122281

4592215843

4071631097

4028065749

4573223359

4481973606

4323365342

4249947777];

beta0=[400001 10818 -25844 06803 06928 -04830];

beta=nlinfit(x,y,f,beta0);

例2:

function p=naorthfit(x,y,m)

%用途:多项式拟合

%格式:x,y为数据向量,m为拟合正交多项式次数,p返回多项式

%系数降幂排列

psi=fliplr(eye(m+1,m+1));%转动m+1阶单位矩阵,赋值给psi

p=zeros(1,m+1);%p是1×(m+1)阶的零矩阵

psi(2,m+1)=-sum(x)/length(x);%将psi(矩阵)中的第2行、第(m+1)列的元素变为x的和除x的长度的负值。

for k=2:m %循环,k从2开始,每次步长为1,当k=m时,完成最后一次循环

%以psi的第k行作为多项式系数,计算多项式在x处的值,并赋给t

t=polyval(psi(k,:),x);

以psi的第k-1行作为多项式系数,计算多项式在x处的值,并赋给t

t1=polyval(psi(k-1,:),x);

%a等于 x与t中元素对应相乘,然后乘t的转置,再除以t乘t的转置

a=(xt)t'/(tt');

%b等于 t乘t的转置除以t1乘t1的转置

b=(tt')/(t1t1');

%psi的第k+1行元素为

%以1和-a为系数的多项式乘以以psi的第k行、第2到(m+1)列作为系数的多项式。

%减去b乘psi的第k-1行

psi(k+1,:)=conv([1 -a],psi(k,2:m+1))-bpsi(k-1,:);

end %结束for循环标志

for k=1:m %for循环,k从1开始,步长为1,当k=m时,完成最后一次循环

t=polyval(psi(k+1,:),x); %以psi的第k+1行作为多项式系数,计算多项式在x处的值,并赋给t

p(k+1)=yt'/(tt'); %y乘t的转置,除以t乘t的转置

end %结束for循环标志

p=ppsi; %p乘psi,然后赋给p,传递到主程序。

function [Q,R]=gschmidt(V)

%基向量正交化的gschmidt程序,V=QR,Q为标准正交基

[m,n]=size(V);

R=zeros(n);Q=zeros(m,n);%初始化

R(1,1)=norm(V(:,1));

Q(:,1)=V(:,1)/R(1,1);

for k=2:n

R(1:k-1,k)=Q(:,1:k-1)'V(:,k);

Q(:,k)=V(:,k)-Q(:,1:k-1)R(1:k-1,k);

R(k,k)=norm(Q(:,k));

Q(:,k)=Q(:,k)/R(k,k);

end

以上就是关于高分求matlab程序 进行多项式拟合全部的内容,包括:高分求matlab程序 进行多项式拟合、matlab求向量组的基、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10081394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存