0
我正在使用matlab曲線擬合工具箱來擬合我的數據曲線。我已經使用了三次樣條曲線,它的曲線非常合適,但我希望看到使用的公式。有沒有辦法做到這一點?如何在Matlab擬合工具箱中顯示公式?
此外,有沒有辦法顯示代碼?我的意思是代碼被用來適合工具箱的曲線?
編輯:我能夠得到如下代碼,file-> generate code。 但我仍然需要找到方程,任何人都可以告訴我我該怎麼做?
謝謝。
我正在使用matlab曲線擬合工具箱來擬合我的數據曲線。我已經使用了三次樣條曲線,它的曲線非常合適,但我希望看到使用的公式。有沒有辦法做到這一點?如何在Matlab擬合工具箱中顯示公式?
此外,有沒有辦法顯示代碼?我的意思是代碼被用來適合工具箱的曲線?
編輯:我能夠得到如下代碼,file-> generate code。 但我仍然需要找到方程,任何人都可以告訴我我該怎麼做?
謝謝。
我不確定如何在圖上顯示任何方程,但您應該能夠使用命令spline和unmkpp複製三次樣條插值。
% returns the piecewise polynomial form of the cubic spline interpolant
pp = spline(x,Y)
% use unmkpp(pp) to get the piecewise polynomial details
[breaks,coefs,l,k,d] = unmkpp(pp)
請注意,您將在分段多項式中爲每件作品提供一組係數。例如:
x = -4:4;
y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0];
% cs stores the piecewise polynomial
cs = spline(x,[0 y 0]);
% extract the coefficients
[breaks,coefs,l,k,d] = unmkpp(cs)
% the endpoints of each of the polynomial pieces
breaks =
-4 -3 -2 -1 0 1 2 3 4
% 8 sets of coefficients (each set of 4 coefficients for one polynomial piece)
coefs =
0.20344 -0.05344 0.00000 0.00000
-0.09033 0.55689 0.50344 0.15000
-0.39211 0.28589 1.34622 1.12000
0.14878 -0.89045 0.74167 2.36000
0.13699 -0.44411 -0.59289 2.36000
0.13325 -0.03313 -1.07012 1.46000
-0.05998 0.36661 -0.73663 0.49000
-0.06334 0.18668 -0.18334 0.06000
% the number of pieces is 8
l = 8
% order is 4 (so 4 coefficients)
k = 4
d = 1
% plot the interpolation
xx = linspace(-4,4,101);
plot(x,y,'o',xx,ppval(cs,xx),'-');
謝謝,我在命令窗口中這樣做,這是它的工作原理,第=花(深度,CNCF) PP = 形式: 'PP' 符: 1x4427 double] coefs:[4426x4 double] pieces:4426 order:4 dim:1看起來這些是關於數據的信息,但是如何得到方程?我添加了這一行,[break,coefs,l,k,d] = unmkpp(pp),但是我得到很多行數據,每個數據包含11個值,這些是係數? – Dania
您有4426個獨立的多項式碎片。每片是具有4個對應係數的三次多項式。沒有一個方程:你有4426個單獨的方程,它們被分割在一起。這就是爲什麼你的健康看起來如此光滑;每個多項式只適合您的數據的一小部分! –
非常感謝,這是一個很好的解釋,但你能幫我解決這個問題,我不知道如何解釋係數。它是從右向左交叉點,x^1,x^2,x^3嗎?謝謝。 – Dania