三次样条求导函数
- 格式:doc
- 大小:36.00 KB
- 文档页数:4
三次样条曲线推导过程三次样条曲线是一种常用的曲线插值方法,可以通过一系列已知控制点来生成平滑的曲线。
下面是推导三次样条曲线的基本过程:1.整理控制点:给定一组已知控制点P0, P1, P2, ..., Pn,其中每个点Pi的坐标为(xi, yi)。
我们的目标是找到一个曲线函数C(t),其中t的范围在[0, 1]之间。
2.定义曲线段:将整个插值范围[0, 1]划分为一系列曲线段,每个曲线段由相邻的两个控制点构成。
我们有n个控制点,则会有n个曲线段。
3.插值求解:对于每个曲线段,我们希望找到一条插值曲线,使得该曲线通过两个相邻控制点,并且在相邻曲线段的连接处保持平滑。
4.建立方程:为了推导每个曲线段的曲线方程,我们需要定义一些参数。
引入参数t,其中t的范围为[0, 1]。
假设我们有一个曲线段的控制点Pi和Pi+1。
我们需要定义两个参数h和u,其中h = xi+1 - xi,u = (t - xi) / h。
5.插值方程:通过插值方法,我们可以得到曲线段的插值方程。
一个典型的三次样条曲线方程为: C(t) = (1 - u)^3 * P_i+ 3 * (1 - u)^2 * u * P_i+1 + 3 * (1 - u) * u^2 * P_i+2 + u^3 *P_i+3这个方程表示了在t范围内从Pi到Pi+3的曲线。
对每个相邻的控制点对应的曲线段都应用相同的方法,然后将它们拼接在一起,就可以得到整个三次样条曲线。
请注意,以上是三次样条曲线的简化推导过程,实际的推导可能会涉及更多的数学推导和符号表示。
三次样条插值满足导数条件需要注意的地方三次样条插值,听起来是不是有点吓人?别急,今天我就来给你聊聊这个话题,保证你听了之后,不光能搞懂它,还能有点儿乐趣。
三次样条插值,说简单了,就是我们用一些数学工具,把一些离散的点通过平滑的曲线连起来。
它和我们平时画图、做设计时常用的“曲线拟合”差不多。
想想看,当你看到一张波浪起伏的图,心里想着:“这曲线可得平滑点!”——这就是三次样条插值的基本思想。
有人可能会想,哎呀,听起来挺复杂的,但其实呢,这里面的奥秘,并没有大家想象的那么深奥。
我们先从一个简单的角度来看看。
大家都知道,数学就像是一个万花筒,里面的世界五花八门,千变万化,而三次样条插值正是其中一个常见的“花样”。
如果你把数据点放在平面上,直接连成一条直线——这不行,太死板,不够平滑。
二次曲线呢?好像还行,但总觉得有点儿硬,像是拉面拉多了,还是没到那个火候。
可三次样条插值就不同,它通过对每段区间的曲线进行精细调控,确保每个数据点连接得既不生硬,也不突兀,好像拉面师傅巧妙地控制着面条的粗细,既有韧劲,又不失柔滑。
而讲到这里,很多朋友可能会问,那它是不是很简单?嗯,简单是简单,但有些细节得留意。
最典型的就是导数条件。
哎,你是不是也在心里翻个白眼,想说这又是什么鬼?别急,耐心听我解释。
导数,通俗点说,就是曲线的“斜率”,它决定了曲线在每个点的倾斜程度。
为了让这条插值曲线看起来不突兀,导数得保持一致性,不能忽高忽低。
就像是你在开车,路面如果时高时低,突然爬坡又急刹车,那驾驶体验不堪回首,特别容易晕车。
可如果导数条件得当,插值曲线就能顺滑地“过弯”,让你轻松自如地走完每一段。
好啦,咱们来细说几个地方,特别是那些需要注意的细节。
边界条件。
我们知道,样条曲线总得有个“头”和“尾”,这两端的处理可不是随便的事。
假如你不设定好边界条件,曲线可能会跑偏,偏离预期目标。
就像你约好时间去见朋友,结果迟到了,朋友早早等得不耐烦,最后两人都不高兴。
三次样条球导数1. 引言在数学和计算机图形学中,三次样条球是一种常用的曲面插值方法。
它可以通过一组给定的控制点,生成一个平滑的曲面。
而计算三次样条球的导数,则是为了获得曲面在各个方向上的变化率信息。
本文将介绍三次样条球导数的计算方法及其应用。
2. 三次样条球2.1 原理三次样条球是由一组控制点确定的曲面,其中每个控制点都有一个权重值。
这些权重值用于调整每个控制点对曲面造成的影响程度。
通过调整权重值,可以改变曲面在不同区域上的形状。
2.2 插值方法三次样条球使用插值方法来生成曲面。
插值是一种通过已知数据点推断未知数据点的技术。
对于三次样条球,我们需要提供一组控制点和相应的权重值作为输入数据,然后通过插值计算得到曲面上任意位置处的数值。
2.3 控制点与权重值在三次样条球中,控制点决定了曲线或曲面经过哪些位置。
而权重值则决定了每个控制点对曲线或曲面造成的影响程度。
通过调整权重值,可以改变曲线或曲面在不同区域上的形状。
2.4 曲面生成通过插值方法,我们可以计算三次样条球上任意位置处的数值。
这些数值可以用于生成曲面。
一种常用的生成方法是使用三角网格,将曲面离散化为一系列小三角形,并根据插值计算得到每个小三角形上的数值。
3. 三次样条球导数3.1 导数的定义导数描述了一个函数在给定点处的变化率。
对于三次样条球来说,导数提供了曲面在各个方向上的变化率信息。
通过计算导数,我们可以了解曲面在某一点处是朝向哪个方向变化,并且变化速率有多快。
3.2 导数计算方法为了计算三次样条球的导数,我们需要使用微积分中的差商公式。
差商公式允许我们通过已知数据点之间的差异来推断未知数据点之间的差异。
对于三次样条球来说,我们可以使用差商公式来推断曲面在不同方向上的斜率。
3.3 应用场景三次样条球导数在计算机图形学中有广泛的应用。
例如,在计算机动画中,我们可以使用曲面的导数来控制物体的运动轨迹。
通过调整导数值,我们可以实现物体在不同时间点上的平滑过渡和变形效果。
第12章三次样条众所周知,使用高阶多项式的插值常常产生病态的结果。
目前,有多种消除病态的方法。
在这些方法中,三次样条是最常用的一种。
在MATLAB中,实现基本的三次样条插值的函数有spline,ppval,mkpp和unmkpp。
在这些函数中,仅spline在《MATLAB参考指南》中有说明。
下面几节,将展示在M文件函数中实现三次样条的基本特征。
12.1 基本特征在三次样条中,要寻找三次多项式,以逼近每对数据点间的曲线。
在样条术语中,这些数据点称之为断点。
因为,两点只能决定一条直线,而在两点间的曲线可用无限多的三次多项式近似。
因此,为使结果具有唯一性。
在三次样条中,增加了三次多项式的约束条件。
通过限定每个三次多项式的一阶和二阶导数,使其在断点处相等,就可以较好地确定所有内部三次多项式。
此外,近似多项式通过这些断点的斜率和曲率是连续的。
然而,第一个和最后一个三次多项式在第一个和最后一个断点以外,没有伴随多项式。
因此必须通过其它方法确定其余的约束。
最常用的方法,也是函数spline所采用的方法,就是采用非扭结(not-a-knot)条件。
这个条件强迫第一个和第二个三次多项式的三阶导数相等。
对最后一个和倒数第二个三次多项式也做同样地处理。
基于上述描述,人们可能猜想到,寻找三次样条多项式需要求解大量的线性方程。
实际上,给定N个断点,就要寻找N-1个三次多项式,每个多项式有4个未知系数。
这样,所求解的方程组包含有4*(N-1)个未知数。
把每个三次多项式列成特殊形式,并且运用各种约束,通过求解N个具有N个未知系数的方程组,就能确定三次多项式。
这样,如果有50个断点,就有50个具有50个未知系数的方程组。
幸好,用稀疏矩阵,这些方程式能够简明地列出并求解,这就是函数spline所使用的计算未知系数的方法。
12.2 分段多项式在最简单的用法中,spline获取数据x和y以及期望值xi,寻找拟合x和y的三次样条内插多项式,然后,计算这些多项式,对每个xi的值,寻找相应的yi。
三次b样条的导数公式三次b样条是一种常用的插值曲线方法,它可以通过已知的数据点来构造一条平滑的曲线。
在三次b样条中,导数的计算是一个重要的问题,因为导数可以提供曲线在不同点的变化率信息。
本文将介绍三次b样条的导数公式及其应用。
三次b样条的导数公式可以通过插值多项式的求导来得到。
对于给定的数据点(xi, yi),我们可以通过插值多项式构造出一条平滑的曲线。
在每个数据点处,曲线的导数应与已知的导数值相等。
为了满足这个条件,我们需要在每个数据点处设置导数的约束条件。
对于每个数据点(xi, yi),我们可以通过下面的公式来计算该点处的导数值:f'(xi) = (1/6h)(-M_{i-1} + 2M_i - M_{i+1})其中,h是相邻数据点的间距,Mi是第i个数据点处的导数值。
这个公式中的导数值可以通过求解一个三对角线方程组来获得。
具体来说,我们可以将导数值表示为一个向量M=[M_0, M_1, ..., M_n],其中n是数据点的数量。
然后,我们可以通过解下面的方程组来求解M:2M_0 + M_1 = (6/h^2)(y_1 - y_0)M_i-1 + 4M_i + M_i+1 = (6/h^2)(y_i+1 - y_i-1)M_n-1 + 2M_n = (6/h^2)(y_n - y_n-1)这个方程组可以使用常见的线性方程组求解方法来解决,如高斯消元法或追赶法。
通过计算导数公式,我们可以得到曲线上每个点的导数值,从而提供曲线在不同点的斜率信息。
这对于许多应用非常重要,比如在图像处理中的边缘检测和曲线拟合中的拟合优度评估等。
需要注意的是,三次b样条的导数公式是基于已知的数据点进行计算的。
如果数据点的数量较少或者分布不均匀,导数的计算可能会受到影响。
在这种情况下,可以考虑使用其他插值方法或增加数据点的数量来提高导数的准确性。
总结起来,三次b样条的导数公式是通过插值多项式的导数计算得到的。
通过计算导数公式,我们可以获得曲线在不同点的导数值,从而提供曲线的变化率信息。
学习报告——三次样条函数插值问题的讨论班级:数学二班学号:*********姓名:***样条函数:由一些按照某种光滑条件分段拼接起来的多项式组成的函数;最常用的样条函数为三次样条函数,即由三次多项式组成,满足处处有二阶连续导数。
一、三次样条函数的定义:对插值区间[,]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 上的三次样条函数。
二、三次样条函数的确定:由定义可设:1012121(),[,](),[,]()(),[,]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个条件,一般上,实际问题通常对样条函数在端点处的状态有要求,即所谓的边界条件。
三次样条插值求导法三次样条插值法是一种常用的数值分析方法,用于近似插值实现平滑曲线的拟合。
它的优点在于可以保持原始数据的特性,同时能够降低数据间的噪声干扰,使得插值的结果更加准确。
本文将介绍三次样条插值法的原理、算法以及应用方面的指导意义。
首先,我们需要了解三次样条插值法的基本原理。
三次样条插值法通过在相邻数据点之间构造三次多项式来近似拟合原始数据。
这些三次多项式满足一定的光滑性条件,使得插值结果的曲线平滑而连续。
在三次样条插值中,每个数据点都对应一个三次多项式,并且相邻多项式之间的导数和二阶导数必须相等,以保证曲线的平滑性。
接下来,我们将介绍三次样条插值法的算法步骤。
首先,我们需要确定每个数据点对应的三次多项式。
为了满足光滑性条件,我们需要计算每个数据点处的导数值。
这可以通过求解一个线性方程组来实现,其中方程的个数等于数据点的个数。
解得导数值之后,我们就可以得到每个数据点对应的三次多项式的系数。
然后,我们需要利用这些系数来计算在数据点之间的插值结果。
为了实现这一点,我们可以利用三次多项式的性质,通过给定的数据点和对应的三次多项式系数,来计算在两个相邻数据点之间的插值结果。
最后,我们需要通过合理的选择数据点以及插值节点的间距,来获得更加准确的三次样条插值结果。
一般来说,数据点的选择应尽量满足曲线的变化趋势,以反映原始数据的特点。
此外,插值节点的间距也需要经过合理的选择,以保证插值结果的准确性。
三次样条插值法在实际应用中有着广泛的意义和指导价值。
首先,它可以用于光滑曲线的拟合,将离散的数据点进行连续化处理,使得数据的绘图和分析更加方便。
其次,它可以用于数据的插值预测,通过已有的数据点来预测未知数据点的取值。
此外,三次样条插值法还可以在数字图像处理中用于图像的平滑和插值填充,从而改善图像的质量和美观度。
综上所述,三次样条插值法是一种有效的数值分析方法,可以用于实现平滑曲线的拟合和数据的插值预测。
通过了解其原理、算法以及应用方面的指导意义,我们可以更好地理解和应用这一方法,从而提高数据处理和分析的准确性和效率。
导数与函数的三次样条插值一、导数的定义与性质导数是微积分中的重要概念,用于描述函数的变化率。
对于函数f(x),其导数表示为f'(x),定义如下:f'(x) = lim[(f(x+h) - f(x))/h],其中h趋近于0。
导数具有以下性质:1. 可微性:如果函数在某一点处可导,则必然在该点连续。
2. 右导数和左导数:函数在某一点处的导数,可以分为右导数和左导数。
右导数表示函数从右侧逼近该点时的导数值,左导数表示函数从左侧逼近该点时的导数值。
3. 导数与函数的关系:函数在一点处可导,则该点为函数的连续点。
但函数在某点连续,并不一定在该点可导。
二、三次样条插值的概念与原理样条插值是一种常用的插值方法,用于在给定的数据点上拟合出平滑的曲线。
三次样条插值是指拟合曲线为三次多项式的情况。
三次样条插值的原理如下:1. 分段插值:将整个插值区间划分为若干个子区间,每个子区间用一个三次多项式拟合。
2. 内插条件:对于每个子区间,函数在该区间的两个端点处,需要满足函数值与导数值的限制条件。
一般可以选择自然边界条件,即在两个端点处的二阶导数值为0。
3. 数值求解:根据给定的数据点,利用线性方程组的方法求解各个子区间的系数,并得到整体的插值函数。
三、导数与三次样条插值的关系导数与三次样条插值之间有着密切的联系。
在三次样条插值中,拟合曲线是一段段的三次多项式,这些多项式具有连续的一阶导数。
具体地说,对于三次样条插值中的每个子区间,其拟合曲线是一个三次多项式,设该多项式为P(x),则P(x)在该子区间上是连续可导的。
这意味着在子区间的内部,P(x)的导数f'(x)是存在的。
因此,三次样条插值不仅能够很好地拟合给定的数据点,还可以提供连续的导数值。
这对于很多应用场景来说非常重要,比如函数的光滑性要求较高的图像绘制、物理模拟等领域。
四、导数与三次样条插值的应用导数与三次样条插值在实际问题中具有广泛的应用。
三次样条插值求导法在数学和计算机科学领域中,样条插值是一种常用的数值计算方法,用于通过一系列已知的数据点来构造一条平滑的曲线。
在实际应用中,我们经常需要对这些曲线进行求导,以便进一步分析和处理数据。
三次样条插值是一种特殊的样条插值方法,它使用三次多项式来逼近数据点之间的曲线。
与线性插值方法相比,三次样条插值的优势在于它能够产生更平滑的曲线,并且在曲线的一阶导数和二阶导数上连续。
三次样条插值的求导方法可以通过两种方式进行:一种是通过求导的公式,另一种是通过样条插值的控制点求导。
首先,我们来看一下通过求导的公式来进行三次样条插值的导数计算。
对于每个插值段,我们可以表示为一个三次多项式的形式:S(x) = a + bx + cx^2 + dx^3,其中 a、b、c、d 是需要确定的系数。
在插值段的两个端点,我们可以通过已知的数据点来确定一些限制条件,例如函数值、一阶导数和二阶导数的值。
通过这些限制条件,我们可以得到一个线性方程组,通过解这个方程组可以确定每个插值段的系数。
当我们确定了系数之后,就可以利用求导的公式来计算任意一点的导数值。
对于三次多项式 S(x),它的导数可以表示为 S'(x) = b + 2cx + 3dx^2。
除了通过求导的公式,我们还可以通过样条插值的控制点来计算导数。
在三次样条插值中,除了已知的数据点之外,还有一些控制点,用于调整曲线的形状。
通过调整这些控制点,我们可以影响插值曲线的形态。
为了计算导数,我们可以对控制点进行微小的调整,然后重新构造插值曲线。
通过计算插值曲线在数据点处的斜率,我们可以得到导数的近似值。
通过反复调整控制点,不断逼近导数的准确值。
需要注意的是,通过控制点求导的方法只能得到导数的近似值,而不是准确值。
这是因为样条插值是一种近似方法,对于某些曲线,通过控制点调整可能无法完全准确地反映曲线的变化。
因此,当精确的导数值是必需的时候,最好使用求导的公式来计算。
§8 三次样条插值问题的提出:上面讨论的分段低次插值函数都有一致收敛性,但光滑性较差,对于像高速飞机的机翼形线,船体放样等型值线往往要求有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后画下长条的曲线,称为样条曲线。
它实际上是由分段三次曲线并接而成,在连接点即样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。
下面我们讨论最常用的三次样条函数。
三次样条函数:定义:函数],[)(2b a C x S ∈,且在每个小区间],[1+j j x x 上是三次多项式,其中b x x x a n =<<<=L 10是给定节点,则称)(x S 是节点n x x x ,,,10L 上的三次样条函数。
若在节点j x 上给定函数值),,1,0)((n j x f y j j L ==,并成立 ),,1,0()(n j y x S j j L ==,则称)(x S 为三次样条插值函数。
从定义知要求出)(x S ,在每个小区间],[1+j j x x 上要确定4个待定系数,共有n 个小区间,故应确定n 4个参数。
根据)(x S 在],[b a 上二阶导数连续,在节点)1,,2,1(−=n j x j L 处应满足连续性条件)0()0(+=−j j x S x S ,''(0)(0).j j S x S x −=+,).0()0(+′′=−′′j j x S x S 共有33−n 个条件,再加上)(x S 满足插值条件),,1,0()(n j y x S j j L ==,共有24−n 个条件,因此还需要2个条件才能确定)(x S 。
通常可在区间],[b a 端点n x b x a ==,0上各加一个条件(称为边界条件),可根据实际问题的要求给定。
常见的有以下三种:1° 已知两端的一阶导数值,即 n n f x S f x S ′=′′=′)(,)(00.2° 两端的二阶导数已知,即 ''00(),()n n S x f S x f ′′′′′′==, 其特殊情况 0)()(0=′′=′′n x S x S , 称为自然边界条件。
三次样条求导函数function ppd=ppder(pp)% pp=spline(x0,y0)[breaks,coefs,l]=unmkpp(pp);% breaks 是节点横坐标,coefs是每一段上的三次多项式的系数,l 是分的段数for n=1:lcoefs1(n,:)=polyder(coefs(n,:));endppd=mkpp(breaks,coefs1,1);%ppd 是一个类似pp 的结构体数据,计算这样的分段多项式的值可以用ppval(ppd,x)举例:>> pp=spline(linspace(0,2*pi,50),sin(linspace(0,2*pi,50)))pp =form: 'pp'breaks: [1x50 double]coefs: [49x4 double]pieces: 49order: 4dim: 1[breaks,coefs,l]=unmkpp(pp)breaks =Columns 1 through 120 0.1282 0.2565 0.3847 0.5129 0.6411 0.7694 ……..Columns 49 through 506.1550 6.2832coefs =-0.1643 -0.0007 1.0000 0-0.1643 -0.0639 0.9918 0.1279-0.1581 -0.1270 0.9673 0.2537…….0.1453 -0.2731 -0.8381 0.54550.1546 -0.2172 -0.9010 0.4339……-0.1503 0.2457 0.8713 -0.4907 -0.1581 0.1879 0.9269 -0.3753 -0.1643 0.1270 0.9673 -0.2537 -0.1643 0.0639 0.9918 -0.1279 l =49>> pp1=mkpp(breaks,coefs,1)pp1 =form: 'pp'breaks: [1x50 double]coefs: [49x4 double]pieces: 49order: 4dim: 1>>ppd=ppder(pp)ppd =form: 'pp'breaks: [1x50 double]coefs: [49x3 double]pieces: 49order: 3dim: 1>>ppval(pp,3)ans =0.1411>> sin(3)ans =0.1411>> ppval(ppd,3)ans =-0.9900>> cos(3)ans =-0.9900注意函数inline的使用下例是当函数要求输入变量是’函数名’,而且函数较简单且不常用,没有必要为了做积分再建一个函数M文件,就可以用inline来建一个临时的可调用的函数F = inline('1./(x.^3-2*x-5)');Q = quadl(F,0,2);注:1、看起来F因该是一个表示函数的字符串,其实>> F = inline('1./(x.^3-2*x-5)')F =Inline function:F(x) = 1./(x.^3-2*x-5)>> whosName Size Bytes ClassF 1x1 846 inline objectGrand total is 48 elements using 846 bytes.2、function y = myfun(x)y = 1./(x.^3-2*x-5)-------------------------------------------------------------------------------------Q = quadl(@myfun,0,2)或者Q = quadl('myfun',0,2)或者Q = quadl('1./(x.^3-2*x-5)',0,2)这几个形式都是quadl在编写过程中通过定义允许使用的形式,也就是说与quadl的编写有关。
三次样条求导函数
function ppd=ppder(pp)
% pp=spline(x0,y0)
[breaks,coefs,l]=unmkpp(pp);
% breaks 是节点横坐标,coefs是每一段上的三次多项式的系数,l 是分的段
数
for n=1:l
coefs1(n,:)=polyder(coefs(n,:));
end
ppd=mkpp(breaks,coefs1,1);
%ppd 是一个类似pp 的结构体数据,计算这样的分段多项式的值可以用
ppval(ppd,x)
举例:
>> pp=spline(linspace(0,2*pi,50),sin(linspace(0,2*pi,50)))
pp =
form: 'pp'
breaks: [1x50 double]
coefs: [49x4 double]
pieces: 49
order: 4
dim: 1
[breaks,coefs,l]=unmkpp(pp)
breaks =
Columns 1 through 12
0 0.1282 0.2565 0.3847 0.5129 0.6411 0.7694 …
…..
Columns 49 through 50
6.1550 6.2832
coefs =
-0.1643 -0.0007 1.0000 0
-0.1643 -0.0639 0.9918 0.1279
-0.1581 -0.1270 0.9673 0.2537
…….
0.1453 -0.2731 -0.8381 0.5455
0.1546 -0.2172 -0.9010 0.4339
……
-0.1503 0.2457 0.8713 -0.4907 -0.1581 0.1879 0.9269 -0.3753 -0.1643 0.1270 0.9673 -0.2537 -0.1643 0.0639 0.9918 -0.1279 l =
49
>> pp1=mkpp(breaks,coefs,1)
pp1 =
form: 'pp'
breaks: [1x50 double]
coefs: [49x4 double]
pieces: 49
order: 4
dim: 1
>>ppd=ppder(pp)
ppd =
form: 'pp'
breaks: [1x50 double]
coefs: [49x3 double]
pieces: 49
order: 3
dim: 1
>>ppval(pp,3)
ans =
0.1411
>> sin(3)
ans =
0.1411
>> ppval(ppd,3)
ans =
-0.9900
>> cos(3)
ans =
-0.9900
注意函数inline的使用
下例是当函数要求输入变量是’函数名’,而且函数较简单且不常用,没有必要为了做积分再建一个函数M文件,就可以用inline来建一个临时的可调用的函数F = inline('1./(x.^3-2*x-5)');
Q = quadl(F,0,2);
注:1、看起来F因该是一个表示函数的字符串,其实
>> F = inline('1./(x.^3-2*x-5)')
F =
Inline function:
F(x) = 1./(x.^3-2*x-5)
>> whos
Name Size Bytes Class
F 1x1 846 inline object
Grand total is 48 elements using 846 bytes.
2、function y = myfun(x)
y = 1./(x.^3-2*x-5)
-------------------------------------------------------------------------------------
Q = quadl(@myfun,0,2)或者Q = quadl('myfun',0,2)
或者Q = quadl('1./(x.^3-2*x-5)',0,2)
这几个形式都是quadl在编写过程中通过定义允许使用的形式,也就是说与
quadl的编写有关。