用多项式模型进行数据拟合实验报告(附代码)

合集下载

多项式数据拟合

多项式数据拟合
后通过赋值,绘出多项式的曲线,完成数据拟合。结果完成了点的读取和绘制,还有参数矩阵求解。
英文摘要
,
.
, , , , , , , . , , , , , , , , , , , . , .
第一、问题描述
项目背景:是求解多项式的一种方法。在实际应用中,由一组样本点集,求得自变量和因变量之间的近似函数关系。对于解决复杂的数学问题有很大的应用价值。
云南大学软件学院
专业实训()实训作业报告
,Yunnan
个人成绩
序号
学号
姓名
成绩
陈苗
袁秀梅
侯丽影
张又
李加才
学期:学年春季学期
课程名称:专业实训()
任课教师:李劲
项目名称:多项式数据拟合
小组长:陈苗
联系电话:
电子邮件:
成员分工明细表:计、中英文摘要、问题描述;代码中取空格符函数、多项式类的设计
2.在坐标系中画出读入的数据:就是建立坐标系,将每个点以小圆圈的形式画出。
3.计算参数部分思想:要先设置系数个数,然后生成含有未知系数的多项式,把已知点带入多项式中求得,与做差的平方迭代求和,差和对各未知系数求偏导得到多个式子,让式子等于,继而得到系数矩阵和常数矩阵,通过矩阵运算求得参数矩阵,最后得到多项式,然后通过算出的多项式,给出不同的,得到不同的值,绘制出多项式曲线。
乘法部分:
( ){
;
(()());
(<())
(<())
[][]*[];
();
;
}
3,字符串返回输出。
(){
;
()
""[];
""[];
(<){

数据拟合实验举例及程序

数据拟合实验举例及程序

实验二:曲线拟合目的与要求:了解最小二乘法的基本原理,用最小二乘法求拟合数据的多项式,做出离散函数),(i i y x 和拟合函数的图形,掌握利用最小二乘法进行数据拟合的基本思想,熟悉寻找最佳方法拟合曲线的方法,通过计算机解决实验问题例题1已知观测数据x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2对实验一中的例题2进行曲线拟合 x=0:0.1:1;y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.3 11.2]; plot(x,y,'k.','markersize',25) axis([0 1.3 -2 16]) p=polyfit(x,y,3); p1=polyfit(x,y,6); t=0:0.01:1.2; s=polyval(p,t); s1=polyval(p1,t); hold onplot(t,s,'k-','linewidth',2) plot(t,s,'k--','linewidth',2) grid;例题2已知观测数据x 1 3 4 5 6 7 8 9 10y10 5 4 2 1 1 2 3 4(1)画出数据分布趋势图>> xi=[1 3 4 5 6 7 8 9 10];>> yi=[10 5 4 2 1 1 2 3 4];>> plot(xi,yi,'o')(2)建立数学模型y=a2 x^2+ a1 x + a0建立超定方程组系数矩阵>> A=[ones(size(xi));xi;xi.^2]'A =1 1 11 3 91 4 161 5 251 6 361 7 491 8 641 9 811 10 100(3)求超定方程组的最小二乘解>> a=A\yi'a =13.4597-3.60530.2676(4)求拟合曲线方程>> b=[0.2376 -3.6053 13.4597]b =0.2376 -3.6053 13.4597 >> y=poly2str(b,'x')y =0.2376 x^2 - 3.6053 x + 13.4597 >> f2=polyval(flipud(a),xi);>> plot(xi,yi,'bo',xi,f2,'r-')(5)用方程y=ax^b拟合>> x=[ones(size(xi));log(xi)]; >> aa=x'\log(yi)'aa =2.1257-0.6913>> yy=exp(2.1257)*xi.^(-0.6913); >> yy=exp(2.1257)*xi.^(-0.6913); >> plot(xi,yi,'bo',xi,yy,'r--',xi,f2,'b-')例题3已知观测数据x0.1 0.4 0.5 0.7 0.7 0.9y0.61 0.92 0.99 1.52 1.47 2.03用polyfit命令作拟合直线并计算偏差。

多项式回归数学建模实验报告

多项式回归数学建模实验报告

多项式回归数学建模实验报告一、引言多项式回归是一种常用的数学建模方法,它可以通过拟合多项式函数来描述不同变量之间的关系。

多项式回归在实际问题中广泛应用,例如经济学、生物学、工程学等领域。

本实验旨在通过对一组实验数据进行多项式回归分析,探索多项式回归在模型建立和预测中的应用。

二、数据收集与预处理在实验中,我们收集了一个关于汽车油耗与发动机排量之间关系的数据集。

数据集中包含了不同车型的汽车的油耗和发动机排量的数据。

为了进行多项式回归分析,我们首先对数据进行了预处理,包括数据清洗、去除异常值和缺失值处理等。

三、多项式回归模型建立在多项式回归分析中,我们可以选择不同次数的多项式函数来拟合数据。

在本实验中,我们选择了3次多项式函数来建立模型。

通过最小二乘法将多项式函数拟合到数据上,得到了模型的系数。

四、模型评估与优化为了评估多项式回归模型的拟合效果,我们计算了模型的均方误差(MSE)和决定系数(R-squared)。

通过观察这些指标的数值,我们可以评估模型的拟合效果,并根据需要进行模型优化。

五、模型预测与应用在模型建立和优化之后,我们可以使用多项式回归模型来进行预测和应用。

通过输入不同的发动机排量,我们可以预测相应的汽车油耗。

这对于汽车制造商和消费者来说都具有重要的实际意义,可以帮助他们做出更好的决策。

六、实验结果与讨论通过对实验数据的多项式回归分析,我们得到了一个拟合效果较好的模型。

模型的MSE较小,R-squared较大,说明模型对数据的拟合效果较好。

通过模型预测,我们可以得到不同发动机排量下的汽车油耗预测值,可以帮助汽车制造商和消费者做出更准确的预测和决策。

七、结论与展望本实验通过对多项式回归模型的建立和应用,探索了多项式回归在数学建模中的实际应用。

实验结果表明多项式回归模型在描述汽车油耗和发动机排量之间关系方面具有较好的效果。

未来的研究可以继续优化模型,探索更高次数的多项式函数或其他回归方法,以提高模型的精确度和预测能力。

最小二乘法多项式拟合实验报告.docx

最小二乘法多项式拟合实验报告.docx

连续系统仿真实验报告实验数据拟合建模姓名:专业:学号:时间:2013年5月1日实验单元二实验数据拟合建模一、实验目的1、 用C 语言实现最小二乘的多项式拟合和LU 分解法;2、 熟练掌握最小二乘拟合和LU 分解法的基本原理。

3、 体会用计算机编程解决计算问题的方法。

二、需求说明(一) 、需求阐述本次实验是要求根据己知的自变量和函数值,通过多项式拟合來分别计 算2、3、4阶拟合多项式,并根据拟合结果分別计算出待求点的函数值。

其中解 拟合系数方程组时采用LU 分解的方法计算拟合多项式的系数。

(二) 、实验公式m 次拟合函数公式为:(p (x )=ao 七1対~・・・可点"计算系数4的方程组为:Sg a 0 +S] a 】 +...4-s ni a ni =t 0 < S]a ()+s?a]+...+s mF ]a m =t]k Sm a 0 +S mH a i +• •丹加^冃 其中 》= 士疋E ,i-0所以,在编程计算时,先计算出方程组①,再用LU 分解法计算求出耳的 值,即可得到拟合多项式。

LU 分解法的公式为:其中L 矩阵和U 矩阵的计算公式如下: 第一步,当k 二1,有:「1 0 0・・・01〔21 1 0-0^31 彳32 1 ••::::0 厶L ……1-i=0n-l最后求 u nn : U nn =a nn -^l m u m r=l三、设计说明(一) 、数据结构程序采用一维数组的形式来读取文件中给出的己知点处的值和要计算的未 知点处的H 变量值,最终的拟合计算结果也是采用一维数组的形式输出到文件中。

拟合多项式的系数a 和拟合系数方程组的参数t 都是采用一维数组來存储的,而 拟合系数方程组中的参数s 和L 、U 矩阵都是用二维数组來表示的。

由于要分别 计算2、3、4阶拟合结果,所以数组的规模取为5,矩阵的规模取为5*5.(二) 、算法设计及效率分析在进行LU 分解函数中,在计算L 矩阵和U 矩阵时,因为当k=2,3.-,n-l 时, 计算丈M 和土皿的循环条件不允许k=l 时进入,而正好k=l 时,计算1“和i 町不 x-1 r-1k-1 k ・l需要工1丿匕和工1以崎,因而对k=l 和k=2,3,-,n-l,就可以和在一起计算,这样就减少了 r=lr=l程序的长度。

python 多项式最小二乘法拟合

python 多项式最小二乘法拟合

python 多项式最小二乘法拟合多项式最小二乘法是一种常用的拟合方法,可以用来拟合一组数据点,使得拟合曲线与数据点之间的误差最小。

本文将介绍如何使用Python实现多项式最小二乘法拟合。

我们需要导入一些必要的库,包括numpy和matplotlib。

numpy提供了一些数学函数和数据结构,而matplotlib则用于绘制图表。

import numpy as npimport matplotlib.pyplot as plt接下来,我们需要准备一组数据点。

假设我们有一组x和y的值,它们分别表示自变量和因变量的取值。

为了方便起见,我们可以使用numpy的linspace函数生成一组等间隔的自变量值,然后根据某个函数生成相应的因变量值。

x = np.linspace(0, 10, 100)y = 3 * x ** 2 + 2 * x + 1现在我们可以使用多项式最小二乘法来拟合这组数据点了。

首先,我们需要选择一个多项式的阶数,也就是确定多项式的次数。

在这个例子中,我们选择二次多项式,即最高次数为2的多项式。

n = 2然后,我们可以使用numpy的polyfit函数来进行拟合。

该函数的第一个参数是自变量值,第二个参数是因变量值,第三个参数是多项式的阶数。

该函数会返回一个包含多项式系数的数组。

coefficients = np.polyfit(x, y, n)接下来,我们可以使用numpy的polyval函数来计算拟合曲线上的点。

该函数的第一个参数是自变量值,第二个参数是多项式系数。

fit_y = np.polyval(coefficients, x)我们可以使用matplotlib来绘制原始数据点和拟合曲线。

plt.scatter(x, y, label='Data points')plt.plot(x, fit_y, color='r', label='Fitted curve')plt.legend()plt.xlabel('x')plt.ylabel('y')plt.title('Polynomial Least Squares Fitting')plt.show()运行以上代码,我们可以得到如下图所示的拟合结果。

数据拟合实验报告

数据拟合实验报告

数据拟合实验报告
实验序号;课件制作(3) 日期:
1 问题背景描述
在科学研究与工程技术中,常常需要从一组测量数据出发,寻找变量x与y的函数关系的近似表达式.在数据容量不是很多的时候,可以采用直接计算的方法,求得数据的拟合结果.但是在数据容量很大的时候,如果采用直接计算,那么计算量会很大,因此有必要借助计算机进行数据拟合.由于多项式有很多比较好的性质,因此在大多数情况下,我们经常利用多项式进行数据拟合.
2 实验目的
2.1掌握利用Mathematica7进行数据拟合的基本操作.
2.2 通过该实验感受Mathematica的强大功能.
3 实验所用软件及版本
Mathematica7以上版本
4 主要内容
用Mathematica7软件对一组数据进行线性拟合,二次拟合,并作出了相应的拟合曲线图.
5 实验过程记录
6 思考与深入
通过上述数据拟合的实验,我们可以很轻易的得到一组数据的拟合多项式.由于这里我们只是考虑了多项式的优越性质,进而采用多项式进行数据拟合,而没有考虑用其他的函数形式进行拟合.
此课件有几个有点:1、代码开放可随时修改;2、运行方便,做
数学课件易如反掌;3、可通过存为CDF格式放在网上,成为网络课
件.
当然,它也有使用上的难处,就是要对Mathematica要比较全面深入地了解,若能把程序设计的思想融入其中,则一定能设计出功能强大的数学课件,这需要一定的学习时间.
它能否编译成可执行代码文件(EXE)脱离Mathematica环境运行?目前还不知道.。

数学建模实验报告8拟合

数学建模实验报告8拟合

数学建模试验报告(八)姓名学号班级.问题:.(拟合)用给定的多项式,y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi 和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。

如果作2或4次多项式拟合,结果如何?问题的分析和假设:这道多项式拟合题可从两个方面入手。

已给定多项式y=x3-6x2+5x-3 x为了便于观察计算可取1-10依次求解。

yi利用rand产生(0,1)均匀分布的随机干扰与yi取和求出结果进行比较建模:分别建立。

M文件与主程序。

先求出多项式产生的数据,再求出添加rand(0,1)干扰后的数据。

用所得出新数据分别进行3、2、4次拟合。

求解的Matlab程序代码:(1).m文件function f=fun(x)f=x^3-6*x^2+5*x-3主程序:for n=1:10fun (n);end(2).m文件for n=1:10y=fun(n)+rand;endx=1:10;y=[-2.942 -8.6471 -14.1868 -14.9901 -2.8611 27.2028 81.197 165.6038 285.2722 447.1988] A=polyfit(x,y,3)z=polyval(A,x);plot(x,y,’k+’,x,z,’r’)(3)for n=1:10y=fun(n)+rand;endx=1:10;y=[-2.942 -8.6471 -14.1868 -14.9901 -2.8611 27.2028 81.197 165.6038 285.2722 447.1988] A=polyfit(x,y,2)z=polyval(A,x);plot(x,y,’k+’,x,z,’r’)(4)for n=1:10y=fun(n)+rand;endx=1:10;y=[-2.942 -8.6471 -14.1868 -14.9901 -2.8611 27.2028 81.197 165.6038 285.2722 447.1988] A=polyfit(x,y,4)z=polyval(A,x);plot(x,y,’k+’,x,z,’r’)计算结果与问题分析讨论:f=-3 f=-9 f=-15 f=-15 f=-3 f=27 f=81 f=165 f=285 f=447值为xi 1 2 3 4 5 6 7 8 9 10yi -3 -9 -15 -15 -3 27 81 165 285 447添加随机干扰后的值y1 =-2.942 y 2=-8.6471 y 3=-14.1868 y 4=-14.9901 y 5=-2.8611 y 6=27.2028y 7=81.197 y8 =165.6038 y 9=285.2722 y10 =447.1988拟合结果A=1.0015 -6.0272 5.1422 -2.9055与原系数比较差异不大2次拟合多项式系数A=10.4977 -71.0725 83.02384次拟合多项式系数A=-0.0039 1.0863 -6.6475 6.8373 -4.2277。

matlab多项式的拟合

matlab多项式的拟合

matlab多项式的拟合多项式拟合是一种常见的数学方法,用于将一组数据点通过最小二乘法拟合成一个多项式函数。

在MATLAB中,可以使用polyfit函数进行多项式拟合。

本文将介绍MATLAB中多项式拟合的基本原理和使用方法,并通过一个简单的例子演示其应用。

多项式拟合的目标是找到一个多项式函数,使其在给定的数据点上拟合效果最好。

这里的拟合效果可以使用拟合误差来度量,一般使用最小二乘法来求解最优拟合多项式的系数。

对于给定的数据集,假设有n+1个数据点,可以通过多项式函数表示为:f(x) = c0 + c1 * x + c2 * x^2 + ... + cn * x^n其中,c0,c1,...,cn是多项式的系数,n是多项式的次数。

多项式的次数决定了拟合函数的复杂度,过高的次数可能导致过拟合,而过低的次数可能导致欠拟合。

在实际应用中,需要根据问题的具体需求选取适当的次数。

在MATLAB中,可以使用polyfit函数进行多项式拟合。

其基本用法如下:```matlabp = polyfit(x, y, n)```其中,x为输入数据的自变量,y为对应的因变量,n为最优拟合多项式的次数。

函数的输出p是一个包含了多项式系数的向量。

通过polyval函数可以使用得到的系数来计算拟合函数在给定点的值:```matlabyfit = polyval(p, xfit)```下面通过一个示例来演示多项式拟合的过程。

假设有如下一组数据:x = [0, 1, 2, 3, 4, 5]y = [5.1, 4.9, 7.4, 12.2, 15.8, 19.9]我们希望找到一个拟合这些数据的二次多项式函数。

可以通过以下代码实现:```matlabx = [0, 1, 2, 3, 4, 5];y = [5.1, 4.9, 7.4, 12.2, 15.8, 19.9];p = polyfit(x, y, 2);yfit = polyval(p, x);plot(x, y, 'o', x, yfit)```运行上述代码,可以得到如下的拟合效果:![多项式拟合示例图](多项式拟合示例图.jpg)从图中可以看出,二次多项式成功地拟合了原始数据。

实验5 多项式、数据插值及数据拟合

实验5 多项式、数据插值及数据拟合

实验5 多项式、数据插值及数据拟合一、实验目的1、掌握多项式的创建和四则运算;2、利用Matlab 求解有关多项式的实际问题;3、掌握数据插值的计算。

二、实验内容1、利用不同方法求多项式06017423=--+x x x 的根。

(1)利用多项式的伴随矩阵company 的特征值方法; p=[1,4,-17,-60]; >> A=compan(p); >> x1=eig(A) x1 =4.0000 -5.0000 -3.0000(2)利用roots 函数命令; >> x2=roots(p) x2 =4.0000 -5.0000 -3.0000(3)利用solve 命令。

>>x3=solve('x^3+4*x^2-17*x-60=0','x') x3 = -3 4 -52、已知:353)(657253)(22345-+=++-+-=x x x g x x x x x x f(1)求)()(),()(x g x f x g x f -+。

>>A=[3,-5,2,-7,5,6]; >>B=[0,0,0,3,5,-3]; >> C=(A+B) C =3 -5 2 -4 10 3 >> A=[3,-5,2,-7,5,6]; >> B=[0,0,0,3,5,-3]; >> D=[A-B] D =3 -5 2 -10 0 9 (2)求)(/)(),()(x g x f x g x f ⨯。

>> conv(A,B)ans =0 0 0 9 0 -28 4 -26 64 15 -18 >> A=[3,-5,2,-7,5,6]; B=[3,5,-3];>> [Q,r]=deconv(A,B) Q =1.0000 -3.3333 7.2222 -17.7037 r =0 -0.0000 0 0 115.1852 -47.1111 (3)若)()()(x g x f x h =,求)(x h 的导数。

数学建模拟合实验报告

数学建模拟合实验报告

. . . .数学建模拟合报告一、实验名称1.了解拟合根本内容并用数学软件求解拟合问题。

2.用MATLAB解层次分析法中把旅游问题的权向量二、实验目的1.学会使用曲线拟合的最小二乘法,加深对曲线拟合最小二乘法的理解2.掌握函数ployfit和函数lsqcurvefit功能和使用方法,学会使用分别用这两个函数进展多项式拟合和非线性拟合。

3.掌握旅游决策问题中用层次分析法计算出权向量,最大特征根和一致性指标三、实验原理1.最小二乘法2.线性拟合命令ployfit3.非线性拟合命令lsqcurvefit、lsqnonlin,plot函数等四、实验内容.1.用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(x,y i,i=1,2,…,n),再在y i上添加i随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用x i和添加了随机干扰的y i作的3次多项式拟合,与原系数比拟。

如果作2或4次多项式拟合,结果如何?程序如下:rands(1,21)x0=0:0.1:2;y0=x0.^3-6*x0.^2+5*x0-3;yy0=y0+rands(1,21);a3=polyfit(x0,yy0,3);x=0:0.1:2;yy=x.^3-6*x.^2+5*x-3;yy3=polyval(a3,x);plot(x,yy3,x,yy,x0,y0,'ro');title('图1-1')legend('3次拟合图','原始函数图','分布点图'); figure(2)a2=polyfit(x0,yy0,2);yy2=polyval(a2,x);plot(x,yy2,x,yy,x,yy3);title('图1-2')legend('二次拟合图','原始函数图', '3次拟合图'); a4=polyfit(x0,yy0,4);yy4=polyval(a4,x);figure(3)plot(x,yy4,x,yy,x,yy3);title('图1-3')legend('4次拟合图','原始函数图','3次拟合图 ');运行程序图像结果为图1-1,1-2,1-3,计算结果为:ans =1 至 16 列-0.0997 -0.0825 0.3239 0.5406 -0.2996 0.3240 -0.1677 0.6839 0.6658 -0.4871 0.2269 0.1645 0.0815 0.7399 -0.4704 -0.363917 至 21 列-0.7616 0.8797 0.2911 -0.0411 0.2786将原代码中x=0:0.1:2;改为x=0:0.5:10;得到以下结果:ans =1 至 16 列-0.7274 0.3573 -0.0096 -0.6206 -0.0100 -0.7048 -0.8901 0.7014 0.1211 0.8592 0.3933 0.1656 0.6308 0.7580 0.9778 -0.999017 至 21 列0.7309 0.2251 0.9799 0.0554 -0.0410可以发现,当0<x<2时拟合所得的系数比0<x<10是更加符合原系数。

实验报告-使用多项式模型拟合数据

实验报告-使用多项式模型拟合数据

实验题目: 使用多项式模型进行数据拟合 1 实验目的数据拟合在实际的生产和生活中有着广泛应用。

本实验使用多项式模型对数据进行拟合,目的在于掌握数据拟合基本的基本原理,并且掌握最小二乘法的计算方法,同时学会使用数学的方法来判定数据拟合的情况。

2 实验步骤2.1 算法原理(1)最佳均方逼近多项式设n H 是次数不超过n 次的全体多项式集合。

若存在*()nn P x H ∈,使得**22()||()()||||()()||min n nn n P x H f x P x f x P x ∈-=-则称*()n P x 是()f x 在[a ,b]上的最佳均方逼近多项式。

设()nkn k k P x a x ==∑,则求最佳均方逼近多项式*()n P x ,就是求一组系数(0,1,...,)k a k n =使得22*00()[()][()]min n nnnbbkk k k aak k P x H f x a x dx f x a x dx==∈-=-∑∑⎰⎰由于积分2[()]nbkk ak f x a x dx=-∑⎰是待定系数k a 的多元函数,记做01(,,...,)n I a a a 。

由函数极值条件得到方程组,解方程组,可得到唯一确定的*k a ,从而得到*()n P x 为最小均方逼近多项式。

(2)最小二乘法在最小均方逼近多项式的讨论中,f(x)已知。

但在多数情况下,我们不能确切的指导f(x),只能知道一组数据{,}i i x y ,将最小均方误差的思想用于点集上,便得到曲线拟合的最小二乘法。

设给定一组m 个数量的数据{,}i i x y ,01{,,...}n ϕϕϕϕ=是i x 所在区间的连续函数集合,对于多项式:011,,...nn x x ϕϕϕ===。

取权值函数()1W x =,在公式中未写出。

若存在*()()nk k k S x a x ϕ==∑,使得误差平方和最小,即*22()1[()]min [()]mmiii i s x i i S x y S x y ϕ∈==-=-∑∑,则*()S x 是最小二乘逼近多项式。

实验四 数据分析与多项式计算(含实验报告)

实验四 数据分析与多项式计算(含实验报告)

实验四 数据分析与多项式计算一、实验目的1.掌握数据统计和分析的方法。

2.掌握数据插值与曲线拟合的方法及其应用。

3.掌握多项式的常用运算。

二、实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

设计提示1.参考本节主要内容,学习并理解相关函数的含义及调用方法。

三、实验内容1.请完成教材P134中实验指导环节的实验内容的第1题;2. 请完成教材P134中实验指导环节的实验内容的第2题(此题含两个小题,任选其一完成);3. 请完成教材135中实验指导环节的实验内容第4题;4. 请完成教材135中实验指导环节的实验内容的第5题。

5. 已知某压力传感器的测试数据如下表 p 0.0 1.1 2.1 2.8 4.2 5.06.1 6.9 8.1 9.09.9 u 10 11 13 14 17 1822 24 29 34 39p 为压力值,u 为电压值,试用多项式d cp bp ap p u +++=23)(来拟合其特性函数,求出a,b,c,d ,并把拟合曲线和各个测试数据点画在同一幅图上。

四、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称2.实验目的3.实验设备及条件4.实验内容及要求5.实验程序设计指程序代码。

预习报告要求 最终报告要求6.实验结果及结果分析实验结果要求必须客观,有数据的可以记录数据,没有数据的简单描述实验现象。

结果分析是对实验结果的理论评判。

7.实验中出现的问题及解决方法8. 思考题的回答一、实验报告的提交方式Word文档,命名方式:实验号_你的学号_姓名!!!例如本次实验:实验一_000000001_张三.doc(信息101提交报告邮箱):E_mail: matlab_xx01@(网络工程101提交作业邮箱):E_mail: Matlab_wg01@(注意网络班的M是大写的)下一次课前提交,过期不收!二、参考文献参考教材和Matlab帮助文件。

1.实验名称数据分析与多项式计算2.实验目的1.掌握数据统计和分析的方法。

用多项式模型进行数据拟合实验报告

用多项式模型进行数据拟合实验报告

用多项式模型进行数据拟合实验报告实验报告:多项式模型在数据拟合中的应用一、引言数据拟合技术是数据分析和建模领域中的一项重要技术,在科学与工程实践中有广泛的应用。

其中,多项式模型是一种常用的拟合方法之一、本次实验旨在通过使用多项式模型对给定的数据集进行拟合,探究多项式模型的优势和适用性,并对其进行评估和分析。

二、实验方法1.实验数据为了进行数据拟合实验,我们采用了一个包含n个数据点的数据集。

每个数据点由自变量x和因变量y组成。

2.多项式模型的拟合多项式模型是一个形如y = a0 + a1x + a2x^2 + ... + anx^n 的函数模型。

其中,ai (i = 0,1,2,...,n)为多项式的系数。

利用最小二乘法,我们可以通过求解一组线性方程来确定这些系数的最佳取值。

为了找到最佳的模型拟合,我们将尝试使用不同阶数的多项式进行拟合,即n=1,2,3,...,N。

通过比较不同阶数的多项式的拟合误差,我们可以选择最适合数据集的多项式模型。

3.拟合误差的评估为了评估拟合效果,我们使用均方根误差(Root Mean Square Error, RMSE)作为评价指标。

RMSE表示了实际数据与模型预测值之间的平均误差,计算公式如下:RMSE = sqrt(Σ(yi - ŷi)^2 / n)其中,yi为实际观测值,ŷi为模型预测值,n为数据点的个数。

三、实验结果与分析我们首先对数据集进行可视化,以便更好地理解数据分布和走势。

根据数据的观察,我们可以预期数据可能符合多项式模型。

接下来,我们使用不同阶数的多项式对数据进行拟合,并计算各个模型的RMSE值。

通过比较不同阶数下的拟合误差,我们可以选择最佳的多项式模型。

在拟合程度较低的情况下,我们可以尝试使用一阶多项式进行拟合。

一阶多项式是一个简单的线性函数,形如y=a0+a1x。

适用于大致的直线关系。

当我们计算一阶多项式的RMSE时,发现误差较大,这说明一阶多项式无法很好地拟合数据。

c语言多项式拟合

c语言多项式拟合

在C语言中进行多项式拟合通常需要使用最小二乘法来拟合数据点,并生成多项式方程的系数。

以下是一个简单的C语言示例,演示如何进行多项式拟合:#include <stdio.h>#include <math.h>// 定义多项式的最高次数#define DEGREE 2// 多项式拟合函数void polynomialFit(double x[], double y[], int n, double coefficients[]) {int i, j;double A[DEGREE + 1][DEGREE + 1] = {0};double B[DEGREE + 1] = {0};// 构建系数矩阵A和右侧向量Bfor (i = 0; i < n; i++) {double xi = x[i];double yi = y[i];for (j = 0; j <= DEGREE; j++) {for (int k = 0; k <= DEGREE; k++) {A[j][k] += pow(xi, j + k);}B[j] += pow(xi, j) * yi;}}// 使用高斯消元法求解线性方程组for (i = 0; i <= DEGREE; i++) {for (j = i + 1; j <= DEGREE; j++) {double factor = A[j][i] / A[i][i];for (int k = i; k <= DEGREE; k++) {A[j][k] -= factor * A[i][k];}B[j] -= factor * B[i];}}// 回代求解系数for (i = DEGREE; i >= 0; i--) {coefficients[i] = B[i];for (j = i + 1; j <= DEGREE; j++) {coefficients[i] -= A[i][j] * coefficients[j];}coefficients[i] /= A[i][i];}}int main() {double x[] = {1.0, 2.0, 3.0, 4.0, 5.0};double y[] = {2.0, 3.5, 6.0, 8.5, 12.0};int n = sizeof(x) / sizeof(x[0]);double coefficients[DEGREE + 1] = {0};// 进行多项式拟合polynomialFit(x, y, n, coefficients);// 输出拟合多项式的系数printf("拟合多项式的系数:\n");for (int i = 0; i <= DEGREE; i++) {printf("系数%d: %.2lf\n", i, coefficients[i]);}return 0;}在上面的示例中,我们定义了一个多项式的最高次数为2(即二次多项式),然后使用最小二乘法来进行拟合。

用多项式模型进行数据拟合实验报告(附代码)

用多项式模型进行数据拟合实验报告(附代码)

实验题目: 用多项式模型进行数据拟合实验 1 实验目的本实验使用多项式模型对数据进行拟合,目的在于:(1)掌握数据拟合的基本原理,学会使用数学的方法来判定数据拟合的情况; (2)掌握最小二乘法的基本原理及计算方法; (3)熟悉使用matlab 进行算法的实现。

2 实验步骤2.1 算法原理所谓拟合是指寻找一条平滑的曲线,最不失真地去表现测量数据。

反过来说,对测量 的实验数据,要对其进行公式化处理,用计算方法构造函数来近似表达数据的函数关系。

由于函数构造方法的不同,有许多的逼近方法,工程中常用最小平方逼近(最小二乘法理论)来实现曲线的拟合。

最小二乘拟合利用已知的数据得出一条直线或曲线,使之在坐标系上与已知数据之间的距离的平方和最小。

模型主要有:1.直线型2.多项式型3.分数函数型4.指数函数型5.对数线性型6.高斯函数型等,根据应用情况,选用不同的拟合模型。

其中多项式型拟合模型应用比较广泛。

给定一组测量数据()i i y x ,,其中m i ,,3,2,1,0 =,共m+1个数据点,取多项式P (x ),使得min )]([0202=-=∑∑==mi i im i i y xp r ,则称函数P (x )为拟合函数或最小二乘解,此时,令∑==nk kk n x a x p 0)(,使得min ])([02002=⎪⎪⎭⎫ ⎝⎛-=-=∑∑∑===mi n k i ki k mi i i n y x a y x p I ,其中n a a a a ,,,,210 为待求的未知数,n 为多项式的最高次幂,由此该问题化为求),,,(210n a a a a I I =的极值问题。

由多元函数求极值的必要条件:0)(200=-=∂∂∑∑==m i j i nk i k i k i x y x a a I,其中n j ,,2,1,0 = 得到:∑∑∑===+=n k mi i j i k mi kj iy x a x)(,其中n j ,,2,1,0 =,这是一个关于n a a a a ,,,,210 的线性方程组,用矩阵表示如下所示:⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+∑∑∑∑∑∑∑∑∑∑∑=====+==+====m i i n i m i i i m i i n mi n imi n imi n i mi n i mi im i imi n imi iy x y x y a a a x xx x xxx x m 000100201001020001因此,只要给出数据()i i y x ,,数据点个数m ,所要拟合的参数n ,就可求出未知数据阵),,,,(210n a a a a2.2 实验步骤(1)根据已知数据(ch3 huaxuefy.m ),绘制出数据的散点图,如图1所示: 注:x 从1开始取值,值与值间隔为1。

数值分析拟合实验报告(3篇)

数值分析拟合实验报告(3篇)

第1篇一、实验目的本次实验旨在通过数值分析方法对一组已知数据点进行拟合,掌握线性插值、多项式插值、样条插值等方法的基本原理和实现过程,并学会使用MATLAB进行数值拟合。

二、实验内容1. 线性插值线性插值是一种简单的插值方法,适用于数据点分布较为均匀的情况。

其基本原理是通过两个相邻的数据点,利用线性关系拟合出一条直线,然后通过该直线来估算未知的值。

2. 多项式插值多项式插值是一种较为精确的插值方法,通过构造一个多项式函数来逼近已知数据点。

其基本原理是利用最小二乘法求解多项式的系数,使得多项式在已知数据点上的误差最小。

3. 样条插值样条插值是一种更灵活的插值方法,通过构造一系列样条曲线来逼近已知数据点。

其基本原理是利用最小二乘法求解样条曲线的系数,使得样条曲线在已知数据点上的误差最小。

三、实验步骤1. 线性插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`linspace`生成插值点:xi = linspace(1, 5, 100);(3)使用MATLAB内置函数`interp1`进行线性插值:yi = interp1(x, y, xi, 'linear');(4)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');2. 多项式插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`polyfit`求解多项式系数:p = polyfit(x, y, 3);(3)使用MATLAB内置函数`polyval`进行多项式插值:yi = polyval(p, xi);(4)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');3. 样条插值(1)在MATLAB中输入已知数据点,如:x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];(2)使用MATLAB内置函数`spline`进行样条插值:yi = spline(x, y, xi);(3)绘制插值曲线:plot(xi, yi, 'b-', x, y, 'ro');四、实验结果与分析1. 线性插值线性插值方法简单易行,但精度较低,适用于数据点分布较为均匀的情况。

