功能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
在你的第二個例如,您有一個多項式x^3
已移至範圍[1 1.5]
,另一個多項式x^3
已移至範圍[1.5 2]
。在x = 1.5
處評估分段多項式給出的值爲零,發生在第二個多項式的開始處。
它可以幫助您可視化都使得多項式如下:
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

我在這個一直盯着這麼久了...謝謝!如果我想在某些向量點評估它,我該怎麼做?有比ppval更好的功能嗎? – Xodarap 2010-11-16 16:53:54
@ Xodarap:您可以將點的向量傳遞給[PPVAL](http://www.mathworks.com/help/techdoc/ref/ppval.html),如上面的示例代碼示例所示。 – gnovice 2010-11-16 17:01:26