曲线拟合的数值计算方法实验

合集下载

曲线拟合问题的数值试验

曲线拟合问题的数值试验

曲线拟合问题的数值试验一、算法要求已知数据:x=5,y=1.OO29;x=1O,y=1.OO23;x=15,y=1.OOOO;x=2O,y=O.999O; x=25,y=O.9983; x=3O,y=O.9979; x=35,y=O.9978;x=4O,y=O.9981 x=45,y=O.9987 x=5O,y=O.9996;拟合多项式:P(X)=aO+a1x+a2x^2+•…+an x A n分别对n=2,3,4,5,6 进行数值计算,且根据各自偏差平方和分析拟合效果。

二、源代码及注释#include <stdio.h>#include <conio.h>#include <math.h>#include <process.h>#define N 1O//N 个点#define T 2 //T 次拟合#define W 1//权函数#define PRECISION O.OOOO1float pow_n(float a,int n){int i;if(n==O) return(1);float res=a;for(i=1;i<n;i++){ res*=a;// 自己相乘} return(res);// 返回 a 的平方}void mutiple(float a[][N],float b[][T+1],float c[][T+1]) {float res=O;int i,j,k;for(i=O;i<T+1;i++)for(j=O;j<T+1;j++){res=O;for(k=O;k<N;k++){res+=a[i][k]*b[k][j]; c[i][j]=res;// 返回ab 的内积} } } void matrix_trans(float a[][T+1],float b[][N]) { int i,j;for(i=0;i<N;i++){ for(j=0;j<T+1;j++){ b[j][i]=a[i][j];// 交换}}}void init(float x_y[][2],int n){int i;printf("请输入%d个已知点:\n",N);for(i=0;i<n;i++) { printf("(x%d y%d):",i,i);scanf("%f %f",&x_y[i][0],&x_y[i][1]);}}void get_A(float matrix_A[][T+1],float x_y[][2],int n) { int i,j; for(i=0;i<N;i++){ for(j=0;j<T+1;j++){matrix_A[i][j]=W*pow_n(x_y[i][0],j);// 获取输入矩阵}}}void print_array(float array[][T+1],int n){int i,j;for(i=0;i<n;i++) {for(j=0;j<T+1;j++){printf("%-g",array[i][j]);}printf("\n");}}void convert(float argu[][T+2],int n){int i,j,k,p,t;float rate,temp;for(i=1;i<n;i++){for(j=i;j<n;j++){ if(argu[i-1][i-1]==0){ for(p=i;p<n;p++){if(argu[p][i-1]!=0)break;}if(p==n){printf(" 方程组无解!\n");} for(t=0;t<n+1;t++){ temp=argu[i-1][t];argu[i-1][t]=argu[p][t]; argu[p][t]=temp;}} rate=argu[j][i-1]/argu[i-1][i-1]; for(k=i-1;k<n+1;k++){ argu[j][k]-=argu[i-1][k]*rate; if(fabs(argu[j][k])==PRECISION) argu[j][k]=0;}}}}void compute(float argu[][T+2],int n,float root[]) {float temp;for(i=n-1;i>=0;i--){ temp=argu[i][n];for(j=n-1;j>i;j--){temp-=argu[i][j]*root[j];}root[i]=temp/argu[i][i];}}void get_y(float trans_A[][N],float x_y[][2],float y[],int n){int i,j;float temp;for(i=0;i<n;i++){temp=0;for(j=0;j<N;j++){temp+=trans_A[i][j]*x_y[j][1];}y[i]=temp;}}void cons_formula(float coef_A[][T+1],float y[],float coef_form[][T+2]) {int i,j;for(i=0;i<T+1;i++){for(j=0;j<T+2;j++){if(j==T+1) coef_form[i][j]=y[i];elsecoef_form[i][j]=coef_A[i][j];}}}void print_root(float a[],int n){int i,j;printf("%d个点的%d次拟合的多项式系数为:\n",N,T);for(i=0;i<n;i++){printf("a[%d]=%g,",i+1,a[i]);}printf("\n");printf(" 拟合曲线方程为:\ny(x)=%g",a[0]);for(i=1;i<n;i++){printf(" + %g",a[i]);for(j=0;j<i;j++){printf("*X");}}printf("\n");}void process(){floatx_y[N][2],matrix_A[N][T+1],trans_A[T+1][N],coef_A[T+1][T+1],coef_formu[T+1][T+2 ], y[T+1],a[T+1];init(x_y,N);get_A(matrix_A,x_y,N);printf(" 矩阵 A 为:\n");print_array(matrix_A,N);matrix_trans(matrix_A,trans_A);mutiple(trans_A,matrix_A,coef_A);printf(" 法矩阵为:\n");print_array(coef_A,T+1);get_y(trans_A,x_y,y,T+1);cons_formula(coef_A,y,coef_formu);convert(coef_formu,T+1);compute(coef_formu,T+1,a);print_root(a,T+1);}void main(){ process();}三、调试:本程序在调试时,因为代码中的T声明是通过宏定义#define T 2,所以欲达到能对n=2,3,4,5,6切换的目的,还需程序员在代码中修改T的值四、计算结果如图:1.004d1.0021.001口099S0.93®0.957五、说明:本题用C++语言编程,用matlab作图,以此来使报告更加形象,直观。

曲线拟合的方法及过程

曲线拟合的方法及过程

