文档库 最新最全的文档下载
当前位置:文档库 › 第34讲 三次样条曲线与参数样条曲线

第34讲 三次样条曲线与参数样条曲线

第34讲 三次样条曲线与参数样条曲线
第34讲 三次样条曲线与参数样条曲线

第五章 参数样条曲线曲面

第五章 参数样条曲线曲面

第一节 C 1 分段三次Hermite插值2009- 08- 29 2

一、参数连续性 1、参数连续性与曲线光滑度 对于显式函数表示的曲线,函数的可微性与曲 线的光滑度是紧密联系的。例如: y ax b =+ 一次函数表示的直线 2 =++ 二次曲线 y ax bx c 32 =+++ 三次曲线 y ax bx cx d 对于显示曲线,函数的C 0 ,C 1 和C 2 连续分别表 示函数的图形、切线方向、以及曲率连续。 2009- 08- 29 3

2009- 08- 29 4 一、参数连续性 但是对于CAGD中大量涉及到的参数曲线,参数 方程的可微性与曲线的光滑性却没有必然的联系。 例如:如图的两条首尾相连的n次Bezier曲线: (1)(1)(2) 10 n n b b b - == r r r 根据Bezier曲线的知识可知,这两条首尾相连的曲 线在连接点是C 1 连续的,但显然该点是个尖点,切线 方向是不连续的。

2009- 08- 29 5 一、参数连续性 同理,如果让首尾相连的两条n次Bezier曲线的最 后三个控制顶点和最前面三个控制顶点重合,即: (1)(1)(1)(2)(2)(2) 21012 n n n b b b b b b -- ===== r r r r r r 根据Bezier曲线的知识可知,这两条首尾相连的曲 线在连接点是C 2 连续的,但显然在该点处曲率是不连 续的。

一、参数连续性 上两个例子说明,曲线的参数连续性并不 能保证曲线的光滑性。反过来,曲线的光滑性 也不一定需要相应的参数连续性。例如曲线的 二阶几何连续可以保证曲线的曲率是连续的, 但这时曲线甚是连C 1 连续也不一定满足。 另外,参数曲线的参数连续性也是与曲线 的参数化有关的,同一条曲线采用不同的参 数,参数的连续性情况可能不同。 2009- 08- 29 6

三次样条插值作业题

