三次样条插值计算方法上机实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验 2 三次样条插值
1. 算法原理 S(x)是分段三次多项式;S(x)的二阶导数在区间[a,b]上连续。 求解步骤如下: (1)计算步长: hi xi xi 1 (2) i
hi hi 1 , i 1 i hi hi 1 hi hi 1
y y y yi 1 6 [ i 1 i i ] 6 f [ xi 1 , xi , xi 1 ], i 1, 2,3, , n 1. hi hi 1 hi 1 hi
系数: S= 0.3417 0.8933 0.8364 13.4083 -54.4694 54.4694 -13.4083 -0.8364 -0.8933 -0.3417 1.0251 2.3488 2.2465 17.3327 -23.3939 -23.3939 17.3327 2.2465 2.3488 1.0251 1.1133 2.1722 2.1108 8.1453 0.0000 0 -8.1453 -2.1108 -2.1722 -1.1133 0.4683 0.7507 0.7384 1.5430 1.0000 1.0000 1.5430 0.7384 0.7507 0.4683
4. 算例计算结果 此算例为课本 141 页计算实习求三次样条插值。 运行文件“scyt2.m”, 可得到三次样条插值函数与原函数的曲线, 其中虚线代 表三次样条插值函数曲线, 实线代表原函数曲线。 然后在命令窗口输入“S = scyt(x, y)”,回车后即可得到 S(x)的在各个区间的系数 a, b, c, d 的值。 结果如下: 曲线:
结束
3. 程序使用说明 本程序使用 MATLAB 来求解三次样条插值函数 S ( x) . 源程序文件 “scyt.m”为三次样条插值源程序, x,y分别为n+1个插值节点的 横坐标组成的向量和纵坐标组成的向量。 输入节点向量x, y后,在命令窗口输入S = scyt(x, y),回车后即可算出在区间 [ xi 1 , xi ]三次样条插值函数 S ( x) ax3 bx 2 cx d 表达式的系数a, b, c, d的值。 源程序文件 “scyt2.m”是计算实习算例的程序,直接运行即可得到结果。
hi 2 x xi 1 ( yi Mi ) , 6 hi
2. 程序框图
xi 1 x xi .
开始
输入节 点 x,y
计算 hi
计算μi ,λi
和 di
M0 Mn 0
追赶法解三弯矩方程组 求出 M1—Mn-1
将 M0—Mn 代入三次样 条插值公式
输出对应区 间的三次多 项式 S(X)
(3) di
(4)边界条件选取: M 0 M n 0 (5)三弯矩方程组
i M i 1 2M i i M i 1 di , i 1, 2,3, , n 1.
(6)解三弯矩方程组得:
S ( x)
( xi x)3 ( x xi 1 )3 h2 x x M i 1 M i ( yi 1 i M i 1 ) i 6hi 6hi 6 hi
比如当 x 在区间[-1, -0.来自百度文库]时, S ( x) 0.3417 x3 1.0251x 2 1.1133x 0.4683 , 以此类推可以得到其他区间 S ( x) 的表达式。
相关文档
最新文档