一、课程设计题目: 对于函数 xex x f --=)(从00=x 开始,取步长1.0=h 的20个数据点,求五次最小二乘拟合多项式5522105)()()()(x x a x x a x x a a x P -++-+-+= 其中 ∑===1995.020i ix x 二、原理分析 (1)最小二乘法的提法当数据量大且由实验提供时,不宜要求近似曲线)(x y φ=严格地经过所有数据点),(i i y x ,亦即不应要求拟合函数)(x ϕ在i x 处的偏差(又称残差)i i i y x -=)(φδ(i=1,2,…,m)都严格的等于零,但是,为了使近似曲线能尽量反应所给数据点的变化趋势,要求偏差i δ适当的小还是必要的,达到这一目标的途径很多,例如,可以通过使最大偏差i δmax 最小来实现,也可以通过使偏差绝对值之和∑ii δ最小来实现……,考虑到计算方便等因素,通常用使得偏差平方和∑ii 2δ最小(成为最小二乘原则)来实现。

按最小二乘原则选择近似函数的方法称为最小二乘法。

用最小二乘法求近似函数的问题可以归结为:对于给定数据),(i i y x(i=1,2,…,m),要求在某个函数类Φ中寻求一个函数)(x *ϕ,使[][]21)(21*)()(min ∑∑=Φ∈=-=-mi iix mi iiy x y x ϕϕϕ(1-1) 其中)(x ϕ为函数类Φ中任意函数。

(1)确定函数类Φ,即确定)(x ϕ的形式。

这不是一个单纯的数学问题,还与其他领域的一些专业知识有关。

在数学上,通常的做法是将数据点),(i i y x 描绘在坐标纸上,然后根据这些点的分布情况来选择的)(x ϕ形式。

(2)球最小二乘法的解,即求满足条件(1-1)的近似函数)(x *ϕ。

(3)最小二乘法的实验原理 设)(x ϕ具有如下形式)(x ϕ=F),,,,10x a a a n ⋅⋅⋅( (1-2) 其中n<m, k a (k=0,1,…,n)是待定参数,求具有这种形式的最小二乘解的实质,就是要适当选择k a =*k a (k=0,1,…,n),使相应的函数 ),,,,()(**1*0*x a a a x n ⋅⋅⋅=ϕ (1-3) 满足条件(1-1),也就是说,点),,,(**1*0n a a a ⋅⋅⋅是多元函数 []211010),,,,),,,∑=-⋅⋅⋅=⋅⋅⋅mi i i n n y x a a a F a a a s ((的极小点,从而使**1*0,,,n a a a ⋅⋅⋅满足方程组0S=∂∂ka ,(k=0,1,…,n) (1-4) 因此,可以通过解上述方程组(称为法方程组)来求取*k a (k=0,1,…,n),以便获得最小二乘解。

曲线拟合实验报告[优秀范文5篇]

曲线拟合实验报告[优秀范文5篇]

曲线拟合实验报告[优秀范文5篇]第一篇:曲线拟合实验报告数值分析课程设计报告学生姓名学生学号所在班级指导教师一、课程设计名称函数逼近与曲线拟合二、课程设计目的及要求实验目的: ⑴学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。

⑵学会基本的矩阵运算,注意点乘与叉乘的区别。

实验要求: ⑴编写程序用最小二乘法求拟合数据的多项式,并求平方误差,做出离散函数与拟合函数的图形;⑵用MATLAB 的内部函数polyfit 求解上面最小二乘法曲线拟合多项式的系数及平方误差,并用MATLAB的内部函数plot作出其图形,并与(1)结果进行比较。

三、课程设计中的算法描述用最小二乘法多项式曲线拟合,根据给定的数据点,并不要求这条曲线精确的经过这些点,而就是拟合曲线无限逼近离散点所形成的数据曲线。

思路分析 : 从整体上考虑近似函数)(x p 同所给数据点)(i iy x , 误差i i iy x p r -=)(的大小,常用的方法有三种:一就是误差i i iy x p r -=)(绝对值的最大值im ir≤≤ 0max ,即误差向量的无穷范数;二就是误差绝对值的与∑=miir0,即误差向量的 1成绩评定范数;三就是误差平方与∑=miir02的算术平方根,即类似于误差向量的 2 范数。

前两种方法简单、自然,但不便于微分运算,后一种方法相当于考虑 2 范数的平方,此次采用第三种误差分析方案。

算法的具体推导过程: 1、设拟合多项式为:2、给点到这条曲线的距离之与,即偏差平方与:3、为了求得到符合条件的 a 的值,对等式右边求偏导数,因而我们得到了:4、将等式左边进行一次简化,然后应该可以得到下面的等式5、把这些等式表示成矩阵的形式,就可以得到下面的矩阵:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∑∑∑∑∑∑∑∑∑∑∑=====+==+====niininiiknikinikinikinikiniiniinikiniiyyyaax x xx x xx x11i11012111111211 1an MMΛM O M MΛΛ 6.将这个范德蒙得矩阵化简后得到⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡n kkn nkkyyyaaax xx xx x M MΛM O M MΛΛ21102 21 1111 7、因为 Y A X = * ,那么 X Y A / = ,计算得到系数矩阵,同时就得到了拟合曲线。

数值计算方法 曲线拟合2 - 曲线拟合2

数值计算方法 曲线拟合2 - 曲线拟合2
v
曲 记 y ln g, a1 k, a2 ln(d / v)
线

则 y a1t a2

作线性最小二乘法拟合可得:
k 0.2347(1 / h), v 12(l)
D0 300, D 225.3, 3.9
参考答案
D0 300(mg), D 180(mg),
4(h)
课后实验课题


变换法方程结构
AT
ln a
Ab
AT
Z
例题分析
建立法方程
1
x1
1 x2
1
L L
1 x5
1M
x1 x2 M
lna
b
1 x1
1 x2
L L
1 x5
ln lMn
y1 y2
1 x5
ln y5

5 7.53 a 17.1059
线
化简法方程
7.53 11.5309b 26.0501
负面思考者
卖时间 找一份好工作 受人支配
做事情 重视学历 知识就是力量
20%的人身上集中了人类80%的智慧,他们一出生就鹤立鸡群。
【”二 ● 八“ 法 则】 意大利经济学家帕累托(1897)
20%
我要是怎么样怎么样做我就有钱 爱投资 有目标 问题中找答案 放眼长远 把握机会 计划未来 按成功的经验行事 重复做简单的事 明天的事今天做

求血药浓度随时间的变化规律 g(t) .
线 设计用药方案

问题:给药方式-快速静脉注射;

一室(中心室)模型;
血药浓度变化规律;
最小有效浓度和最大治疗浓度。
g(t) c0ekt
c0 , k为待定系数

Lab04.曲线拟合的最小二乘法实验

Lab04.曲线拟合的最小二乘法实验

Lab04.曲线拟合的最小二乘法实验【实验目的和要求】1.让学生体验曲线拟合的最小二乘法,加深对曲线拟合的最小二乘法的理解;2.掌握函数ployfit和函数lsqcurvefit功能和使用方法,分别用这两个函数进行多项式拟合和非多项式拟合。

【实验内容】1.在Matlab命令窗口,用help命令查询函数ployfit和函数lsqcurvefit功能和使用方法。

2.用多项式y=x3-6x2+5x-3,产生一组数据(x i,y i)(i=1,2,…,n),再在y i上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用randn产生N(0,1)均匀分布随机数),然后对x i和添加了随机干扰的y i用Matlab提供的函数ployfit用3次多项式拟合,将结果与原系数比较。

再作2或4次多项式拟合,分析所得结果。

3.用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为τt eVVVtv ---=)()(,其中V0是电容器的初始电压,τ是充电常数。

对于下面的一组t,v数据,用Matlab提供的函数lsqcurvefit确定V和τ。

【实验仪器与软件】1.CPU主频在1GHz以上,内存在128Mb以上的PC;2.Matlab 6.0及以上版本。

实验讲评:实验成绩:评阅教师:年月日Lab04.曲线拟合的最小二乘法实验1.在Matlab命令窗口,用help命令查询函数ployfit和函数lsqcurvefit功能和使用方法。

在MATLAB中,用polyfit函数来求得最小二乘拟合多项式的系数,polyfit函数的调用格式为:[P,S]=polyfit(X,Y,m)。

函数根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。

其中X,Y是两个等长的向量,P是一个长度为m+1的向量,P的元素为多项式系数,得到的多项式为降序。

同样可以用lsqcurvefit函数来求得最小二乘拟合多项式的系数,调用格式为:x = lsqcurvefit(fun,x0,xdata,ydata)。

数值计算方法实验报告5―温度分布的曲线拟合

数值计算方法实验报告5―温度分布的曲线拟合

数值计算方法实验报告5―温度分布的曲线拟合本报告是关于温度分布的曲线拟合的,望对大家有所帮助!!!数值计算方法实验报告标题:温度分布的曲线拟合1.实验描述:在科学技术工程和实验中,经常需要从大量的实验数据中寻找拟合曲线,最简单的是一维情形(一元函数),此时数据的形式为x和y坐标的有序对,如:(x1,y1),...,(xN,yN),这里的横坐标{x}是明确的。

数值计算方法的目的之一是求解一个将自变量与因变量联系起来的拟合函数。

求解拟合函数的方法有多种,常见的方法有:线性最小二乘拟合、多项式拟合(最小二乘抛物线拟合)、样条插值拟合(三次样条拟合)、三角多项式拟合、贝塞尔曲线拟合这五种方法。

本次实验分别利用上述五种方法对一组温度数据进行拟合,通过拟合的结果比较这五种方法的优缺点(主要考虑误差)。

2.实验内容:已知某地区一天的温度数据如下:时间,p.m***-**********午夜***-********-********-*****温度时间,a.m***-**********正午***-********-********-*****温度分别利用:线性最小二乘拟合、多项式拟合(最小二乘抛物线拟合)、样条插值拟合(三次样条拟合)、三角多项式拟合、贝塞尔曲线拟合这五种方法对这组温度数据进行拟合,通过拟合的结果比较这五种方法的优缺点。

3.实验原理及分析:本报告是关于温度分布的曲线拟合的,望对大家有所帮助!!!①线性最小二乘拟合法:设{(x,y)}有N个点,其中横坐标{x}是确定的。

最小二乘拟合曲线为:kkk=1kk=1y=Ax+B,其系数满足如下正规方程:(∑x)A+(∑xk)B=∑xkyk 2kNNNNNk=1k=1(∑xk)A+NB=∑yk k=1k=1N解得:A=N∑xk=1Nk=1Nkyk Nxy2k∑xkNxN2=∑(xNNkx)(yk y),B=y Axk∑(xk=1kx)2其中:x=∑xk=1N,y=∑yk=1N线性最小二乘法的本质是:多元函数(均方根误差函数)求极值问题。

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】曲线拟合的数值计算方法实验【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。

曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的分析两变量间的关系。

曲线直线化是曲线拟合的重要手段之一。

对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按原理求出变换后变量的,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为,实现对资料的曲线拟合。

常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。

关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束一、实验目的1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。

2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。

3.掌握实现曲线拟合的编程技巧。

二、实验原理1.曲线拟合曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。

用解析表达式逼近的一种方法。

在或社会活动中,通过实验或观测得到量x 与y 的一组数据对(X i ,Y i )(i=1,2,...m ),其中各X i 是彼此不同的 。

人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x ,c )来反映量x 与y 之间的依赖关系,即在一定意义下“最佳”地逼近或拟合已知数据。

