Matlab 样条工具箱(Spline ToolBox)
本文介紹了用matlab進行樣條曲線的建立操作與繪制;示例給出了樣條曲線的建立,求值,求導(dǎo),繪制
Matlab樣條工具箱中的函數(shù)提供了樣條的建立,操作,繪制等功能;
一. 樣條函數(shù)的建立
第一步是建立一個樣條函數(shù),曲線或者曲面。這里的樣條函數(shù),根據(jù)前綴,分為4類:
cs* 三次樣條
pp* 分段多項式樣條,系數(shù)為t^n的系數(shù)
sp* B樣條, 系數(shù)為基函數(shù)B_n^i(t)的系數(shù)
rp* 有理B樣條
二. 樣條操作
樣條操作包括:函數(shù)操作:求值,算術(shù)運算,求導(dǎo)求積分等等
節(jié)點操作:主要是節(jié)點重數(shù)的調(diào)節(jié),設(shè)定,修改等等
三. 簡單示例
% step1: load ctrlpoints and knots
load data_example
% step 2: create the spline
sp = spmak(knots,ctrlpoints');
fnplt(sp,[knots(5),knots(42)]);
% step 3: get points on the curve
dt = knots(5):3:knots(42);
p = fnval(sp,dt);
plot(p(1,:),p(2,:),'.g')
% step 4: get dir draw normals
dp1 = fnder(sp);
dp = fnval(dp1,dt);
len = size(dt,2);
for i = 1:len
dir = dp(:,i);
scale = 1/sqrt(dir(1)^2+dir(2)^2);
dir = dir*scale;
plot([p(1,i),p(1,i)+dir(2)],[p(2,i),p(2,i)-dir(1)],'r');
end
示例結(jié)果
附:樣條工具箱函數(shù)
1. 三次樣條函數(shù)
csapi 插值生成三次樣條函數(shù)
csape 生成給定約束條件下的三次樣條函數(shù)
csaps 平滑生成三次樣條函數(shù)
cscvn 生成一條內(nèi)插參數(shù)的三次樣條曲線
getcurve 動態(tài)生成三次樣條曲線
2. 分段多項式樣條函數(shù)
ppmak 生成分段多項式樣條函數(shù)
ppual 計算在給定點處的分段多項式樣條函數(shù)值
3. B樣條函數(shù)
spmak 生成B樣條函數(shù)
spcrv 生成均勻劃分的B樣條函數(shù)
spapi 插值生成B樣條函數(shù)
spap2 用最小二乘法擬合生成B樣條函數(shù)
spaps 對生成的B樣條曲線進行光滑處理
spcol 生成B樣條函數(shù)的配置矩陣
4. 有理樣條函數(shù)
rpmak 生成有理樣條函數(shù)
rsmak 生成有理樣條函數(shù)
5. 樣條操作函數(shù)
fnval 計算在給定點處的樣條函數(shù)值
fmbrk 返回樣條函數(shù)的某一部分(如斷點或系數(shù)等)
fncmb 對樣條函數(shù)進行算術(shù)運算
fn2fm 把一種形式的樣條函數(shù)轉(zhuǎn)化成另一種形式的樣條函數(shù)
fnder 求樣條函數(shù)的微分(即求導(dǎo)數(shù))
fndir 求樣條函數(shù)的方向?qū)?shù)
fnint 求樣條函數(shù)的積分
fnjmp 在間斷點處求函數(shù)值
fnplt 畫樣條曲線圖
fnrfn 在樣條曲線中插入斷點。
fntlr 生成tarylor系數(shù)或taylor多項式
6. 樣條曲線端點和節(jié)點處理函數(shù)
augknt 在已知節(jié)點數(shù)組中添加一個或多個節(jié)點
aveknt 求出節(jié)點數(shù)組元素的平均值
brk2knt 增加節(jié)點數(shù)組中節(jié)點的重次
knt2brk 從節(jié)點數(shù)組中求得節(jié)點及其重次
knt2mlt 從節(jié)點數(shù)組中求得節(jié)點及其重次
sorted 求出節(jié)點數(shù)組的元素在另一節(jié)點數(shù)組中屬于第幾個分量
aptknt 求出用于生成樣條曲線的節(jié)點數(shù)組
newknt 對分段多項式樣條函數(shù)進行重分布
optknt 求出用于內(nèi)插的最優(yōu)節(jié)點數(shù)組
chbpnt 求出用于生成樣條曲線的合適節(jié)點數(shù)組
原帖:http://hi.baidu.com/ck436/blog/item/ffd71c4ceba65af4d72afc82.html
歡迎訪問我的專業(yè)知識博客!
博主:白途思(begtostudy)
微信/QQ:370566617
Email:begtostudy#gmail.com
歡迎訪問我的其他博客:我的編程知識博客 我的學(xué)術(shù)知識博客
總結(jié)
以上是生活随笔為你收集整理的Matlab 样条工具箱(Spline ToolBox)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果被指控其供应链可能沾染“血矿”,刚果
- 下一篇: 北京:推进数字疗法、AI 辅助治疗等产品