関数MKPPは、多項式をシフトx = 0
して、指定した対応する範囲の先頭から開始するようにします。最初の例では、多項式x^3
は範囲 にシフトされるため、シフトされていない範囲 で[1 2]
多項式を評価する場合は、次の手順[0 1]
を実行する必要があります。
>> pp = mkpp(1:2,[1 0 0 0]); %# Your polynomial
>> ppval(pp,1.5+pp.breaks(1)) %# Shift evaluation point by the range start
ans =
3.3750 %# The answer you expect
2 番目の例では、1 つの多項式x^3
が の範囲にシフトされ、[1 1.5]
別の多項式x^3
が の範囲にシフトされます[1.5 2]
。で区分的多項式を評価するx = 1.5
と、2 番目の多項式の開始時に発生するゼロの値が得られます。
次のように、作成している多項式を視覚化すると役立つ場合があります。
x = linspace(0,3,100); %# A vector of x values
pp1 = mkpp([1 2],[1 0 0 0]); %# Your first piecewise polynomial
pp2 = mkpp([1 1.5 2],[1 0 0 0; 1 0 0 0]); %# Your second piecewise polynomial
subplot(1,2,1); %# Make a subplot
plot(x,ppval(pp1,x)); %# Evaluate and plot pp1 at all x
title('First Example'); %# Add a title
subplot(1,2,2); %# Make another subplot
plot(x,ppval(pp2,x)); %# Evaluate and plot pp2 at all x
axis([0 3 -1 8]) %# Adjust the axes ranges
title('Second Example'); %# Add a title