多项式函数拟合问题python代码

多项式函数拟合问题python代码

多项式函数拟合问题python代码多项式函数拟合问题是数据分析和机器学习中常见的一种问题,通过多项式函数来拟合一组给定的数据点。

Python作为一种流行的编程语言在数据分析和机器学习领域也有着重要的地位。

在本篇文章中,我将会介绍使用Python中的numpy和matplotlib库进行多项式函数拟合的方法。

首先,我们需要导入需要使用的库,包括numpy和matplotlib:```pythonimport numpy as npimport matplotlib.pyplot as plt```接下来,我们定义一组需要拟合的数据点。

这里我选择使用以下数据点:```pythonx = [-1.5, -0.75, 0, 0.75, 1.5]y = [1.4267, 0.5453, 0.2, 0.5453, 1.4267]```然后,我们需要定义要拟合的多项式函数的次数。

这里我选择拟合一个3次多项式函数。

```pythonn = 3```接下来,我们使用numpy库中的polyfit函数来拟合多项式函数。

这个函数接受两个数组参数x和y,以及待拟合的多项式次数n,返回多项式系数数组p。

```pythonp = np.polyfit(x, y, n)```下一步,我们可以使用numpy库中的poly1d函数来创建一个可以计算多项式函数值的函数。

这个函数接受多项式系数数组p作为参数。

