文档介绍:课程设计报告
课程名称: 数值分析
题目: 用三次样条插值设计中英文签名
院系:
专业:
班级:
学号:
姓名:
时间:
目录
1、理论分析(含问题分析,理论依据,求解对策等);
2、方法详解(含推导、求解、分析、程序框图等);
3、应用实例(含程序清单、计算结果输出、图形演示等);
4、效果分析(含对不同方法间的图形、数值等多方位的对比分析,对所得结果的合理解释等)
理论分析:
问题分析
(1)设计自己的英文签名,给出一组数据点,用三次样条曲线画出所设计的英文签名的字体。
(2)设计你的草体汉字签名,给出一组数据点,分别用三次样条曲线画出所设计的中文签字的字体.
(3)如果设计出的三次样条不满意,怎么改进算法?
分析思想
要设计出英(中)文签名,首先、要获得与自己英(中)文签名相似的一组数据点,最好这组数据点的获取可因名字的改变而改变且简单易行,以适应不同的签名;其次、要选用合适的算法,才能设计出较美观的签名,问题要求用三次样条插值做,若效果不满意,改进时可选择其他算法;最后、选择合适数学工具和备用改进算法,合适的数学工具能大大简化我们的工作量,获得满意结果。备用的改进算法的提出可以引导我们在下面的课程设计中注意基本算法的不足,多思考,勤探究。
理论依据
交互式界面
交互式界面即窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现获取数据、计算、绘图等。要使数据点可因名字的改变而改变且简单易行,以适应不同的签名,可采用交互式界面进行操作。如我们可以用鼠标点击获取名字大致的数据点,显然,不同名字可以实现能得到不同数据点。在MATLAB中,可以用ginput()函数轻松实现这一功能。
三次样条插值算法
在区间[a,b]上给定有n+1个节点的分割:a=x<x<…<x]=b。若在[a,b]上定义的函数s(x)满足:
(1)在子区间[x,x]上s(x)是最高为三次的多项式,i=0,1,… n-1;
(2)在[a,b]上s(x)是二阶连续可微函数,即s(x)C[]。则称s(x)为[a,b]上关于分割的三次样条函数。S(x)对应的曲线称为三次样条曲线。若s(x)还满足
(3)S(x)=y=f,i=0,1,…,n则称s(x)为[a,b]上关于分割的三次样条插值函数,f(x)称为被插函数。
三次样条插值函数对应的曲线称为三次样条插值曲线。
我们知道分段低次插值的优点是具有收敛性与稳定性,缺点是光滑性较差,、船体放样形值线、精密机械加工等都要求有二阶光滑度,即二阶导数连续,通常三次样条(Spline)函数即可满足要求。所以对于签名,三次样条插值算法完全能够在给定的一组数据点下实现签名效果。
求解对策
对策
问题
选用合适的数学工具
双三次插值算法
选用改进算法
三次样条插值算法:可产生二阶光滑度,即二阶导数连续签名图样
选用合适的算法
采用交互式界面进行操作,用鼠标点击获取名字大致的数据点
获得与签名相似的一组数据点,最好可因名字的改变而改变
实现英(中)文签名
算法设计(推导、求解):
、三次样条插值函数的定义
样条(Spline)是绘图员用来描绘光滑曲线的均匀有弹性的细长木条(或有机玻璃条)。
用压铁将木条加以固定使它通过各型值点,最后沿着这根木条画出光滑曲线,作用与曲线板和云形规相似。我们称这条光滑的曲线为样条曲线,样条曲线对应的函数称为样条函数。它是连续的光滑的,具有连续变化的曲率,实际上就是一条三次样条曲线。
定义:在区间[a,b]上给定有n+1个节点的分割:a=x<x<…<x]=b。若在[a,b]上定义的函数s(x)满足:
(1)在子区间[x,x]上s(x)是最高为三次的多项式,i=0,1,… n-1;
(2)在[a,b]上s(x)是二阶连续可微函数,即s(x)C[]。则称s(x)为[a,b]上关于分割的三次样条函数。S(x)对应的曲线称为三次样条曲线。若s(x)还满足
(3)S(x)=y=f,i=0,1,…,n则称s(x)为[a,b]上关于分割的三次样条插值函数,f(x)称为被插函数。三次样条插值函数对应的曲线称为三次样条插值曲线。
同时我们还可以通过计算三次样条函数s(x)在节点上的一阶导数m=s(x)或二阶导数M=s(x),i=0,1,…,n的值来求过型值点。(x,y),i=0,1,…,n的三次样条函数。对应地可以导出称之为m关系式和关系式,它们分别是关于