Matlab 樣條工具箱(Spline ToolBox)[z]

來源:互聯網
上載者:User

本文介紹了用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

本文附帶代碼為:

如果無法下載,請聯絡ciweiyu@gmail.com
樣本結果

附:樣條工具箱函數
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://www.blogpetro.com/post/matlab-yangtiao-gongjuxiang.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.