```pythonf = np.poly1d(p)```我们可以使用matplotlib库中的plot函数来绘制原始数据点和拟合出来的多项式函数曲线。

代码如下:```pythonplt.scatter(x, y)plt.plot(x, f(x))plt.show()```最后,我们得到的结果就是一个3次多项式函数拟合出来的曲线,它经过了我们给定的数据点,并且尽可能地拟合了这些数据点。

完整的代码如下:```pythonimport numpy as npimport matplotlib.pyplot as plt# 定义数据点x = [-1.5, -0.75, 0, 0.75, 1.5]y = [1.4267, 0.5453, 0.2, 0.5453, 1.4267]# 定义多项式次数n = 3# 使用polyfit函数拟合多项式p = np.polyfit(x, y, n)# 使用poly1d函数创建多项式函数f = np.poly1d(p)# 绘制原始数据点和拟合曲线plt.scatter(x, y)plt.plot(x, f(x))plt.show()```使用Python中的numpy和matplotlib库进行多项式函数拟合可以极大地方便我们进行数据分析和机器学习。

m次多项式曲线拟合c++实验报告

m次多项式曲线拟合c++实验报告

m次多项式曲线拟合c++实验报告
实验目的:
本实验旨在使用C++编程语言实现m次多项式曲线拟合算法,并通过实验数据验证算法的准确性和精度。

