高分求matlab程序 进行多项式拟合多项式为5项数 即形式为 y=ax^5+bx^4+cx^3+dx^2+ex+f.要得出这种形式的方程.x=[1978:2002];y=[272.81,286.43,311.89,324.76,337.07,351.81,390.85,466.75,490.86,545.46,648.3,696.54,781.66,893.77,11

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 18:43:32

高分求matlab程序 进行多项式拟合多项式为5项数 即形式为 y=ax^5+bx^4+cx^3+dx^2+ex+f.要得出这种形式的方程.x=[1978:2002];y=[272.81,286.43,311.89,324.76,337.07,351.81,390.85,466.75,490.86,545.46,648.3,696.54,781.66,893.77,11
高分求matlab程序 进行多项式拟合
多项式为5项数 即形式为 y=ax^5+bx^4+cx^3+dx^2+ex+f.要得出这种形式的方程.
x=[1978:2002];
y=[272.81,286.43,311.89,324.76,337.07,351.81,390.85,466.75,490.86,545.46,648.3,696.54,781.66,893.77,1114.32,1519.23,1990.66,2499.43,2957.55,3438.79,3801.09,4188.73,4771.17,5210.12,5741.03]
还要得出拟合的多项式!我要式子!

高分求matlab程序 进行多项式拟合多项式为5项数 即形式为 y=ax^5+bx^4+cx^3+dx^2+ex+f.要得出这种形式的方程.x=[1978:2002];y=[272.81,286.43,311.89,324.76,337.07,351.81,390.85,466.75,490.86,545.46,648.3,696.54,781.66,893.77,11
x=1978:2002;
y=[272.81,286.43,311.89,324.76,337.07,351.81,390.85,466.75,490.86,545.46,648.3,696.54,781.66,893.77,1114.32,1519.23,1990.66,2499.43,2957.55,3438.79,3801.09,4188.73,4771.17,5210.12,5741.03];
p = polyfit(x,y,5);
f = polyval(p,x);
plot(x,y,'o',x,f,'-');
p
以上是程序,结果为:
p =
1.0e+014 *( -0.0000 0.0000 -0.0000 0.0000 -0.0027 1.0632)
依次即为abcdef.
不过这些数据不适合用5次拟合,2或3次就够了.5次拟合的数据,可能因为条件数差而不准确.

国赛B题啊,我们也正在做

给你两个例子做参考:
例一:
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=[0.00144 0....

全部展开

给你两个例子做参考:
例一:
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=[0.00144 0.45
0.00144 0.475
0.00144 0.525
0.00144 0.55
0.00152 0.45
0.00152 0.475
0.00152 0.525
0.00152 0.55
0.00168 0.45
0.00168 0.475
0.00168 0.525
0.00168 0.55
0.00176 0.45
0.00176 0.475
0.00176 0.525
0.00176 0.55];
y = [45.69110212
44.24592344
41.94713721
40.58647715
43.86413153
42.02196312
40.52672275
41.19385838
49.83122281
45.92215843
40.71631097
40.28065749
45.73223359
44.81973606
43.23365342
42.49947777];
beta0=[40.0001 1.0818 -2.5844 0.6803 0.6928 -0.4830];
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=(x.*t)*t'/(t*t');
%b等于 t乘t的转置除以t1乘t1的转置
b=(t*t')/(t1*t1');
%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))-b*psi(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)=y*t'/(t*t'); %y乘t的转置,除以t乘t的转置
end %结束for循环标志
p=p*psi; %p乘psi,然后赋给p,传递到主程序。

收起

编写MATLAB程序实现多项式拟合 高分求matlab程序 进行多项式拟合多项式为5项数 即形式为 y=ax^5+bx^4+cx^3+dx^2+ex+f.要得出这种形式的方程.x=[1978:2002];y=[272.81,286.43,311.89,324.76,337.07,351.81,390.85,466.75,490.86,545.46,648.3,696.54,781.66,893.77,11 用matlab编写程序:生成一组[1,3]之间的均匀随机数,采用最小二乘法进行5次多项式拟合 多项式拟合C++程序 求解matlab进行高斯分峰拟合的程序?或者原理? 我想问matlab椭圆拟合的程序是什么?能不能直接对标准形式进行拟合?怎么求出拟合误差? MATLAB怎样搞多项式拟合 matlab二元拟合程序是什么 用Matlab写拟合曲线的程序t=0:0.5:5;s1=[0.5 -0.18 -0.01 0.13 0.1 0.31 -0.22 -0.31 0.2 0.4 ];求关于t的二次多项式的拟合函数的程序怎写啊, matlab中polyfit的 二次多项式拟合 是最小二乘拟合吗?求解释 【高分求解】matlab多项式拟合求拟合函数曲线的代码假设已知的数据点来自函数f(x)=(x^2-3x+5)e^(-5x)sin x ,试根据生成的数据用5 次多项式拟合的方法拟合函数曲线,并画出图形.(100财富值,另外50 matlab中有没有抛物线拟合我想对一组数据进行抛物线拟合,自己在matlab里也没查到,那里只有多项式拟合, 用Matlab程序对logistic人口模型进行拟合?matlab最小二乘曲线拟合对Logistic函数进行估计 用matlab工具进行最小二乘法圆拟合的程序怎么编? 用matlab做曲线拟合,对关于x和y的两组数据进行y=a*log(x)+d 拟合 求程序 matlab多项式二次拟合如何检验误差 matlab 里面有多项式拟合,有没有三角函数拟合? MATLAB拟合类似反比例函数的程序.