⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csape.m

📁 演示matlab曲线拟和与插直的基本方法
💻 M
字号:
% CSAPE   庬乆偺抂揰忦審晅偒偺僉儏乕價僢僋僗僾儔僀儞曗娫
%
% PP  = CSAPE(X,Y) 偼丄儔僌儔儞僕儏(Lagrange)抂揰忦審(壓昞偺僨僼僅儖僩)傪
% 巊偭偰丄梌偊傜傟偨僨乕僞 (X,Y) 傊偺僉儏乕價僢僋僗僾儔僀儞曗娫(pp-宆)傪
% 弌椡偟傑偡丅曗娫偼丄僨乕僞僒僀僩 X(j) 偱丄梌偊傜傟偨僨乕僞抣 Y(:,j), 
% j=1:length(X) 偲堦抳偟傑偡丅僨乕僞抣偼丄僗僇儔丄儀僋僩儖丄峴楍丄傑偨偼
% N師尦攝楍偱偡丅摨偠僒僀僩偺僨乕僞揰偼丄暯嬒壔偝傟傑偡丅
% 僌儕僢僪壔偝傟偨僨乕僞偺曗娫偵偮偄偰偼丄埲壓傪嶲徠偟偰偔偩偝偄丅
%
% PP  = CSAPE(X,Y,CONDS) 偼丄抂揰忦審偺抣 endcondvals 偵懳墳偡傞 CONDS 
% 偱巜掕偝傟偨抂揰忦審傪巊偄傑偡丅
% 僨乕僞抣偑僨乕僞僒僀僩傛傝2偮懡偄応崌丄嵟弶(嵟屻)偺僨乕僞抣偼丄嵍懁
% (塃懁)偺抂揰忦審偵懳偡傞抣偲偟偰摼傜傟傑偡丅偡側傢偪丄
% endcondvals = Y(:,[1 end]) 偱偡丅
% 偦傟埲奜偼丄僨僼僅儖僩抣偑巊傢傟傑偡丅
%
% CONDS 偼丄嵟弶偺暥帤偑丄'complete'丄'clamped'丄'not-a-knot'丄'periodic'丄
% 'second'丄'variational' 偺1偮偲堦抳偡傞偮偓偺堄枴傪傕偮 *暥帤楍* 偱偡丅:
%
% 'complete'    : 抂揰偱偺岡攝傪堦抳偝偣傑偡(*default* 偺傛偆偵僨僼僅儖僩
%                 偲偟偰梌偊傜傟傑偡)
% 'not-a-knot'  : 嵟弶偲嵟屻偺撪晹偺僽儗乕僋億僀儞僩傪捠傞僗僾儔僀儞 C^3 
%                 傪嶌惉偟傑偡(傕偟偁傞応崌偼丄梌偊傜傟偨抂揰忦審偺抣傪
%                 柍帇偟傑偡)丅
% 'periodic'    : 嵟弶偺揰偱偺1師偍傛傃2師旝暘傪嵟屻偺揰偺傕偺偲堦抳
%                 偝偣傑偡丅
%                 (傕偟偁傞応崌偼丄梌偊傜傟偨抂揰忦審偺抣傪柍帇偟傑偡)
% 'second'      : 抂揰偺2師旝暘傪(壜曄偱梌偊傜傟偨傛偆偵丄僨僼僅儖僩偱偼
%                 [0 0])堦抳偝偣傑偡丅
% 'variational' : 抂揰偺2師旝暘傪僛儘偵摍偟偔偟傑偡丅
%                 (傕偟偁傞応崌偼丄梌偊傜傟偨抂揰忦審偺抣傪柍帇偟傑偡)
% *default*     : 抂揰偱偺孹偒傪丄偦傟偧傟偺抂揰偱嵟弶偺4偮偺僨乕僞偲
%                 堦抳偡傞僉儏乕價僢僋偺孹偒偲堦抳偝偣傑偡丅
%
% 戙傢傝偵 CONDS 傪1峴2楍偺峴楍偲偟偰梌偊傞応崌丄2偮偺抂揰偵偍偄偰堎側傞
% 忦審傪梌偊傞偙偲偑偱偒傑偡丅嬶懱揑偵偼丄CONDS(i) 偼 i=1 (i=2) 偺偲偒丄
% 嵍(塃)偺抂揰傪昞傢偡 endcondvals(:,i) 偲側傝傑偡丅
%
% CONDS(i)=j 偼丄j師偺旝暘偑 endcondvals(:,i)丄i=1,2丄偵側傞傛偆偵愝掕
% 偝傟傞偙偲傪堄枴偟傑偡丅CONDS(1)=0=CONDS(2) 偼丄廃婜揑抂揰忦審傪堄枴
% 偟傑偡丅
%
% CONDS(i) 偼丄愝掕偝傟偰偄側偄偐丄傑偨偼 0, 1, 2 偲堎側傞応崌丄CONDS(i) 
% 偺僨僼僅儖僩抣偼1偵側傝丄endcondvals(:,i) 偺僨僼僅儖僩抣偑愝掕偝傟傑偡丅
% 抂揰忦審偺抣偑巜掕偝傟側偗傟偽丄endcondvals(:,i) 偺僨僼僅儖僩抣偼丄
% 埲壓偵側傝傑偡丅
%
%    CONDS(i)=1 側傜偽丄嵟嬤愙偺4揰偵懳偡傞僉儏乕價僢僋曗娫偺旝暘
%    CONDS(i)=2 側傜偽丄0
%
% 壓埵屳姺惈偵娭偟偰偼丄擟堄偺4斣傔偺擖椡堷悢偲偟偰丄1曄悢偺僨乕僞偵懳偟偰
% 偺傒 endcondvals 傪巜掕偡傞偙偲偑壜擻偱偡丅
%
% 偝傜偵丄X 傪m屄偺1曄悢偺儊僢僔儏傪娷傓僙儖攝楍偲偟丄偦傟偵懳偟偰丄Y 傪
% m師尦攝楍(傑偨偼丄娭悢偑戝偒偝 d 偺抣傪傕偮応崌丄(m+length(d))師尦偺
% 攝楍)偲偡傞偙偲偵傛傝丄僌儕僢僪壔偝傟偨僨乕僞傪庢傝埖偆偙偲傕壜擻偱偡丅
% 摨條偵丄CONDS 偼丄m屄偺梫慺傪傕偮僙儖攝楍偱丄巊梡偝傟傞僥儞僜儖愊偺
% 庤弴偲堦抳偟丄偝傜偵1曄悢偺抂揰忦審偺僥儞僜儖愊偼丄梌偊傜傟偨抣偲嫟偵
% 幚峴偝傟傑偡丅埲壓偺椺戣傪嶲徠偟偰偔偩偝偄丅
%
% 偨偲偊偽丄
%
%    fnplt(csape( [0:4], [1 0 -1 0 1;0 1 0 -1 0], 'periodic')), axis equal
%
% 偼丄墌傪僾儘僢僩偟丄
%
%    x = linspace(0,2*pi,21);  pp = csape( x, [1 sin(x) 0], [1 2] );
%
% 偼丄嬫娫 [0 .. 2*pi] 偱偺惓尫娭悢偺揔愗側嬤帡傪梌偊傑偡(i=1:21 偺
% 偡傋偰偺 x(i) 偱偺抣偵壛偊偰丄嵍懁偺抂揰 x(1) = 0 偱岡攝1丄塃懁偺抂揰 
% x(21) = 2*pi 偱2師旝暘0偵堦抳偟傑偡)丅
%
% 懡曄悢偺愝掕偵偍偗傞抂揰忦審偺巜掕偵偮偄偰愢柧偟傑偡丅偙傟偼2曄悢3師
% 懡崁幃 g(x,y) = x^3y^3 偐傜惗惉偝傟偨柧帵揑側僨乕僞傪傕偮姰慡側2曄悢
% 3師偺曗娫偱丄岡攝偑偳偙偐丄傑偨岡攝偺拞偺岡攝(偡側傢偪丄岎嵎旝暘(cross 
% derivative))偑丄梌偊傜傟偨僨乕僞抣偺偳偙偵攝抲偝傟側偗傟偽側傜側偄偐傪
% 娙扨偵尒傜傟傞傛偆偵偟偰偄傑偡丅g 偼2曄悢3師懡崁幃偱偁傞偨傔丄曗娫 f 
% 偼丄g 偦偺傕偺偱側偗傟偽側傝傑偣傫丅偙傟傪僥僗僩偟傑偡丅
%
%      sites = {[0 1],[0 2]}; coefs = zeros(4,4); coefs(1,1) = 1;
%      g = ppmak(sites,coefs);
%      Dxg = fnval(fnder(g,[1 0]),sites);
%      Dyg = fnval(fnder(g,[0 1]),sites);
%      Dxyg = fnval(fnder(g,[1 1]),sites);
%      f = csape(sites,[Dxyg(1,1),   Dxg(1,:),    Dxyg(1,2); ...
%                       Dyg(:,1), fnval(g,sites), Dyg(:,2) ; ...
%                       Dxyg(2,1),   Dxg(2,:),    Dxyg(2,2)], ...
%                                                {'complete','complete'});
%      if any(squeeze(fnbrk(f,'c'))-coefs), 'something went wrong', end
%
% 懡曄悢儀僋僩儖抣偺椺戣偲偟偰丄偁傞堦曽岦偵掕傔傜傟偨岡攝偲懠曽岦偺
% 廃婜揑側抂揰忦審傪巊偭偨僷儔儊僩儕僢僋2曄悢僉儏乕價僢僋僗僾儔僀儞偲
% 偟偰丄媴柺傪峫偊傑偡丅
%
%   x = 0:4; y=-2:2; s2 = 1/sqrt(2);
%   clear v
%   v(3,:,:) = [0 1 s2 0 -s2 -1 0].'*[1 1 1 1 1];
%   v(2,:,:) = [1 0 s2 1 s2 0 -1].'*[0 1 0 -1 0];
%   v(1,:,:) = [1 0 s2 1 s2 0 -1].'*[1 0 -1 0 1];
%   sph = csape({x,y},v,{'clamped','periodic'});
%   values = fnval(sph,{0:.1:4,-2:.1:2});
%   urf(squeeze(values(1,:,:)),squeeze(values(2,:,:)),squeeze(values(3,:,:)))
%   % 慜偺2峴偼丄fnplt(sph) 偱抲偒姺偊傜傟傑偡丅
%   axis equal, axis off
%
% 嶲峫 CSAPI, SPAPI, SPLINE.


%   Copyright 1987-2004 C. de Boor and The MathWorks, Inc.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -