数值分析上机作业

更新时间:2023-10-11 05:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数值分析上机实验报告

选题:曲线拟合的最小二乘法 指导老师: 专业: 学号: 姓名:

昆明理工大学数值分析上机实验报告

课题八曲线拟合的最小二乘法

一、问题提出

从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量y与时间t的拟合曲线。

t(分) y(×10-4) 0 5 10 15 20 25 30 35 40 45 50 55 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64 二、要求

1、用最小二乘法进行曲线拟合;

2、近似解析表达式为??t??a1t?a2t2?a3t3;

3、打印出拟合函数??t?,并打印出??tj?与y?tj?的误差,j?1,2,?,12; 4、另外选取一个近似表达式,尝试拟合效果的比较; 5、*绘制出曲线拟合图*。

三、目的和意义

1、掌握曲线拟合的最小二乘法;

2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系。

四、计算公式

对于给定的测量数据(xi,fi)(i=1,2,…,n),设函数分布为

y(x)??aj?j(x)

j?0m特别的,取?j(x)为多项式

?j(x)?xj (j=0, 1,…,m)

1

昆明理工大学数值分析上机实验报告

则根据最小二乘法原理,可以构造泛函

H(a0,a1,?,am)??(fi??aj?j(xi))

i?1j?0nm令

?H?0 (k=0, 1,…,m) ?ak则可以得到法方程

?(?0,?0)(?1,?0)?(?m,?0)??a0??(f,?0)??(?,?)(?,?)?(?,?)??a??(f,?)?11m1??1?1??01??

?????????????????(?,?)(?,?)?(?,?)a(f,?)1mmm??m?m??0m?求该解方程组,则可以得到解a0,a1,?,am,因此可得到数据的最小二乘解

f(x)??aj?j(x)

j?0m

曲线拟合:实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。

五、结构程序设计

在程序结构方面主要是按照顺序结构进行设计,在进行曲线的拟合时,为了进行比较,在程序设计中,直接调用了最小二乘法的拟合函数polyfit,并且依次调用了plot、figure、hold on函数进行图象的绘制,最后调用了一个绝对值函数abs用于计算拟合函数与原有数据的误差,进行拟合效果的比较。

2

昆明理工大学数值分析上机实验报告

23???t?at?at?at1235.1用一元三次多项式进行拟合

计算解析表达式系数:a1, a2, a3

t=[0 5 10 15 20 25 30 35 40 45 50 55];

y=[0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64]; >> n=length(xi);

f=0.34364.*10.^(-4)*x.^3-5.2156.*10.^(-3)*x.^2+0.26340.*x+0.017839;

x=0:0.01:55;

F=0.34364.*10.^(-4)*x.^3-5.2156.*10.^(-3)*x.^2+0.26340.*x+0.017839;

fy=abs(f-y);

fy2=fy.^2;Ew=max(fy),E1=sum(fy)/n,E2=sqrt((sum(fy2))/n)

plot(xi,y,'t*'), hold on, plot(t,F,'b-'), hold off

?43?32?(t)?0.34364?10t?5.2156?10t?0.2634t?0.013839 所得函数为

运行后屏幕显示数据

(xi,yi)与拟合函数f的最大误差Ew,平均误差E1和

(xi,yi)和拟合曲线y=f(x)的图形如图5.1.

均方根误差E2及其数据点

Ew =0.4243

E1 =0.0911

E2 =0.1467

3

昆明理工大学数值分析上机实验报告

图5.1一元三次多项式拟合曲线误差图

5.2用一元四次多项式??t??a1t?a2t2?a3t3?a4t4进行拟合:

计算多项式系数:a1, a2, a3, a4

xi=[0 5 10 15 20 25 30 35 40 45 50 55];

y=[0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64];

n=length(xi);

x=0:0.01:55;

f=0.6026.*10.^(-6)*x.^4-0.31918.*10.^(-4)*x.^3-0.0029323.*x.^2+0.23807.*x+0.060449;

x=0:0.01:55;

4

本文来源:https://www.bwwdw.com/article/kjkf.html

Top