ppval
区分的多項式の計算
説明
例
多次多項式をもつ区分的多項式の作成
区間 [0,4] で 3 次多項式、区間 [4,10] で 2 次多項式、区間 [10,15] で 4 次多項式をもつ区分的多項式を作成します。
breaks = [0 4 10 15]; coefs = [0 1 -1 1 1; 0 0 1 -2 53; -1 6 1 4 77]; pp = mkpp(breaks,coefs)
pp = struct with fields:
form: 'pp'
breaks: [0 4 10 15]
coefs: [3x5 double]
pieces: 3
order: 5
dim: 1
区間 [0,15] にある多数の点でこの区分的多項式を評価し、結果をプロットします。縦の破線を、多項式同士が接しているブレーク ポイントにプロットします。
xq = 0:0.01:15; plot(xq,ppval(pp,xq)) line([4 4],ylim,'LineStyle','--','Color','k') line([10 10],ylim,'LineStyle','--','Color','k')
繰り返される区分をもつ区分的多項式の作成
2 つの 2 次多項式の間で切り替わる 4 つの区間をもつ区分的多項式を作成し、プロットします。
最初の 2 つのサブプロットは、2 次多項式とその正負を逆転したものを、区間 [-8,-4] および [-4,0] にシフトして示しています。この多項式は以下のようになります。
3 番目のサブプロットは、これら 2 つの 2 次式を 4 つの区間で交互に切り替えて作成した区分的多項式を示しています。多項式が接する点を示すために縦線が追加されます。
subplot(2,2,1) cc = [-1/4 1 0]; pp1 = mkpp([-8 -4],cc); xx1 = -8:0.1:-4; plot(xx1,ppval(pp1,xx1),'k-') subplot(2,2,2) pp2 = mkpp([-4 0],-cc); xx2 = -4:0.1:0; plot(xx2,ppval(pp2,xx2),'k-') subplot(2,1,2) pp = mkpp([-8 -4 0 4 8],[cc;-cc;cc;-cc]); xx = -8:0.1:8; plot(xx,ppval(pp,xx),'k-') hold on line([-4 -4],ylim,'LineStyle','--') line([0 0],ylim,'LineStyle','--') line([4 4],ylim,'LineStyle','--') hold off
入力引数
出力引数
v
— クエリ点での区分的多項式の値
ベクトル | 行列 | 配列
クエリ点での区分的多項式の値。ベクトル、行列または配列として返されます。
pp
に値が [d1,..,dr]
の係数 (非スカラー係数値) がある場合、以下のようになります。
xq
が長さN
のベクトルである場合、v
のサイズは[d1,...,dr,N]
です。また、v(:,...,:,j)
はxq(j)
での値です。xq
のサイズが[N1,...,Ns]
である場合、v
のサイズは[d1,...,dr,N1,...,Ns]
で、v(:,...,:, j1,...,js)
はxq(j1,...,js)
での値です。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
以下のステートメントの両方に該当する場合、出力
v
のサイズは MATLAB® と一致しません。入力
xx
は、可変長ベクトルではない可変サイズの配列です。xx
は、実行時に行ベクトルになります。
この場合、コード ジェネレーターは大きさが 1 の次元を削除しません。ただし、MATLAB は大きさが 1 の次元を削除する場合があります。
たとえば、
xx
が :4 行 :5 列の配列であると仮定します (最初の次元は上限が 4 の可変サイズ、2 番目の次元は上限が 5 の可変サイズ)。また、ppval(pp,0)
は 2 行 3 列の固定サイズの配列を返すと仮定します。v
のサイズは 2×3×:4×:5 です。実行時には、size(x,1) =1 および size (x,2) = 5 と仮定します。生成されるコードで、size(v) は [2,3,1,5] となります。MATLAB では、サイズは [2,3,5] となります。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)