实验步骤:
1. 设计数据结构:首先设计一个数据结构,用于存储输入的数据点和多项式的系数。

2. 输入数据点:从文件或用户输入中读取数据点的坐标,并存储在相应的数据结构中。

3. 多项式拟合算法:实现m次多项式拟合算法。

该算法包括计算多项式的系数,根据输入数据点进行拟合,并返回拟合曲线的系数。

4. 输出拟合结果:将拟合曲线的系数和原始数据点一起输出,以便进行对比和分析。

5. 绘制图表:使用绘图库(如Matplotlib、gnuplot等)在图表中显示原始数据点和拟合曲线。

6. 实验数据验证:通过对比原始数据点和拟合曲线,分析拟合的准确性和精度。

可以计算拟合误差、相关系数等指标来评估拟合效果。

7. 实验报告撰写:撰写实验报告,包括实验目的、算法原理、实现步骤、实验结果和分析、结论等内容。

实验结果与分析:
根据实验数据,我们实现了m次多项式曲线拟合算法,并对拟合结果进行了分析。

通过对比原始数据点和拟合曲线,我们发现拟合效果良好,拟合曲线与数据点之间的误差较小。

我们还计算了拟合误差、相关系数等指标,进一步验证了算法的准确性和精度。

结论:
本实验成功地实现了m次多项式曲线拟合算法,并通过实验数据验证了算法的准确性和精度。

