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