例1 设)(x f 为定义在[0,3]上的函数,有下列函数值表: 且2.0)('0=x f ,1)('3-=x f ,试求区间[0,3]上满足上述条件的三次样条插值函数)(x s 本算法求解出的三次样条插值函数将写成三弯矩方程的形式: ) ()6()() 6()(6)(6)(211123 13 1j j j j j j j j j j j j j j j j x x h h M y x x h h M y x x h M x x h M x s -- + -- + -+ -= +++++其中,方程中的系数 j j h M 6, j j h M 61+,j j j j h h M y )6(2- , j j j j h h M y ) 6(211++- 将由Matlab 代码中的变量Coefs_1、Coefs_2、Coefs_3以及Coefs_4的值求出。 以下为Matlab 代码: %============================= % 本段代码解决作业题的例1 %============================= clear all clc % 自变量x 与因变量y ,两个边界条件的取值 IndVar = [0, 1, 2, 3]; DepVar = [0, 0.5, 2, 1.5]; LeftBoun = 0.2; RightBoun = -1; % 区间长度向量,其各元素为自变量各段的长度 h = zeros(1, length(IndVar) - 1); for i = 1 : length(IndVar) - 1 h(i) = IndVar(i + 1) - IndVar(i); end % 为向量μ赋值

三次样条插值方法的应用

CENTRAL SOUTH UNIVERSITY 数值分析实验报告

三次样条插值方法的应用 一、问题背景 分段低次插值函数往往具有很好的收敛性,计算过程简单,稳定性好,并且易于在在电子计算机上实现,但其光滑性较差,对于像高速飞机的机翼形线船体放样等型值线往往要求具有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(即所谓的样条)用压铁固定在样点上,在其他地方让他自由弯曲,然后沿木条画下曲线,称为样条曲线。样条曲线实际上是由分段三次曲线并接而成,在连接点即样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。下面我们讨论最常用的三次样条函数及其应用。 二、数学模型 样条函数可以给出光滑的插值曲线(面),因此在数值逼近、常微分方程和偏微分方程的数值解及科学和工程的计算中起着重要的作用。 设区间[]b ,a 上给定有关划分b x x n =<<<= 10x a ,S 为[]b ,a 上满足下面条件的函数。 ● )(b a C S ,2∈; ● S 在每个子区间[]1,+i i x x 上是三次多项式。 则称S 为关于划分的三次样条函数。常用的三次样条函数的边界条件有三种类型: ● Ⅰ型 ()()n n n f x S f x S ''0'',==。 ● Ⅱ型 ()()n n n f x S f x S ''''0'''',==,其特殊情况为()()0''''==n n x S x S 。 ● Ⅲ型 ()() 3,2,1,0,0==j x S x S n j j ,此条件称为周期样条函数。 鉴于Ⅱ型三次样条插值函数在实际应用中的重要地位,在此主要对它进行详细介绍。 三、算法及流程 按照传统的编程方法,可将公式直接转换为MATLAB 可是别的语言即可;另一种是运用矩阵运算,发挥MATLAB 在矩阵运算上的优势。两种方法都可以方便地得到结果。方法二更直观,但计算系数时要特别注意。这里计算的是方法一的程序,采用的是Ⅱ型边界条件,取名为spline2.m 。 Matlab 代码如下: function s=spline2(x0,y0,y21,y2n,x) %s=spline2(x0,y0,y21,y2n,x) %x0,y0 are existed points,x are insert points,y21,y2n are the second

样条插值和曲线拟合

第三章 样条插值和曲线拟合 1.x y = 有如下的函数表 8。 解 先作差商表 4 167 1210 13 9 3 42015 11008 16012 4 60 13 1611 1 10 0-?- -- 故:8.2)48(5 1 2)8(1=-+=p 819047619.2) 98)(48(210 1 )48(512)8(2=----+=p 844444.2)98)(48)(18(3 4201) 48)(18(601 )18(311)8(3=---?+----+=p 6222.2)1(4781008 1478601) 18(86 1 )08(10)8(4=-???-??+---?+=p 已知 828427.28=,因此选定 )8(,16,9,42321p x x x ===最接近8。 利用Neville 方法得: xi 8-xi f(xi) 2.8284271 8 0 8 1 7 1 -1.33333333 3.3333333 2.4 4 4 2 2.866666667 2.6222222 2.8 2.8444444 9 -1 3 2.819047619 2.8571429 16 -8 4 f(8)= 2.828427125 xi 8-xi f(xi) 8 0 8 1 7 1 -1 1/3 3 1/3 2 2/5 4 4 2 2 13/15 2 28/45 2 4/5 2 38/45 9 -1 3 2 86/105 2 6/7 16 -8 4 已知 828427.28=,故选定)8(,16,9,42321 p x x x ====2.819047619最接近8.

三次样条插值在工程拟合中的应用

三次样条插值在工程拟合中的应用 摘要: 介绍了工程实验、勘测、设计中常见的列表函数之数值插值方法、程序实现及工程应用, 应用此法可方便地将任何列表函数计算到工程设计、施工所需要的精确程度, 给 出了各参数随主要参数变化而变化的光滑曲线, 并将其应用推广到一般情况. 关键词: 列表函数; 数值拟合; 三次样条插值; MA TLAB 程序设计与应用 在实际工程中, 广泛存在这样的问题: 根据设计要求和具体的工程条件, 在初始设计阶段会勘测得到若干组该工程的控制参数, 但这些参数之间彼此离散、不够密集, 利用它们来施工则不能满足施工的精度要求. 为了解决这一问题, 需要对已知的参数数据进行分析处理, 进行必要的插值、拟合, 以达到施工所需要的数据精度.本文以工程实例为基础, 对实际工程中插值方法的选取、插值的实现和插值曲线的拟合加以讨论, 提出能得到较合乎实际的插值方法, 给出一般工程人员就能实现的计算方法以及能得到光滑曲线的拟合方法. 1 工程应用实例 表1 所示的为某双曲拱坝体形原始参数[ 1 对于这一类工程列表参数有一个显著的特点:尽管不同工程的参数多寡不同, 但都是由n 行k 列的离散的列表数据给出, 虽然同一行代表某工程特定位置的几个参数(或高程参数, 或上游 半径参数?) , 但相邻两行由于位置距离太大, 两行各参数之间究竟存在什么数值关系, 对工 程设计、施工有何影响, 这是工程技术人员需要弄清楚的[ 2 ].以双曲拱坝为例, 它沿整个高程的变化是一个连续光滑的空间曲面. 从施工需要来看, 这些数据太稀疏, 难以满足设计、施工放样与钢筋配置等要求, 如果照此施工, 则有可能达不到工程精度、降低工程效率; 从计算机图形模拟来看, 要生成这个曲面仅由这一列表函数是得不到光滑曲面的, 是不可取的. 所以, 为使计算精确, 满足工程施工过程中任何断面位置、任意水平位置、任意高程位置所必需的施工数据与设计图纸, 保证工程施工的高品质,就要求作精确的数据处理.进一步分析可知, 在这 些参数表中, 各行的参数都随某一主要参数的变化而变化, 如上游半径参数随高程的变化而变化?, 它们的这种函数关系,在数值分析中有许多的方法可以求得. 但是哪种方法能更好、更合 乎实际地给出平滑曲线呢? 下面所选的插值方法能够较好地满足这一要求.

贝塞尔曲线和B样条曲线(优质参考)

§4.3 贝塞尔曲线和B 样条曲线 在前面讨论的抛物样条和三次参数样条曲线,他们的共同特点是:生成的曲线通过所有给定的型值点。我们称之为“点点通过”。但在实际工作中,往往给出的型值点并不是十分精确,有的点仅仅是出于外观上的考虑。在这样的前提下,用精确的插值方法去一点点地插值运算就很不合算;另外,局部修改某些型值点,希望涉及到曲线的范围越小越好,这也是评价一种拟合方法好坏的指标之一。 针对以上要求,法国人Bezier 提出了一种参数曲线表示方法,称之为贝塞尔曲线。后来又经Gorgon, Riesenfeld 和Forrest 等人加以发展成为B 样条曲线。 一、 贝塞尔曲线 贝塞尔曲线是通过一组多边折线的各顶点来定义。在各顶点中,曲线经过第一点和最后一点,其余各点则定义曲线的导数、阶次和形状。第一条和最后一条则表示曲线起点和终点的切线方向。 1.数学表达式 n+1个顶点定义一个n 次贝塞尔曲线,其表达式为: )()(0,t B p t p n i n i i ∑== 10≤≤t ),...,2,1,0(n i p i =为各顶点的位置向量,)(,t B n i 为伯恩斯坦基函数 i n i n i t t n i n t B ---= )1()! 1(!! )(, 2.二次贝塞尔曲线 需要3个顶点,即210,,p p p ,将其代入曲线表达式: 2,222,112,00)(B p B p B p t p ++=

220202,021)1() 1()! 02(!0! 2t t t t t B +-=-=--= - 21212,122)1(2)1()! 12(!1! 2t t t t t t B -=-=--= - 22222,2)1()! 22(!2! 2t t t B =--= - 221202)22()21()(p t p t t p t t t p +-++-= [ ] ?? ?? ? ???????????????--=2102 0010221211p p p t t 10≤≤t 2102)21(2)1(2)(tp p t p t t p +-+-=' )(222)0(0110p p p p p -=+-=' 0)0(p p = )(222)1(1221p p p p p -=+-=' 2)1(p p = 当2 1 = t 时: 21021041214141)412212()412121(21p p p p p p p ++=+?-?++?-=?? ? ?? )](2 1 [21201p p p ++= 02210212)2121(2)121(221p p p p p p -=?+?-+-=?? ? ??'

三次样条拟合范例

1设计目的、要求 对龙格函数2 2511 )(x x f += 在区间[-1,1]上取10=n 的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出)(x f 及各逼近函数的图形,比较各结果。 2设计原理 (1) 多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项 式,即: 01,,...,n x x x 表示待插值函数的1n +个节点, 0()()n n j k k j j k L x y l x y ===∑,其中0,1,...,j n =; 011011()...()()...() ()()...()...()...() k k n k k k k k k k n x x x x x x x x l x x x x x x x x x -+-+----= ---- (2) 三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条 件下的样条插值,即两端一阶导数已知的插值方法: 00'()'S x f = '()'n n S x f = (3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。最小二乘拟合是 利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。在本题中,n= 10,故有11个点,以这11个点的x 和 y 值为已知数据,进行三次多项式拟合,设该多项式为 23432xi i i i p a a x a x ax =+++,该拟合曲线只需2[]xi i p y -∑的值最小即可。 3采用软件、设备 计算机、matlab 软件

4设计内容 1、多项式插值: 在区间[] -上取10 1,1 n的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值, = 并利用matlab软件建立m函数,画出其图形。 在matlab中建立一个lagrange.m文件,里面代码如下: %lagrange 函数 function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end 建立一个polynomial.m文件,用于多项式插值的实现,代码如下: %lagrange插值 x=[-1:0.2:1]; y=1./(1+25*x.^2); x0=[-1:0.02:1]; y0=lagrange(x,y,x0); y1=1./(1+25*x0.^2); plot(x0,y0,'--r') %插值曲线 hold on %原曲线 plot(x0,y1,'-b') 运行duoxiangshi.m文件,得到如下图形:

关于三次样条插值函数的学习报告(研究生)资料

学习报告—— 三次样条函数插值问题的讨论 班级:数学二班 学号:152111033 姓名:刘楠楠

样条函数: 由一些按照某种光滑条件分段拼接起来的多项式组成的函数;最常用的样条函数为三次样条函数,即由三次多项式组成,满足处处有二阶连续导数。 一、三次样条函数的定义: 对插值区间[,]a b 进行划分,设节点011n n a x x x x b -=<< <<=,若 函数2()[,]s x c a b ∈在每个小区间1[,]i i x x +上是三次多项式,则称其为三次样条函数。如果同时满足()()i i s x f x = (0,1,2)i n =,则称()s x 为()f x 在 [,]a b 上的三次样条函数。 二、三次样条函数的确定: 由定义可设:101212 1(),[,] (),[,]()(),[,] n n n s x x x x s x x x x s x s x x x x -∈??∈?=???∈?其中()k s x 为1[,]k k x x -上的三次 多项式,且满足11(),()k k k k k k s x y s x y --== (1,2,,k n = 由2()[,]s x C a b ∈可得:''''''()(),()(),k k k k s x s x s x s x -+-+== 有''1()(),k k k k s x s x -++= ''''1()(),(1 ,2,,1)k k k k s x s x k n -+ +==-, 已知每个()k s x 均为三次多项式,有四个待定系数,所以共有4n 个待定系数,需要4n 个方程才能求解。前面已经得到22(1)42n n n +-=-个方程,因此要唯一确定三次插值函数,还要附加2个条件,一般上,实际问题通常对样条函数在端点处的状态有要求,即所谓的边界条件。 1、第一类边界条件:给定函数在端点处的一阶导数,即 ''''00(),()n n s x f s x f == 2、第二类边界条件:给定函数在端点处的二阶导数,即

SM2椭圆曲线参数选取

关于SM2椭圆曲线参数选取 一.安全的椭圆曲线的选取 1.椭圆曲线上的公钥密码体制的安全性是建立在椭圆曲线离散对数的基础上, 但并不是所有椭圆曲线都可以应用到公钥密码体制中, 为了保证其安全性, 必须选取安全椭圆曲线,即只有选到合适的有限域GF(p)和椭圆曲线(ECC),能够抵抗攻击ECDLP算法的攻击,才能保证所选ECC的安全性。 若某椭圆曲线存在优于n1/2级(n是基点阶次)计算复杂度的攻击方法,则称此曲线为弱椭圆曲线。Fp上的超奇异椭圆曲线(有限域Fp的特征整除q+1-#E(Fp))和Fp上的异常曲线(#E(Fp)=p)都是弱椭圆曲线。(国密局文档p4,p25A.4抗攻击椭圆曲线满足的条件)。下面是选取曲线时应遵循的原则:(一种椭圆曲线参数生成的快速算法) (1)为了抗击Pollard-ρ攻击,所选取椭圆曲线的阶#E(GF(p))的分解式中应该包含一个大的素数因子,目前应不小于160bit; (2)为了抗击Weil对和Tate对的攻击,对于1≤k≤30,n不能除p k-1(不宜选取超奇异椭圆曲线); (3)为了抗击Semaev-Smart-Satoh-Araki的攻击所选曲线的阶不能等于该曲线所定义的有限域的阶,即#E(F P)≠p(不宜选取异常椭圆曲线); (4)对于二进制域GF(2m)的度m不宜为合数。Gaudry,Hess和Smart提出,若m有小约数l(l=4),存在比Pollard's rho算法更

快求解ECDLP的方法。 (5)选择GF(p)的子域H,满足它的阶|H| 是#E 的最大素因子n,并在H 上实现ECC。 2.一般来说有4 种寻找安全椭圆曲线的方法:(椭圆曲线密码体制及其参数生成的研究.2006.DR) (1) 有限域GF( p) 上随机生成一椭圆曲线, 直接计算其阶, 判断阶是否为大素数或含大素数因子, 若是即确定,否则继续选取曲线, 直至符合条件。 (2) 取具有一定特殊性椭圆曲线的系数, 计算该椭圆曲线的阶, 对该阶进行判断, 直至找到所需要的安全曲线。 (3) 如果p = 2m , 其中m 能被一个比较小的整数d 整除, 首先在有限域GF( p1 ) ( p1 = 2 d ) 上选择一椭圆曲线E,并计算其阶, 根据此值, 利用Weil 定理[ 2] 计算该曲线在其扩域GF( p) 上的阶, 若此阶符合安全标准, 再找曲线E在域GF( p) 上的嵌入E, 则E 即为所需的安全椭圆曲线。 (4) 首先给出具有安全条件的曲线阶, 然后构造一具有此阶的椭圆曲线。目前国内外比较流行的计算椭圆曲线阶的算法有complex multiplication 算法、SEA 算法、Satoh 算法。应用广泛的椭圆曲线公钥密码体制( ECC) 中大多是基于特征2 的有限域上。 3.尽管ECC的参数选取方法有许多种,应用最多的是随机选择方法,它是根据任意给定曲线的系数,计算曲线的阶直到找到素数(或近素数)阶的椭圆曲线。

三次样条函数

计算方法实验报告 1、实验题目 三次样条插函数。 2、实验内容 三次样条插值是建立在Hermite 插值的基础上的。Hermite 插值是在一个区间上的插值,而三次样条插则是建立多个区间上插值,构造一个具有二阶光滑度的曲线,在求出给定点上对应的函数。本实验就是建立一个能根据三次样条插值函数求根的程序。 3、算法思想 给定一个区间,并把它分成n 等份,并且给出了每个结点对就的横坐标和纵坐标。利用程序输出给定插值点对应的值。横坐标设为:X 0, X 1, X 2, X 3, …X n 纵坐标为Y 0, Y 1, Y 2, …Y n ,设插点为u 。则令h k =X k+1-X k ,λk =1-+k k k h h h , μk =11--+k k k h h h , g k =3(1 11--+-+-k k k k k k k k h y y h y y λμ), 其中k=1,2,…,n-1 再根据第一类边界条件则可以确定公式6.16,再根据6.17解出方程中的m 向量,最后代入公式6.8求解。 4、源程序清单 #include #define N 21/*最大结点个数减一*/ void sanCi() { /*定义过程数据变量*/ float x[N],y[N],h[N]; /*横纵坐标及区间长度*/ float rr[N],uu[N],gg[N]; /*计算m 用的中间数组rr 、uu 、gg 分别对应:λ、μ、g 数组*/

float aa[N],bb[N],tt[N]; /*矩阵分解时用到的中间变量aa、bb、tt分别对应:α、β数组以及A=LU时中间矩阵*/ float mm[N]; /*最后要用到的系数m*/ int n,k,kv,chose; /* n为实际结点个数,k为下标,kv为最后确定k的值*/ float s,u; /*最后计算u对应的值*/ printf("请输入区间段数:"); scanf("%d",&n); /*输入结点个数*/ /*输入所有横坐标:*/ printf("输入所有横坐标:"); for(k=0; k<=n; k++) scanf("%f",&x[k]); /*输入对应纵坐标:*/ printf("输入对应纵坐标:"); for(k=0; k<=n; k++) scanf("%f",&y[k]); for(k=0; k

三次样条差值拟合车门曲线

数学实验(三次样条)

数学实验(三次样条插值) 实验1: 某汽车制造商用三次样条插值设计车门的曲线,其中一段的数据如下: i x 0 1 2 3 4 5 6 7 8 9 10 i y 0.0 0.79 1.53 2.19 2.71 3.03 3.27 2.89 3.06 3.19 3.29 i y 0.8 0.2 用三次样条插值求)(10x S ,用软件绘制)(10x S 的图像,即车门的曲线。 1、计算)(10x S : 程序: // splineaaaa.cpp : 定义控制台应用程序的入口点。 //**三次样条差值** //***第一步,利用差商,代替导数,求差商; //***第二步,利用追赶法求解三对角方程组,得到M[i]; //***第三步,将求得值带入三次样条函数,求得S(x); #include #include #include #define N 10 double x[N + 1], fx[N + 1], h[N ], H[N ], f[N ], a[N + 1], b[N + 1], c[N + 1], M[N + 1], beta[N + 1], y[N + 1],s[N ];//定义变量数组; double tiaojian1, tiaojian2; //边界条件; //求插商; void chashang() { int i; for (i = 0; i <= N - 1; i++) h[i] = x[i + 1] - x[i]; for (i = 0; i <= N - 1; i++) f[i] = (fx[i + 1] - fx[i]) / (x[i + 1] - x[i]); for (i = 1; i <= N - 1; i++) { a[i] = h[i - 1] / (h[i - 1] + h[i]); b[i] = h[i] / (h[i - 1] + h[i]); c[i] = 3 * (a[i] * f[i - 1] + b[i] * f[i]); }

样条函数(三次样条)

样条插值是一种工业设计中常用的、得到平滑曲线的一种插值方法,三次样条又是其中用的较为广泛的一种。 1. 三次样条曲线原理 假设有以下节点 1.1 定义 样条曲线是一个分段定义的公式。给定n+1个数据点,共有n个区间,三次样条方程满足以下条件: a. 在每个分段区间(i = 0, 1, …, n-1,x递增),都是一个三次多项式。 b. 满足(i = 0, 1, …, n ) c. ,导数,二阶导数在[a, b]区间都是连续的,即曲线是光滑的。 所以n个三次多项式分段可以写作: ,i = 0, 1, …, n-1 其中ai, bi, ci, di代表4n个未知系数。 1.2 求解 已知: a. n+1个数据点[xi, yi], i = 0, 1, …, n b. 每一分段都是三次多项式函数曲线 c. 节点达到二阶连续 d. 左右两端点处特性(自然边界,固定边界,非节点边界) 根据定点,求出每段样条曲线方程中的系数,即可得到每段曲线的具体表达式。 插值和连续性: , 其中i = 0, 1, …, n-1 微分连续性:

, 其中i = 0, 1, …, n-2 样条曲线的微分式: 将步长带入样条曲线的条件: a. 由(i = 0, 1, …, n-1)推出 b. 由(i = 0, 1, …, n-1)推出 c. 由(i = 0, 1, …, n-2)推出 由此可得: d. 由(i = 0, 1, …, n-2)推出 设,则 a. 可写为:

,推出 b. 将ci, di带入可得: c. 将bi, ci, di带入(i = 0, 1, …, n-2)可得: 端点条件 由i的取值范围可知,共有n-1个公式,但却有n+1个未知量m 。要想求解该方程组,还需另外两个式子。所以需要对两端点x0和xn的微分加些限制。选择不是唯一的,3种比较常用的限制如下。 a. 自由边界(Natural) 首尾两端没有受到任何让它们弯曲的力,即。具体表示为和 则要求解的方程组可写为: b. 固定边界(Clamped) 首尾两端点的微分值是被指定的,这里分别定为A和B。则可以推出

基于多项式插值与三次样条插值曲线拟合的比较

2015级《数值分析》课外课堂大作业 论文题目:基于多项式插值与三次样条插值曲线拟合的比较姓名:XXX 学号:XXXXXXXXXXX 学院:XXXXXXXXXXXXXXX 专业方向: XXXXXXXXXXXXXXX 联系方式:(QQ号) (手机号) 导师姓名: 完成人(亲笔)签字 二0一五年十二月

基于多项式插值与三次样条插值曲线拟合的比较 摘要:在数值计算中经常要计算函数,当函数只在有限点集上给定函数值要包含改点集的区间上用公式给出函数的简单表达式,这就涉及在已知区间上用简单函数逼近已知复杂函数问题。本文为了解决这类问题就采用多项式插值与三次样条插值两种插值法并利用MATLAB数值分析软件进行编程,实现相应数据的曲线拟合以获得最佳曲线模型与相应数据的曲线拟合,选出最优的插值法以解决所给数据的曲线拟合问题。 关键词:函数;多项式插值;三次样条插值;曲线拟合;MATLAB Abstract:In numerical analysis ,the function value is often calculated .when the function is only given a function point set ,the simple expression of the function is given by the interval .which involves the use of a simple function to approximate the known complex function .in order to solve this problem ,we use polynomial interpolation and cubic spline interpolation tow kind of interpolation method and use MATLAB numerical analysis software to program ,to achieve the curve fitting of the corresponding date to obtain the best cure fitting ,and to choose the best interpolation method to solve the problem of curve fitting to the date. Keyword: Function ; Polynomial interpolation ; Cubic spline interpolation ; Fitting of a curve ; MATLAB

第二类曲线积分的计算

第二类曲线积分的计算 作者:钟家伟 指导老师:张伟伟 摘要:本文结合第二类曲线积分的背景用定义的方法进行第二类曲线积分的计算,重点是利用对称性, 参数方程,格林公式斯托克斯公式以及两类曲线积分之间的联系对第二类曲线积分进行计算。 关键词:第二类曲线积分 二重积分 参数积分 对称性原理 斯托克斯公式 第二类曲面积分 1 引言 本文介绍第二类曲线积分的定义以及与两类曲线积分之间的联系,重点介绍若干种主要的计算方法。 1.1 第二类曲线积分的概念 介绍了第二类曲线积分的物理学背景,平面和空间第二类曲线积分的定义以及对坐标的第二类曲线积分的定义。 1.2第二类曲线积分的计算方法 介绍了关于第二类曲线积分的参数计算法,利用格林公式和斯托克斯公式计算的方法以及利用对称性简化或计算的方法。 2.1第二类曲线积分的物理学背景 力场()),( , ),(),(y x Q y x P y x F =沿平面曲线L 从点A 到点B 所作的功 一质点受变力()y x F , 的作用沿平面曲线L 运动,当质点从L 之一端点A 移动到另一端B 时,求力()y x F , 所做功W . 大家知道,如果质点受常力F 的作用从A 沿直线运动到B ,那末这个常力F 所做功为 W =AB F ? . 现在的问题是质点所受的力随处改变,而所走路线又是弯弯曲曲.怎么办呢? 为此,我们对有向曲线L 作分割},,.....,,{110n n A A A A T -=,即在AB 内插入1-n 个分点 ,,.....,,121-n M M M 与A =n M B M =,0一起把曲线分 成n 个有向小曲线段 i i M M 1-),,2,1(n i = ,记 小曲线段i i M M 1-的弧长为i S ?.则分割 },,.....,,{110n n A A A A T -=的细度为}{max 1i n i S T ?=≤≤. 设力()y x F , 在x 轴和y 轴方向上的投影分别为),(y x P

第三章 样条插值和曲线拟合

第三章样条插值与曲线拟合 学习目标:掌握分段线性插值、分段Hermite插值、样条插值 方法以及贝齐尔曲线拟合曲 线的方法。重点是分段线性 插值、分段Hermite插值、样 条插值。

1901年龙格(Runge )给出一个例子: ,定义在区间[-1,1]上,这是一个很光滑的函数,它的任意阶导数都存在,对它在[-1,1]上作等距节点插值时,插值多项式的情况见图1 §1 多项式插值的龙格现象 22511)(x x f +=

俄罗斯数学家伯恩斯坦(C.H.Bernstein )在1916年还给出如下定理。 定理1 函数 在[-1,1]上取n 个等距节点 ,构造n-1次插值多项式 ,当n 增大时,除了-1,0,1三点外,在[-1,1]中任何点处都不收敛于 。 x x f = )(1,11=-=n x x )(1 x P n -x 上述介绍的现象和定理告诉我们用高次插值多项式是不妥当的,从数值计算上来看也是这样,前一章介绍过的差分的误差传播会随阶数的提高越来越严重,因此,实践上作插值时一般只用一次、二次,最多用三次插值多项式。而提高插值精度的方法,可采用分段插值:

譬如在[a,b]上定义的连续函数 ,在[a,b]上取节点 构造一个分段一次多项式 ,即 在 上为 由一次插值的余项知在 上, )(x f b x x x x a n n =<<<<=-121 )(x L )(x L ],[1+i i x x i i i i i i i i x x x x x f x x x x x f --+--++++1111)()() )()(,,()()()(11++--=-=i i i i x x x x x x x f x L x f x R ],[1+i i x x 228 )(h M x R ≤

Excel竖曲线计算

利用Excel表格进行全线线路竖曲线的统一计算 高速公路纵断面线型比较复杂,竖曲线数量比较多。由于相当多的竖曲线分段造成了设计高程计算的相对困难,为了方便直接根据里程桩号计算设计高程,遂编制此计算程序。 程序原理: 1、根据设计图建立竖曲线参数库; 2、根据输入里程智能判断该里程位于何段竖曲线上; 3、根据得到的竖曲线分段标志调取该分段的曲线参数到计算表格中; 4、把各曲线参数带入公式进行竖曲线高程的计算; 5、对程序进行优化和简化,去掉中间环节,进行直接计算; 6、防止计算过程中的误操作,对计算表进行相应的保护。 竖曲线的高程计算原理公式: H=G+B*A+(-1)^J*X2÷(2R) H: 计算里程的设计高程 K: 计算点里程 D: 竖曲线交点里程 G: 竖曲线交点的高程 R: 竖曲线半径 T: 切线长 M: 前坡度I1 P: 后坡度I2 A: A=Abs(K-D) X: A>T => X=0; A X=T-A J: M-P<0 => J=0; M-P>=0 => J=1 B: K<=D =>B=-M ; K>D => B=P 程序特色: 1、可以无限添加竖曲线,竖曲线数据库不限制竖曲线条数; 2、直接输入里程就可以计算设计高程,不需考虑该里程所处的竖曲线分段; 3、对计算公式进行保护,表格中不显示公式,不会导致公式被错误修改或恶意编辑。 程序的具体编制步骤: 1、新建Excel工作薄,对第一第二工作表重新命名为“参数库”和“计算程序”,根据设计图建立本标段线路竖曲线的参数库,需要以下条目: (1)、竖曲线编号; (2)、竖曲线的前后坡度(I1、I2)不需要把坡度转换为小数; (3)、竖曲线半径、切线长(不需要考虑是凸型或凹型); (4)、竖曲线交点里程、交点高程; (5)、竖曲线起点里程、终点里程(终点里程不是必要参数,只作为复核检测用); 如图1所示:

缓和段曲线参数及超高、加宽计算

第三节 缓和段 一、缓和曲线 缓和曲线是设置在直线与圆曲线之间或大圆曲线与小圆曲线之间,由较大圆曲线向较小圆曲线过渡的线形,是道路平面线形要素之一。 1.缓和曲线的作用 1)便于驾驶员操纵方向盘 2)乘客的舒适与稳定,减小离心力变化 3)满足超高、加宽缓和段的过渡,利于平稳行车 4)与圆曲线配合得当,增加线形美观 2.缓和曲线的性质 为简便可作两个假定:一是汽车作匀速行驶;二是驾驶员操作方向盘作匀角速转动,即汽车的前轮转向角从直线上的0°均匀地增加到圆曲线上。 S=A 2/ρ(A :与汽车有关的参数) ρ=C/s C=A 2 由上式可以看出,汽车行驶轨迹半径随其行驶距离递减,即轨迹线上任一点的半径与其离开轨迹线起点的距离成反比,此方程即回旋线方程。 3.回旋线基本方程 即用回旋线作为缓和曲线的数学模型。 令:ρ=R ,l h =s 则 l h =A 2/R

4.缓和曲线最小长度 缓和曲线越长,其缓和效果就越好;但太长的缓和曲线也是没有必要的,因此这会给测设和施工带来不便。缓和曲线的最小长度应按发挥其作用的要求来确定: 1)根据离心加速度变化率求缓和曲线最小长度为了保证乘客的舒适性,就需控制离心力的变化率。a 1=0,a 2=v 2/ρ,a s =Δa/t ≤0.6 R V l h 3 035 .0≥ 2)依驾驶员操纵方向盘所需时间求缓和曲线长度(t=3s) 2 .16.3V t V vt l h == = 3)根据超高附加纵坡不宜过陡来确定缓和曲线最小长度 超高附加纵坡(即超高渐变率)是指在缓和曲线上设置超高缓和段后,因路基外侧由双向横坡逐渐变成单向超高横坡,所产生的附加纵坡。 p h l c h ≥ 4)从视觉上应有平顺感的要求计算缓和曲线最小长度 缓和曲线的起点和终点的切线角β最好在3°——29°之间,视觉效果好。 《公路工程技术标准》规定:按行车速度来求缓和曲线最小长度,同时考虑行车时间和附加纵坡的要求。

三次样条插值

3.6三次样条插值 一、教学目标及基本要求 通过对本节的学习,使学生掌握三次样条插值方法。 二、教学内容及学时分配 本章主要介绍线性方程求根的迭代法的加速方法。要求 1.了解数值分析的三次样条函数及有关概念。 2.正确理解三次样条差值的基本思想、数学原理、算法设计。 3.了解插值是数值逼近的重要方法之一,正确理解三次样条插值的基本思想、计算公式、算法设计、程序框图设计和源程序。 4.掌握三次样条差值原理和程序设计方法。 三、教学重点难点 1.教学重点:三次样条函数、三次样条插值。 2. 教学难点:三次样条插值。 四、教学中应注意的问题 多媒体课堂教学为主。适当提问,加深学生对概念的理解,迭代加速的算法实现。 五、教案正文 一 样条函数的概念 分段线性插值在节点处没有连续的一阶导函数,其光滑性较差。对于飞机的机翼的型线及船舶型往往要求有二阶光滑度(即在节点处要求二阶导函数连续)。 样条函数的概念来源于工程设计的实践。所谓“样条”(spline)是早期工程设计中的一种绘图工具,它是富有弹性的细长条。绘图时,用压铁迫使样条通过指定的型值点,并保证样条的光滑外形。在绕度不大的情况下,样条的曲线即为三次样条函数。 二 几何意义

三 构造三次样条函数的理论分析 如上图所示,通过已知的六个点,构造5个三次多项式函数分别是:红色、蓝色、黑色、紫色和绿色5根曲线。为确定一根曲线,就需要确定4个待定系数,所以总共需要4*5=20个待定系数。 另外,分析需要的约束条件。 每一根函数都要过已知的左右两个点,则有5*2=10个约束条件。 此外,每两个相邻曲线在相邻点处要求充分光滑,即在连接点处左右两个函数在该点具有1次和2次的导函数连续,图中有4个“中间点”,故又有4*2=8个约束条件。 若在整个图形的两端在加2个约束条件,整个3次样条函数就确定了。如: ①左右两端点上的1阶导函数已知; ②左右两端点上的2阶导函数已知,如()()00n S x S x ′′′′==(称为自然边界条件); ③若原来的函数f(x)是以xn-x0为周期的周期函数,则y0=yn,且()()000n S x S x ′′′′+=?。

Matlab程序三次样条插值函数

已知一组数据点,编写一程序求解三次样条插值函数满足 并针对下面一组具体实验数据 求解,其中边界条件为. 解:Matlab计算程序为: clear clc x=[0.25 0.3 0.39 0.45 0.53] y=[0.5000 0.5477 0.6245 0.6708 0.7280] n=length(x); for i=1:n-1 h(i)=x(i+1)-x(i); end for i=1:n-2 k(i)=h(i+1)/(h(i)+h(i+1)); u(i)=h(i)/(h(i)+h(i+1)); end for i=1:n-2 gl(i)=3*(u(i)*(y(i+2)-y(i+1))/h(i+1)+k(i)*(y(i+1)-y(i))/h(i)); end g0=3*(y(2)-y(1))/h(1); g00=3*(y(n)-y(n-1))/h(n-1); g=[g0 gl g00]; g=transpose(g) k1=[k 1]; u1=[1 u]; Q=2*eye(5)+diag(u1,1)+diag(k1,-1) m=transpose(Q\g) syms X; for i=1:n-1 p1(i)=(1+2*(X-x(i))/h(i))*((X-x(i+1))/h(i))^2*y(i); p2(i)=(1-2*(X-x(i+1))/h(i))*((X-x(i))/h(i))^2*y(i+1); p3(i)=(X-x(i))*((X-x(i+1))/h(i))^2*m(i); p4(i)=(X-x(i+1))*((X-x(i))/h(i))^2*m(i+1);

相关文档