多项式拟合在数据分析和曲线拟合领域具有广泛的应用前景,可以用于预测、趋势分析等方面。

以上是一个简单的实验报告模板,您可以根据实际情况和具体实验结果进行适当的修改和完善。

数值计算方法多项式拟合源代码

数值计算方法多项式拟合源代码

#include<stdio.h>void main(){float a0,a1,a2;float b0,b1,b2,b3,b4;float c0,c1,c2;int k;float D,D0,D1,D2;float x[9],x1,x2;float y[9],y1,y2;printf("本程序解决已知节点的多项式拟合问题\n设拟合多项式为P2(x)=a0+a1*x+a2*x*x\n");printf("请分别输入每组节点x[0]、y[0]的值\n");scanf("%f,%f",&x[0],&y[0]);printf("请分别输入每组节点x[1]、y[1]的值\n");scanf("%f,%f",&x[1],&y[1]);printf("请分别输入每组节点x[2]、y[2]的值\n");scanf("%f,%f",&x[2],&y[2]);printf("请分别输入每组节点x[3]、y[3]的值\n");scanf("%f,%f",&x[3],&y[3]);printf("请分别输入每组节点x[4]、y4]的值\n");scanf("%f,%f",&x[4],&y[4]);printf("请分别输入每组节点x[5]、y[5]的值\n");scanf("%f,%f",&x[5],&y[5]);printf("请分别输入每组节点x[6]、y[6]的值\n");scanf("%f,%f",&x[6],&y[6]);printf("请分别输入每组节点x[7]、y[7]的值\n");scanf("%f,%f",&x[7],&y[7]);printf("请分别输入每组节点x[8]、y[8]的值\n");scanf("%f,%f",&x[8],&y[8]);b0=9;b1=b2=b3=b4=0;c0=c1=c2=0;for(k=0;k<9;k++){b1=b1+x[k];b2=b2+x[k]*x[k];b3=b3+x[k]*x[k]*x[k];b4=b4+x[k]*x[k]*x[k]*x[k];c0=c0+y[k];c1=c1+y[k]*x[k];c2=c2+y[k]*x[k]*x[k];}D=b0*b2*b4+2*b1*b2*b3-b2*b2*b2-b0*b3*b3-b4*b1*b1;D0=c0*b2*b4+c1*b2*b3+c2*b1*b3-c2*b2*b2-c0*b3*b3-b4*b1*c1; D1=b0*c1*b4+b1*b2*c2+b1*b3*c2-c1*b2*b2-b0*b3*c2-b4*b1*c0; D2=b0*b2*c2+c0*b1*b3+c1*b1*b2-c0*b2*b2-c1*b0*b3-c2*b1*c1; a0=D0/D;a1=D1/D;a2=D2/D;printf("%f,%f,%f",a0,a1,a2);printf("请输入已知节点的x值进行检验,x=");scanf("%f",&x1);y1=a0+a1*x1+a2*x1*x1;printf("y=%f",y1);printf("请输入x值以求解y,x=");scanf("%f",&x2);y2=a0+a1*x2+a2*x2*x2;printf("y=%f",y2);}。