f(x ,c)常称作拟合模型 ,式中c=(c 1,c 2,…c n )是一些待定参数。

当c 在f 中出现时,称为线性模型,否则称为。

有许多衡量拟合优度的标准,最常用的一种做法是选择参数c 使得拟合模型与实际在各点的(或),c)-f (f y e k k k 的平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线。

数学实验—曲线拟合

数学实验—曲线拟合

实验问题
据人口统计年鉴,知我国从1949 年至1994年人口数据资料如下: (人口数单位为:百万)
年份 人口数 年份 人口数
1949 541.67 1974 908.59
1954 1959 602.66 672.09
1979 1984 975.42 1034.75
1964 1969 704.99 806.71
1989 1994 1106.76 1176.74
(1)在直角坐标系上作出人口数的图象。
(2)建立人口数与年份的函数关系,并估算1999 年的人口数。
y ax b 线性模型
如何确定a,b?
一、曲线拟合
1 曲线拟合问题的提法:
已知一组(二维)数据,即平面上的 n 个点(xi , yi ), i 1,2, L,n, xi 互不相同,寻求一个函数(曲线)y f (x),
探测到一组等分点位置的深度数据如下表所示.
25
21个等分点处的深度
分点 0
1
2
3
4
5
6
7
8
9
深度 9.01 8.96 7.96 7.96 8.02 9.05 10.13 11.18 12.26 13.28 (m)
10 11 12 13 14 15 16 17 18 19 20
13.32 12.61 11.29 10.22 9.15 7.95 7.95 8.86 9.81 10.80 10.93
人口(百 3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2
万)
年份 1890 1900 1910 1920 1930 1940 1950 1960 1970 1980
人口(百 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5

数据拟合与曲线拟合实验报告

数据拟合与曲线拟合实验报告

数据拟合与曲线拟合实验报告【数据拟合与曲线拟合实验报告】1. 实验介绍数据拟合与曲线拟合是数学和统计学中非常重要的概念和方法。

在科学研究、工程技术和数据分析中,我们经常会遇到需要从一组数据中找到代表性曲线或函数的情况,而数据拟合和曲线拟合正是为了解决这一问题而存在的。

2. 数据拟合的基本原理数据拟合的基本思想是利用已知的一组数据点,通过某种数学模型或函数,找到一个能够较好地描述这组数据的曲线或函数。

常见的数据拟合方法包括最小二乘法、最小二乘多项式拟合、指数拟合等。

在进行数据拟合时,我们需要考虑拟合的精度、稳定性、可行性等因素。

3. 曲线拟合的实验步骤为了更好地理解数据拟合与曲线拟合的原理与方法,我们进行了一组曲线拟合的实验。

实验步骤如下:- 收集一组要进行拟合的数据点;- 选择合适的拟合函数或模型;- 利用最小二乘法或其他拟合方法,计算拟合曲线的参数;- 对拟合结果进行评估和分析;- 重复实验,比较不同的拟合方法和模型。

4. 数据拟合与曲线拟合的实验结果通过实验,我们掌握了数据拟合和曲线拟合的基本原理与方法。

在实验中,我们发现最小二乘法是一种简单而有效的数据拟合方法,能够较好地逼近实际数据点。

我们还尝试了多项式拟合、指数拟合等不同的拟合方法,发现不同的拟合方法对数据拟合的效果有着不同的影响。

5. 经验总结与个人观点通过这次实验,我们对数据拟合和曲线拟合有了更深入的理解。

数据拟合是科学研究和实践工作中不可或缺的一部分,它能够帮助我们从一堆杂乱的数据中提炼出有用的信息和规律。

曲线拟合的精度和稳定性对研究和实践的结果都有着重要的影响,因此在选择拟合方法时需要慎重考虑。

6. 总结在数据拟合与曲线拟合的实验中,我们深入探讨了数据拟合和曲线拟合的基本原理与方法,并通过实验实际操作,加深了对这一概念的理解。

数据拟合与曲线拟合的重要性不言而喻,它们在科学研究、工程技术和信息处理中发挥着重要的作用,对我们的日常学习和工作都具有重要的指导意义。

数值计算—拟合曲线

数值计算—拟合曲线

实验报告班级:计科1101 姓名:杨玲 学号:201126100130一、实验目的用最小二乘法求多项式拟合曲线。

二、实验方法1.首先用Matlab 绘制出拟合曲线,得到拟合函数。

2.用C++语言计算出系数,就是根据书上的公式,计算出各个值,然后再利用之前的顺序消元法求出各个系数值。

三、实验代码clearclcx=[1,3,4,5,6,7,8,9,10]y=[10,5,4,2,1,1,2,3,4]z=polyfit(x,y,2)plot(x,y,'r-*')hold on;f=poly2sym(z)ezplot(f,[0,10])0123456789102468101214x 4820124582082567/18014398509481984 x 2-...+16017/1190#include <iostream>#include <iomanip>using namespace std;void main(){int x[9]={1,3,4,5,6,7,8,9,10},y[9]={10,5,4,2,1,1,2,3,4}; double sum1=0;for(int p=0;p<9;p++){sum1+=x[p];}double sum2=0;for(int q=0;q<9;q++){sum2+=x[q]*x[q];}double sum3=0;for(int g=0;g<9;g++){sum3+=x[g]*x[g]*x[g];}double sum4=0;for(int w=0;w<9;w++){sum4+=x[w]*x[w]*x[w]*x[w];}double sum5=0;for(int r=0;r<9;r++){sum5+=y[r];}double sum6=0;for(int t=0;t<9;t++){sum6+=x[t]*y[t];}double sum7=0;for(int f=0;f<9;f++){sum7+=x[f]*x[f]*y[f];}//===================================================floata[3][4]={9,sum1,sum2,sum5,sum1,sum2,sum3,sum6,sum2,sum3,sum4,sum7},XX[3];//---------------------------------------for (int k=0;k<2;k++){for (int i=k+1;i<3;i++){float l=a[i][k]/a[k][k];for (int j=k+1;j<4;j++){a[i][j]=a[i][j]-l*a[k][j];}}} //消元for (int m=2;m>=0;m--){float sum=0;for (int j=m+1;j<3;j++){sum+=a[m][j]*XX[j];}XX[m]=(a[m][3]-sum)/a[m][m];} //计算//===========================================for (int h=0;h<3;h++){cout<<"XX["<<h+1<<"]="<<XX[h]<<endl;}cout<<"y="<<XX[2]<<"x^2"<<XX[1]<<"x+"<<XX[0]<<endl;cout<<"最低点位置:("<<(-1)*XX[1]/(2*XX[2])<<","<<(4*XX[0]*XX[2]-XX[1]*XX[1])/(4*XX[2])<<")"<< endl;}四、实验结果及其讨论实验结果有很小的误差,这是计算机本身的保留的小数位引起的五、总结通过本次实验,我开始会使用了Matlab软件,并且产生了浓厚的兴趣!另外,这次实验的代码,可能有点笨拙,不是很技巧,因为是直接计算出各个值在进行计算的,循环的次数很多,效率不是很高。

数值分析实验报告--实验3--函数逼近与曲线拟合

数值分析实验报告--实验3--函数逼近与曲线拟合

数值分析实验三:函数逼近与曲线拟合1曲线逼近方法的比较1.1问题描述曲线的拟合和插值,是逼近函数的基本方法,每种方法具有各自的特点和特定的适用范围,实际工作中合理选择方法是重要的。

考虑实验2.1中的著名问题。

下面的MATLAB程序给出了该函数的二次和三次拟合多项式。

x=-1:0.2:1;y=1./(1+25*x.*x);xx=-1:0.02:1;p2=polyfit(x,y,2);yy=polyval(p2,xx);plot(x,y,’o’,xx,yy);xlabel(‘x’);ylabel(‘y’);hold on;p3=polyfit(x,y,3);yy=polyval(p3,xx);plot(x,y,’o’,xx,yy);hold off;实验要求:(1) 将拟合的结果与拉格朗日插值及样条插值的结果比较。

(2) 归纳总结数值实验结果,试定性地说明函数逼近各种方法的适用范围,及实际应用中选择方法应注意的问题。

1.2算法设计对于曲线拟合,这里主要使用了多项式拟合,使用Matlab的polyfit函数,可以根据需要选用不同的拟合次数。

然后将拟合的结果和插值法进行比较即可。

本实验的算法比较简单,此处不再详述,可以参见给出的Matlab脚本文件。

1.3实验结果1.3.1多项式拟合1.3.1.1多项式拟合函数polyfit和拟合次数N的关系1 / 13首先使用polyfit函数对f(x)进行拟合。

为了便于和实验2.1相比较,这里采取相同的参数,即将拟合区间[-1,1]等分为10段,使用每一段区间端点作为拟合的数据点。

分别画出拟合多项式的次数N=2、3、4、6、8、10时,f(x)和多项式函数的图像,如图1所示。

Matlab 脚本文件为Experiment3_1_1.m。

Figure 1 多项式拟合与拟合次数N的关系可以看出,拟合次数N=2和3时,拟合效果很差。

增大拟合次数,N=4、6、8时,拟合效果有明显提高,但是N太大时,在区间两端附近会出现和高次拉格朗日插值函数类似的龙格现象。

数值分析-曲线拟合

数值分析-曲线拟合
matlab一实验任务与目的学习使用最小二乘法的原理了解法方程的特性理解和分析生成的过程以及结果分析实验内容或问题描述通过实验的观察和测量给出离散的一些点再來求出近似的函数解析式
数学与计算科学学院
《数值分析》实验报告
题目:曲线拟合
专业:信息与计算科学
学号:
指导教师:
成绩:
二零一五年四月二十四日《数 Nhomakorabea分析》实验报告(2)
4.4000 0.0000 3.1328 0
0.0000 3.1328 0 2.6259
b =
2.7946 -0.0000 0.3282 0.0000
a =
0.4841 -0.0000 -0.5752 0.0000
quxianyihe
xe =
Columns 1 through 8
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
for i=1:nm
for j=1:i
G(i,j)=sum(xe(i,:).*xe(j,:).*w);
G(j,i)=G(i,j);
end;
b(i)=sum(xe(i,:).*yp.*w);
end;
%拟合曲线步骤三,解方程组,求基函数的系数a(1),a(2),a(3),a(4)
a=b/G;
G
b
a
pause
-1.0000 -0.8000 -0.6000 -0.4000 -0.2000 0 0.2000 0.4000
1.0000 0.6400 0.3600 0.1600 0.0400 0 0.0400 0.1600
-1.0000 -0.5120 -0.2160 -0.0640 -0.0080 0 0.0080 0.0640

数值分析实验之拟合

数值分析实验之拟合

数值分析实验之拟合拟合是数值分析中的重要内容之一,通过对已知数据进行拟合,可以得到未知数据的近似值,从而进行预测和分析。

本次实验的目的是通过拟合方法,对给定的数据集进行曲线拟合,并分析拟合结果的准确性和适用性。

实验步骤:1.数据收集:从已有的数据集中选择一组适当的数据用于拟合实验。

这些数据可能是实验数据、调查数据或者通过其他方法获得的数据。

为了方便分析,我们选择一个二次曲线的数据集作为示例。

2. 选择拟合模型:根据数据的性质和曲线的特点,选择合适的拟合模型。

在本次实验中,我们选择二次曲线模型进行拟合。

该模型可以表示为y = ax^2 + bx + c,其中a、b、c是待求的参数。

3.参数估计:通过最小二乘法等统计方法,对待求参数进行估计。

最小二乘法是常用的参数估计方法,它通过最小化残差的平方和来确定最佳参数估计值。

在本次实验中,可以利用MATLAB或者其他数值计算软件来实现最小二乘法。

4.拟合结果评估:将估计获得的参数代入拟合模型中,得到拟合曲线,并将其与原始数据进行对比。

在本次实验中,可以通过绘制原始数据和拟合曲线的图像,观察拟合效果的好坏。

5.拟合结果分析:分析拟合结果的准确性和适用性。

可以从图像上观察拟合曲线与原始数据的拟合程度,如果两者重合度较高,则拟合结果较为准确。

此外,还可以比较拟合曲线的误差和残差等指标,来评估拟合结果的质量。

实验结果分析:通过以上步骤,我们得到了二次曲线拟合的结果。

拟合曲线与原始数据的重合度较高,说明拟合效果较好。

此外,通过计算拟合曲线的误差和残差,可以得到更加准确的评估结果。

在本次实验中,我们选择了二次曲线模型进行拟合。

然而,在实际应用中,并不是所有的数据都适合二次曲线模型。

根据实际情况,选择合适的拟合模型非常重要。

如果选择不当,将会导致拟合结果的不准确和误导性。

总结:拟合是数值分析中一项重要的实验内容,通过对已知数据进行拟合,可以获得未知数据的近似值,并进行预测和分析。

实验三 曲线拟合最小二乘法

实验三 曲线拟合最小二乘法

实验三曲线拟合最小二乘法一、实验目的(1)掌握最小二乘法,(2)熟练掌握求函数的近似最小二乘拟合多项式(3)掌握数据拟合的思想,清楚数据拟合与插值法的区别及最小二乘法原理在数据拟合中的重要作用及最小二乘法解的求法。

二、实验(或算法)原理最小二乘法(又称最小平方法)是一种数学优化技术。

它通过最小化误差的平方和寻找数据的最佳函数匹配。

利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

最小二乘法还可用于曲线拟合。

其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

最小二乘法拟合:对给定数据点{(Xi,Yi)}(i=0,1,…,m),在取定的函数类Φ中,求p(x)∈Φ ,使误差的平方和E^2最小,E^2=∑[p(Xi)-Yi]^2。

从几何意义上讲,就是寻求与给定点 {(XiYi)}(i=0,1,…,m)的距离平方和为最小的曲线y=p(x)。

函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。

三、实验步骤(1)根据算法事先写出相应程序。

(2)启动PC机,进入vc集成环境,输入代码。

(3)编译调试。

(4)调试通过,计算出正确结果。

四、代码#include<stdio.h>#include<math.h>#include<conio.h>float cf(int i,float f){float g=1.0;while(i--)g*=f;return g;}void ColPivot(float a[99][99], int n, float b[99][1],float x[99]){float max,m,temp;int k,q=0,i,j,I;for(k=0;k<n && q==0;k++){max=a[k][k];for(i=k+1;i<n;i++)if(fabs(max)<fabs(a[i][k])){max=a[i][k];I=i;}if(max==0)q=1;else{if(I!=k){temp=b[I][0]; b[I][0]=b[k][0];b[k][0]=temp;for(j=k;j<n;j++){temp=a[I][j]; a[I][j]=a[k][j];a[k][j]=temp;}}for(i=k+1;i<n;i++){m=a[i][k]/a[k][k];b[i][0]=b[i][0]-b[k][0]*m;for(j=0;j<n;j++)a[i][j]=a[i][j]-a[k][j]*m;}}}for(i=n-1;i>=0;i--){for(j=n-1;j>=i+1;j--)b[i][0]=b[i][0]-a[i][j]*x[j];x[i]=b[i][0]/a[i][i];}}void main(){float x[99],y[99],z[99],s[99][99],t[99][1]; int n,m,i,j,k;printf("n=");scanf("%d",&n);printf("m=");scanf("%d",&m);printf("y[%]=",n);for(i=0;i<n;i++)scanf("%f",&y[i]);printf("z[%d]=",n);for(i=0;i<n;i++)scanf("%f",&z[i]);for(i=0;i<=m;i++){for(j=0;j<=m;j++){s[i][j]=0.0;for(k=0;k<=n-1;k++)s[i][j]+=cf(i+j,y[k]);}t[i][0]=0.0;for(j=0;j<=n-1;j++)t[i][0]+=z[j]*cf(i,y[j]);}for(i=0;i<=m;i++)s[i][m+1]=t[i][0];for(i=0;i<=m;i++){for(j=0;j<=m+1;j++) printf("%f\t",s[i][j]);printf("\n");}ColPivot(s,m+1,t,x);printf("\n\n");for(i=0;i<=m;i++)printf("\na[%d]=%f",i,x[i]); printf("\n\n");}四、实验结果、实验体会通过实验的验证,可以更深刻地理解曲线拟合最小二乘法在数值计算的重要性,同时了解了其基本原理在计算机数值拟合的应用,更深刻地理解了曲线拟合最小二乘法的计算原理。

数值分析曲线拟合的最小二乘法实验报告

数值分析曲线拟合的最小二乘法实验报告

数值分析曲线拟合的最小二乘法实验报告数值分析曲线拟合的最小二乘法实验报告篇一:数值分析设计曲线拟合的最小二乘法曲线拟合的最小二乘法一、目的和意义在科学实验的统计方法研究中,往往要从一组实验数据?xi,yi??i?0,1,2,?,m?中,寻找自变量x与因变量y之间的函数关系y?F?x?。

由于观测数据往往不准确,因此不要求y?F?x?经过所有点?xi,yi?,而只要求在给定点xi上误差而只要求所在所有给定点xi上的误差?i?F(xi)?yi ?i?0,1,2,?,m?按某种标准最小。

若记????0,?1,?2,?,?m?,就是要求向量?的范数如果用最大范数,计算上困难较大,通常采用欧式范数?最小。

2T 作为误差度量的标准。

F?x?的函数类型往往与实验的物理背景以及数据的实际分布有关,它一般含有某些待定参数。

如果F?x?是所有待定参数的线性函数,那么相应的问题称为线性最小二乘问题,否则称为非线性最小二乘问题。

最小二乘法还是实验数据参数估计的重要工具。

这是因为这种方法比其他方法更容易理解,即使在其他方法失效的情况下,用最小二乘法还能提供解答,而且从统计学的观点分析,用该方法求得各项估计具有最优统计特征,因此这一方法也是系统识别的重要基础。

线性最小二乘问题可以借助多元微分学知识通过求解法方程组得到解答。

用最小二乘法求拟合曲线时,首先要确定S?x?的形式。

这不单纯是数学问题,还与所研究问题的运动规律以及所得观测数据?xi,yi?有关;通常要从问题的运动规律以及给定数据描图,确定S?x?的形式,并通过实际计算选出较好的结果。

为了使问题的提法更有一般性,通常把最小二乘法中的? 22 都考虑为加权平方和22 ? ????xi???S?xi??f?xi??? i?0 m 2 这里??xi??0是?a,b?上的加权函数,它表示不同点?xi,f?xi?处的数据比重不同。

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

数值计算(分析)实

数值计算(分析)实

数值计算(分析)实验报告2南昌航空大学数学与信息科学学院实验报告课程名称:《数值计算方法》实验名称:曲线拟合实验类型:验证性■综合性□设计性□实验室名称:数学实验室班级学号: 09072113学生姓名:邢宪平任课教师(教师签名):成绩:一、实验目的实验目的:实验目的:了解函数逼近与曲线拟合的基本原理,并且运用MATLAB 软件进行实践操作。

二、实验原理、程序框图、程序代码等 实验题目:题目1:试分别用抛物线2y a bx cx =++和指数曲线bxy ae =拟合下列数据并比较两个拟合函数的优劣。

题目2:已知实验数据如下:试用形如2y a bx =+的抛物线进行最小二乘拟合。

实验原理:1、逼近方式 假设()[,]f x C a b ∈,2{1,,,...,}n nHspan x x x =,()nnP x H ∈,称(,)|||||()()|max n n n a x bf P F P f x P x ≤≤=-=-V 为()f x 与()|nP x 在[,]a b 上的偏差。

若存在*()nnP x H ∈,使得**(,)|||||()()|max inf n nn nn P H a x bf P f Pf x P x ∞∈≤≤=-=-V 则称*()nP x 是()f x 在[,]a b 上的最佳一致逼近多项式。

假设()[,]f x C a b ∈及[,]C a b 的一个子集01{(),(),,...()}nspan x x x ϕ=ϕϕϕ,若存在*()S x ϕ∈,使*22222()()||()()||||()()||()[()()]min min bS x S x af x S x f x S x x f x S x dxϕϕρ∈∈-=-=-⎰则称*()S x 是()f x 在子集[,]C a b ϕ⊂中的最佳平方逼近数。

2、曲线拟合上述函数的最佳平方逼近法中,若()f x 是以一组离散点集的形式给出的,即给出了函数()f x 在一些离散点上的值{(,),0,1,...,}iix y i m =,则该方法就是所说的曲线拟合。

数值分析大作业曲线拟合的最小二乘法

数值分析大作业曲线拟合的最小二乘法

数值分析上机作业实验报告专业:建筑与土木工程姓名:学号:联系电话:课题四 曲线拟合的最小二乘法一、问题提出从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

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

二、要求1 、用最小二乘法进行曲线拟合;2 、近似解析表达式为()t ϕ=a 1t+a 2t 2+a 3t 33 、打印出拟合函数()t ϕ,并打印出()tj ϕ与()y tj 的误差,j=1,2...,12:4 、另外选取一个近似表达式,尝试拟合效果的比较;5 、* 绘制出曲线拟合图﹡。

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

四、实验结果:1.用最小二乘法做出的曲线拟合为三次多项式a1= -0.0052 ,a2= 0.2634 ,a3= 0.0178。

()tϕ= (-0.0052) t+ (0.2634) t2 + (0.0178) t3三次多项式的误差平方和=0.2583。

图形为:图形上红线表示拟合曲线,*表示实验所给的点。

源代码为:x=[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]; a1=polyfit(x,y,3) %三次多项式拟合%b1= polyval(a1,x)r1= sum((y-b1).^2) %三次多项式误差平方和%plot(x,y,'*') %用*画出x,y图像%hold onplot(x,b1, 'r') %用红色线画出x,b1图像%(说明本程序调用了MATLAB中的函数polyfit、polyval、plot)2.另外选取几个近似表达式:主要选取6次、9次和12次的拟合表达式。

数值计算 曲线拟合最小二乘法

数值计算  曲线拟合最小二乘法

太原工业学院理学系数值计算课程设计报告题目曲线拟合的最小二乘方法姓名学号专业信息与计算科学一、问题叙述 1、基本知识回顾当已知数据量很大且含有误差时,作高次多项式的代数插值显然是不可行的。

除了可用分段插值,特别是样条插值,数据的拟合也是比较常用的。

假设给定一组数据{}mk k k y x 1),(=,设有)()()()(2211x a x a x a x f n n ϕϕϕ+++= ,其中 {}nj j x m n 1)(,=≤ϕ是给定的一组函数,),,2,1(n j a j =为待定的系数,显然我们不能要求所有的点都在函数定义的曲线上,因此其残差-=k k y γ{)()()(2211x a x a x a n n ϕϕϕ+++ }, m k ,,2,1 = 通常不为零。

T m ),,,(21γγγγ =成为残差向量。

式中函数)(x f “接近”已知的信息,应从某种意义上使残差向量尽可能小。

残差向量的2-范数为∑===mk k n a a a S S 1221)(),,,(γ它是关于特定系数),,2,1(n j a j =的函数。

极小残差向量,则要求0=∂∂ka S, n k ,,2,1 = 经过简单计算知上式等价于+=∑∑==m j j j k mj j ki x x a x y 1111)()()(ϕϕϕ+∑=m j j j k x x a 122)()(ϕϕ∑=+mj j n j k n x x a 1)()(ϕϕn k ,,2,1 =它是关于n T n R a a a a ∈=),,,(21 的线性方程组。

将它改写成矩阵形式 b Pa = , 则其中的⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=∑∑∑∑∑∑======m j j n j n m j j j n mj j n j m j j j mj j n j m j j j x x x x x x x x x x x x P 1111211211111)()()()()()()()()()()()(ϕϕϕϕϕϕϕϕϕϕϕϕ T mj j n j m j j j m j j j x y x y x y b ))(,)(,)((11211∑∑∑====ϕϕϕ最简单的是取函数)(x f 为1-n 次的多项式,即121)(-+++=n n x a x a a x f , 其中m n <<-1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

曲线拟合的数值计算方法实验【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。

曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。

曲线直线化是曲线拟合的重要手段之一。

对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。

常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。

关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束一、实验目的1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。

2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。

3.掌握实现曲线拟合的编程技巧。

二、实验原理1.曲线拟合曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。

用解析表达式逼近离散数据的一种方法。

在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(Xi ,Yi)(i=1,2,...m),其中各Xi是彼此不同的。

人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或拟合已知数据。

f(x,c)常称作拟合模型,式中c=(c1,c2,…cn)是一些待定参数。

当c在f中线性出现时,称为线性模型,否则称为非线性模型。

有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在各点的残差(或离差),c)-f (f y e k k k =的加权平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线。

有许多求解拟合曲线的成功方法,对于线性模型一般通过建立和求解方程组来确定参数,从而求得拟合曲线。

至于非线性模型,则要借助求解非线性方程组或用最优化方法求得所需参数才能得到拟合曲线,有时称之为非线性最小二乘拟合。

曲线拟合:贝塞尔曲线与路径转化时的误差。

值越大,误差越大;值越小,越精确。

2.最小二乘法拟合:最小二乘法(又称最小平方法)是一种数学优化技术。

它通过最小化误差的平方和寻找数据的最佳函数匹配。

利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。

最小二乘法还可用于曲线拟合。

其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

函数曲线为: y=Ax+B其中系数满足下列的正规方程:3.幂函数拟合:函数曲线为:设(){}Νk k ,k y x 1=有N 个点,其中横坐标是确定的。

最小二乘幂函数拟合曲线的系数A 为:、4.对数函数拟合:对数函数(lograrithmic function )的标准式形式为 )0(ln a Y >+=X X bb>0时,Y 随X 增大而增大,先快后慢;b<0时,Y 随X 增大而减少,先快后慢,见图12.4(c)、(d)。

当以Y 和lnX 绘制的散点图呈直线趋势时,可考虑采用对数函数描述Y 与X 之间的非线性关系,式中的b 和a 分别为斜率和截距。

更一般的对数函数 Y=a+bln(X+k)式中k 为一常量,往往未知。

(a)lnY=lna+bX (b)lnY=lna-bX (c)Y=a+blnX (d)Y=a-blnX5.线性插值:在代数插值中,为了提高插值多项式对函数的逼近程度一般是增加节点的个数,即提高多项式的次数,但这样做往往不能达到预想的效果。

如下图所示:f(x) = 1 / (1 + x2)如果在区间[-5,5]上取7个等距节点:x k =5*(k/3-1) (k=0,1,2,...,6),由lagrange 插值公式可得到f(x)的次L7(x)。

如图所示:L7(x)仅在区间的中部能较好的逼近函数f(x), 在其它部位差异较大,而且越接近端点,逼近效果越差。

可以证明,当节点无限加密时,Ln(x)也只能在很小的围收敛,这一现象称为Runge 现象。

它表明通过增加节点来提高逼近程度是不适宜的,因而不采用高次多项式插值。

如果我们把以上的点用直线连接起来,显然比L7(x)要更逼近f(x)。

这就是分段线性插值。

而在实际应用常采用分段低次插值来提高近似程度,比如可用分段线性插值或分段三次埃尔米特插值来逼近已知函数,但它们的总体光滑性较差。

为了克服这一缺点,一种全局化的分段插值方法——三次样条插值成为比较理想的工具。

6.三次样条插值:设(){}N k kk ,yx 0=有N+1个点,其中b x ...x x x a N =<<<<=210。

如果存在N 个三次多项式x )S k (,系数为3210k ,k ,k ,k ,,S,S,S S 满足如下性质:33,22,1,0,)()()()()(k k k k k k k k x x s x x s x x s s x S x S -+-+-+==则成函数S(x)为三次样条函数。

7.端点约束:紧压样条:存在唯一的三次样条曲线,其一阶导数的边界条件是:natural样条:存在唯一的三次样条曲线,它的自由边界条件是:外推样条:存在唯一的三次样条曲线,其过对点x1和x2进行外推得到()aS'',同时通过对点X(n-1)和X(N-2)进行外推得到()bS''。

端点曲率调整:存在唯一的三次样条曲线,其中二阶导数的边界条件()aS''和()bS''是确定的。

抛物线终结样条:存在唯一的三次样条曲线,其中二阶在区间[X0,X 1]0xS≡''')(,而在[Xn-1,Xn]0xS≡''')(。

三、实验容1.P202 1胡克定律指出F=kx,其中F是拉伸弹簧的拉力(单位为盎司),x为拉伸的长度(单位为英寸)。

根据下列试验数据,求解拉伸常量k的近似值。

(a)(b)2.P215 1洛杉矶(美国城市)郊区11月8日的温度记录入下表所示,其中共有24个数据点。

(a )根据例5.5中的处理过程(使用fmins 命令),对给定的数据求解最小二乘曲线E Dx C Bx A x f ++=)sin()cos()(。

(b )求。

)(2f E(c )在同一坐标系下画出这些点集和(a)得出的最小二乘曲线。

3.P229 1一个轿车在时间T k 时经过的距离d k ,如下表所示。

使用程序5.3,并根据一阶导数边界条件98)8(',0)0('==S S ,求这些数据的三次紧压样条插值。

4.P238 5美国洛杉矶郊区11月9日的温度(华氏温度)如表5.10所示。

采用24小时制。

(a )求三角多项式)(7x T(b )在同一坐标系下,画出图)(7x T 和24个数据点。

(c )使用本地的温度情况重新求解问题(a)和问题(b)。

5.P246 1编写Matlab 程序,生成并绘制组合贝塞尔曲线。

利用该程序生成和绘制过3个控制点集{(0,0),(1,2),(1,1),(3,0)},{(3,0),(4,-1),(5,-2),(6,1),(7,0)},{(7,0),(4,-3),(2,-1),(0,0)}的贝塞尔曲线。

四、实验结果及分析1.P202 1实验描述:由题意可知,此题需要用最小二乘法进行计算,因为已知函数的5个插点并且知道它们的x,y 的值。

且函数的表达式为F=kx ,所以只需用方程中∑∑===Nk k Nk k y A x 11)(便可计算出k 的数值。

定义一个动态数组[]a,用来依次存取x和y的插值。

其中x,y的插值通过键盘手动输入并赋予给a中的元素。

然后通过相应的求和和基本运算便可以得到相应插值下的最小二乘法的函数表达式。

(其中k保留小数点后4位)具体函数运行效果如下:(a)请在此输入x的各插值0.2 0.4 0.6 0.8 1.0请在此输入y的各插值3.6 7.3 10.9 14.5 8.2此函数的最小二乘法曲线表达式为Y=14.8333*x请按任意键继续。

(b)请在此输入x的各插值0.2 0.4 0.6 0.8 1.0请在此输入y的各插值5.3 10.6 15.9 21.2 26.4此函数的最小二乘法曲线表达式为Y=26.4667*x请按任意键继续。

结果分析:易得,最小二乘法多项式计算可以很好的做出较为精确的最小二乘法拟合曲线,并且程序通用性高,只要输入相应的插值便可以计算出结果,结果系数的小数点有效位同时也可以自己确定。

2.P215 1实验描述:给出的最小二乘曲线表达式为:)=))(+cos(sin(Dxf+CExABx其中变量有5个,而给出的数据点有24个,在C语言中可以用牛顿-拉夫森算法迭代计算分别得出5个变量的值,但是方法繁琐,且迭代计算量庞大,因此这里采用Matlab进行相关的计算,调用fminsearch函数,求得当5个参量都为1附近时候多项式的最小值,此时便可求出此5个参变量的值.然后继续通过Matlab,将得到的公式以及各点,用plot函数,便可以求得。

实验结果:运行matlab结果如下:>> fminsearch('fiveOne',[1 1 1 1 1])ans =15.7225 1.3717 15.5359 1.2768 60.3579此时的所求值便为函数的待定系数。

所以可得最小二乘曲线的表达式为:7225..115cos(3717fx=x(+)+)60.35792768).1.15sin(5359然后进行相应的绘制图形便可以求出所要求出的结果。

结果分析:通过最小二乘法多项式同样可以绘制出三角函数的曲线。

并且程序通用性高,只要输入相应的插值便可以计算出结果,结果系数的小数点有效位同时也可以自己确定。

3.P229 1实验描述:由题意可知,由于这里涉及到了样条线的运算,计算较为复杂。

且要涉及到画图的部分,所以此处采用matlab计算较为方便快捷。

而书本上给出了一个用来计算三次紧压样条曲线的可调用函数,现在将其引用,并根据已知点得出相应的曲线。

实验结果:代入后得出的结果如下所示:>> X=[0 2 4 6 8];>> Y=[0 40 160 300 480];>> S=csfit(X,Y,0,98)S =0.8125 8.3750 0 0-2.4375 13.2500 43.2500 40.00001.4375 -1.3750 67.0000 160.0000-0.8125 7.2500 78.7500 300.0000由结果可知此插值为在区间[0,8]中有三个分别划分了[0,2],[2,4],[4,6],[6,8]四个区间的插点。

相关文档
最新文档