三次样条函数的疑问

yunhaiC QQ71444468 2009-07-24 12:06:11
已知函数y=f(x)的数表如下表所示
x 0 0.15 0.30 0.45 0.60
y 1 0.97800 0.91743 0.83160 0.73529

求满足边界条件
s'(0)=0,s'(0.60)=-0.64879的三次样条函数s(x)

我真是超级郁闷,s'(0)=0,s'(0.60)=-0.64879这两个端点的一阶导数值到底怎么根据上面的数表得来的???????

我实际应用中只有点啊,哪里会像题目一样给出一阶导数值??????

怎么求解啊,怎么来的?
...全文
364 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
donkey301 2009-07-24
三次样条函数是要有一些边界条件才能确定,要不然这个样条函数就不是唯一的。
你自己的数据只有点值,那么你就需要自己定边界条件,譬如就让s'(0)=0,s'(0.60)=-0.64879,那么可以求出一个样条函数。
但如果定成s'(0)=1,s'(0.60)=2,那求出的样条函数就不一样了。
回复
donkey301 2009-07-24
你先假设s=ax^3+bx^2+cx+d
一阶导就是3ax^2+2bx+c
回复
[Quote=引用 7 楼 yunhaiC 的回复:]
引用 5 楼 a88015056 的回复:

边界条件不是随便设的。。有条件的。。周期函数的和非周期函数的边界条件有差别。。

一般都是自然边界条件。周期函数的边界条件上有S(FIRST)=S(LAST),S'(FIRST)=S'(LAST),或者S''(FIRST)=S''(LAST),

求解三次样条需要满足的要求为,凑出4N个方程。N为(数据个数-1)。

首先,端点函数值构造出N+1个方程。
其次,函数连续构造出N-1个方程。
再次,函数一阶导数连续构造出N-1个方程。
然后…
[/Quote]
是没有办法用追赶法求出M1与Mn
回复
[Quote=引用 5 楼 a88015056 的回复:]
边界条件不是随便设的。。有条件的。。周期函数的和非周期函数的边界条件有差别。。

一般都是自然边界条件。周期函数的边界条件上有S(FIRST)=S(LAST),S'(FIRST)=S'(LAST),或者S''(FIRST)=S''(LAST),

求解三次样条需要满足的要求为,凑出4N个方程。N为(数据个数-1)。

首先,端点函数值构造出N+1个方程。
其次,函数连续构造出N-1个方程。
再次,函数一阶导数连续构造出N-1个方程。
然后,函数二阶导数连续构造出N-1个…
[/Quote]
就算“非周期函数直接以自然边界条件约束”在用追赶法求解结果的时候是求不出来的,因为那样算的结果会是0,说不明白,因为没办法画图
回复
[Quote=引用 4 楼 donkey301 的回复:]
引用 3 楼 yunhaiC 的回复:

引用 2 楼 donkey301 的回复:
三次样条函数是要有一些边界条件才能确定,要不然这个样条函数就不是唯一的。
你自己的数据只有点值,那么你就需要自己定边界条件,譬如就让s'(0)=0,s'(0.60)=-0.64879,那么可以求出一个样条函数。
但如果定成s'(0)=1,s'(0.60)=2,那求出的样条函数就不一样了。


那就奇怪了,我怎么样设定边界条件?标准是什么?怎么样根据我的边界条件得出的样条函数达到最好的效…
[/Quote]
你的观点我现在保留
回复
a88015056 2009-07-24
边界条件不是随便设的。。有条件的。。周期函数的和非周期函数的边界条件有差别。。

一般都是自然边界条件。周期函数的边界条件上有S(FIRST)=S(LAST),S'(FIRST)=S'(LAST),或者S''(FIRST)=S''(LAST),

求解三次样条需要满足的要求为,凑出4N个方程。N为(数据个数-1)。

首先,端点函数值构造出N+1个方程。
其次,函数连续构造出N-1个方程。
再次,函数一阶导数连续构造出N-1个方程。
然后,函数二阶导数连续构造出N-1个方程。
累计4N-2个方程。
再加上两个边界条件。
一般由题目中给出,如果题目没有给出,则非周期函数直接以自然边界条件约束。周期函数以周期函数边界条件约束。
得到4N个方程组成的方程组。
回复
donkey301 2009-07-24
[Quote=引用 3 楼 yunhaiC 的回复:]
引用 2 楼 donkey301 的回复:
三次样条函数是要有一些边界条件才能确定,要不然这个样条函数就不是唯一的。
你自己的数据只有点值,那么你就需要自己定边界条件,譬如就让s'(0)=0,s'(0.60)=-0.64879,那么可以求出一个样条函数。
但如果定成s'(0)=1,s'(0.60)=2,那求出的样条函数就不一样了。


那就奇怪了,我怎么样设定边界条件?标准是什么?怎么样根据我的边界条件得出的样条函数达到最好的效果???
[/Quote]
怎么才算是最好的效果呢?如果有判断效果的判据,你再想如何得到一个好的样条函数。如果没有,那么任意的一个满足条件的样条函数都可以了,也就是说边界条件随便设,只要能得到唯一的一个解就行了。
回复
[Quote=引用 2 楼 donkey301 的回复:]
三次样条函数是要有一些边界条件才能确定,要不然这个样条函数就不是唯一的。
你自己的数据只有点值,那么你就需要自己定边界条件,譬如就让s'(0)=0,s'(0.60)=-0.64879,那么可以求出一个样条函数。
但如果定成s'(0)=1,s'(0.60)=2,那求出的样条函数就不一样了。
[/Quote]

那就奇怪了,我怎么样设定边界条件?标准是什么?怎么样根据我的边界条件得出的样条函数达到最好的效果???
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告