用多项式进行实验数据的拟合

用多项式进行实验数据的拟合

将结果写入 输出文件中
4、程序总体设计
①子过程subroutine Gauss(input,output) 从 input 文件中读入系数矩阵, 用高斯消去法求解线性方程组, 将求解结果写入到 output 文件中。
②子过程subroutine polynomial(input,output)
从 input 文件中读入要进行拟合的原始数据的组数 m 以及原始实验数据 ( xi , yi ) ,并据 此计算出 Tk , S j ,k ,将计算结果写入到一个临时文件”linshi.dat ”中。 调用子过程Gauss(polyin,output) ,这里polyin= ”linshi.dat ”。求解关于 ai 的线性 方程组。 ③主程序 指定原始数据来源 input,和结果输出 output 从 output 中读出拟合结果,并根据拟合结果计算 xi 对应的 yi ,求出 yi 与 yi 之间的平 均偏差。
! 用多项式对数据进行拟合 ! 数据输入文件input的数据格式为m,n,x,其中x 为行优先 ! 数据输出文件output的数据格式为系数个数,及多项式系数a(i), 按次数从小到大 subroutine polynomial(input,output) character*(20) input,output,polyin !x 为原始数据,a 为系数 real x(1:100,1:2) !n 为拟合次数,m 为数据个数 integer n,m,k,j,i ! 目标方程组为a(j)*s(j,k)=t(k)
2 / 10
计算物理作业
实验数据多项式拟合(Fortra n)
陈洋洋 2008112021
2、高斯消元法求解线性方程组
对于如下的一个线性方程组
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目: 用多项式模型进行数据拟合实验 1 实验目的本实验使用多项式模型对数据进行拟合,目的在于:(1)掌握数据拟合的基本原理,学会使用数学的方法来判定数据拟合的情况; (2)掌握最小二乘法的基本原理及计算方法; (3)熟悉使用matlab 进行算法的实现。

2 实验步骤2.1 算法原理所谓拟合是指寻找一条平滑的曲线,最不失真地去表现测量数据。

反过来说,对测量 的实验数据,要对其进行公式化处理,用计算方法构造函数来近似表达数据的函数关系。

由于函数构造方法的不同,有许多的逼近方法,工程中常用最小平方逼近(最小二乘法理论)来实现曲线的拟合。

最小二乘拟合利用已知的数据得出一条直线或曲线,使之在坐标系上与已知数据之间的距离的平方和最小。

模型主要有:1.直线型2.多项式型3.分数函数型4.指数函数型5.对数线性型6.高斯函数型等,根据应用情况,选用不同的拟合模型。

其中多项式型拟合模型应用比较广泛。

给定一组测量数据()i i y x ,,其中m i ,,3,2,1,0Λ=,共m+1个数据点,取多项式P (x ),使得min )]([0202=-=∑∑==mi i im i i y xp r ,则称函数P (x )为拟合函数或最小二乘解,此时,令∑==nk kk n x a x p 0)(,使得min ])([02002=⎪⎪⎭⎫ ⎝⎛-=-=∑∑∑===mi n k i ki k mi i i n y x a y x p I ,其中n a a a a ,,,,210Λ为待求的未知数,n 为多项式的最高次幂,由此该问题化为求),,,(210n a a a a I I Λ=的极值问题。

由多元函数求极值的必要条件:0)(200=-=∂∂∑∑==m i j i nk i k i k i x y x a a I,其中n j ,,2,1,0Λ= 得到:∑∑∑===+=n k mi i j i k mi kj iy x a x)(,其中n j ,,2,1,0Λ=,这是一个关于n a a a a ,,,,210Λ的线性方程组,用矩阵表示如下所示:⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+∑∑∑∑∑∑∑∑∑∑∑=====+==+====m i i n i m i i i m i i n mi n i mi n imi n i mi n i mi im i imi n imi iy x y x y a a a x xx x xxx x m 000100201001020001M MΛM MM ΛΛ 因此,只要给出数据()i i y x ,,数据点个数m ,所要拟合的参数n ,就可求出未知数据阵),,,,(210n a a a a Λ2.2 实验步骤(1)根据已知数据(ch3 huaxuefy.m ),绘制出数据的散点图,如图1所示: 注:x 从1开始取值,值与值间隔为1。

y 取文件ch3 huaxuefy.m 中的数据。

图1 已知数据散点图(2)计算矩阵⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+=∑∑∑∑∑∑∑∑==+==+====mi n i mi n imi n i mi n i mi im i imi n i mi i x xx x xxx x m A 0201010201ΛM MM ΛΛ,该矩阵为(n+1)*(n+1)矩阵。

(3)计算矩阵⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡=∑∑∑===m i i n i m i i i m i i y x y x y B 000M 。

(4)写出正规方程,求出n a a a a ,,,,210Λ。

(5)绘制出数据拟合后的曲线图。

分别取n=6,n=8,n=10,n=11,n=12,n=13,n=14,曲线图如下所示:图2 n=6时拟合曲线图3 n=8时拟合曲线图4 n=10时拟合曲线图5 n=11时拟合曲线图6 n=12时拟合曲线图7 n=13时拟合曲线3 实验结果分析通过运用最小二乘法对多项式模型进行数据拟合处理,获得n 次多项式及其系数n a a a a ,,,,210 。

分别取多项式次数n=6,n=8,n=10,n=11,n=12,n=13,n=14绘制拟合曲线,观察曲线图可知,对于最高次数不同的多项式,拟合结果是不一样的,即对于数据的逼近程度是不相同的。

随着n 的增大,曲线拟合效果变好;当n=10时,达到最好拟合效果;n 继续增大,曲线拟合效果又变差。

因此,对于相同的数据,并不是多项式的次数n 越高,拟合程度就越好。

4 实验结论通过实际做实验,得出了如下结论:离散数据点,可以采用多项式模型进行拟合,通过最小二乘法可以求得其最优多项式。

此外,还得出一个结论:对于数据拟合,并不是多项式次数越高,拟合就越逼近。

对此现象,在数值分析的参考书中找到了原因,这是龙格现象,即对于一个等间距节点的高次插值多项式,不收敛于插值函数。

参考文献[1] 陈光,任志良,孙海柱. 最小二乘曲线拟合及Matlab实现[J]. 软件技术, 2005.24(3).[2] 陈桂秀.用程序求解最小二乘拟合多项式的系数[J]. 青海师范大学学报, 2010(3).[3] 邵慧莹.数据拟合算法分析及C语言实现[J]. 信息科学, 2009.[4] 马正飞,殷翔.数学计算方法与软件的工程应用[M].北京:化学工业出版社,2002.[5] 徐士良.数值分析与算法[M]北京:机械工业出版社,2007.[6] 何仁斌. MATLAB6工程计算及应用[M]. 重庆: 重庆大学出版社, 2001.附录(源代码)Matlab%绘制散点图x=1:1:230;y=[26.6,27,27.1,27.1,27.1,27.1,26.9,26.8,26.7,26.426.0,25.8,25.6,25.2,25.0,24.6,24.2,24.0,23.7,23.423.1,22.9,22.8,22.7,22.6,22.4,22.2,22.0,21.8,21.4,20.9,20.3,19.7,19.4 ,19.3,19.2,19.1,19.0,18.9,18.9,19.2,19.3,19.3,19.4,19.5,19.6,19.6,19. 6,19.6,19.6,19.7,19.9,20.0,20.1,20.2,20.3,20.6,21.6,21.9,21.7,21.3,21.2,21.4,21.7,22.2,23.0,23.8,24.6,25.1,25.6,25.8,26.1,26.3,26.3,26.2,26.0,25.8,25.6,25.4,25.2,24.9,24.7,24.5,24.4,24.4,24.4,24.4,24.4,24.3,24.4,24.4,24.4,24.4,24.4,24.5,24.5,24.4,24.3,24.2,24.2,24.0,23.9,23.7,23.6,23.5,23.5,23.5,23.5,23.5,23.7,23.8,23.8,23.9,23.9,23.8,23.7,23.6,23.4,23.2,23.0,22.8,22.6,22.4,22.0,21.6,21.3,21.2,21.2,21.1,21.0,20.9,21.0,21.0,21.1,21.2,21.1,20.9,20.8,20.8,20.8,20.8,20.9,20.8,20.8,20.7,20.7,20.8,20.9,21.2,21.4,21.7,21.8,21.9,22.2 ,22.5,22.8,23.1,23.4,23.4,23.8,24.1,24.6,24.9,24.9,25.1,25.0,25.0,25.0,25.0,24.9,24.8,24.7,24.6,24.5,24.5,24.5,24.5,24.5,24.5,24.5,24.4,24.4,24.2,24.2,24.1,24.1,24.0,24.0,24.0,23.9,23.8,23.7,23.7,23.6 ,23.7,23.6,23.6,23.6,23.5,23.5,23.4,23.3,23.3,23.3,23.4,23.4,23.3,23.2,23.3,23.3,23.2,23.1,22.9,22.8,22.6,22.4,22.2,21.8,21.3,20.8,20.2,19.7,19.3,19.1,19.0,18.8,0,0,0,0];plot(x,y,'*')xlabel 'x轴'ylabel 'y轴'title '散点图'hold on%计算矩阵Am=229;n=10;A=zeros(n+1); for j=1:n+1 for i=1:n+1 for k=1:m+1A(j,i)=A(j,i)+x(k)^(j+i-2) end end end ;%计算矩阵BB=[0 0 0 0 0 0 0 0 0 0 0 ]; for j=1:n+1 for i=1:m+1B(j)=B(j)+y(i)*x(i)^(j-1) end end%写出正规方程,求出n a a a a ,,,,210 B=B'; a=inv(A)*B;%绘制出拟合曲线图x=[1.0:0.0001:230.0];z=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4+a(6)*x.^5+a(7)*x.^6+a(8)*x.^7+a(9)*x.^8+a(10)*x.^9+a(11)*x.^10; plot(x,z)legend('离散点','y=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3+a(5)*x.^4+a(6)*x.^5+a(7)*x.^6+a(8)*x.^7+a(9)*x.^8+a(10)*x.^9+a(11)*x.^10') title('拟合图')。

相关文档
最新文档