matlab樣條擬合插值後獲得曲線方程

時間 2021-08-11 18:16:25

1樓:匿名使用者

網頁連結檢視**中*pp - 分段多項式*部分通過pp=spline(x,y)

得到結構體,然後呼叫

pp.coefs

檢視每個分段下的多項式的係數

注意- 對於區間 [x1,x2] 上的係數 [a,b,c,d],對應的多項式為

f(x)=a(x−x1)^3+b(x−x1)^2+c(x−x1)+d .

2樓:真

這些插值方法最後一般得到的是分段的多項式函式,有pp或b兩種儲存形式。

舉個例子

clear;clc;

x=1:4;

y=sin(x);

p=spline(x,y)

執行後可以看到結構體p如下

p =form: 'pp'

breaks: [1 2 3 4]

coefs: [3x4 double]

pieces: 3

order: 4

dim: 1

它是一個3段多項式分段函式(pp),斷點為[1 2 3 4](即1~2、2~3、3~4三段),每個分段函式為一個多項式,多項式的係數儲存在coefs裡,每一行代表一個分段函式。

輸入p.coefs

ans =

0.1177 -0.7711 0.7212 0.8415

0.1177 -0.4180 -0.4679 0.9093

0.1177 -0.0649 -0.9508 0.1411

就可以知道多項式的表示式了,比如第二行表示函式:0.1177*(x-2)^3-0.4180*(x-2)^2 -0.4679*(x-2)+0.9093(這個2就是斷點)

這個分段函式的定義域為2~3,如果你要算2.5的插值,只要把他代入這個函式,就得到了這個多項式即可,當然用matlab只要輸入命令ppval(p,2.5)就可以了

求問,matlab來做三次樣條插值,如何得到插值的函式表示式

3樓:yueyue元

x=[1:1:10];

y=[2:2:20];

pp=interp1(x,y,'spline','pp')

breaks=pp.breaks

coefs=pp.coefs

三次樣條插值

du(cubic spline interpolation)簡稱spline插值,是通過一系列形值zhi點的一條光dao滑曲線,數學上專通過求解屬三彎矩方程組得出曲線函式組的過程。

實際計算時還需要引入邊界條件才能完成計算。一般的計算方法書上都沒有說明非扭結邊界的定義,但數值計算軟體如matlab都把非扭結邊界條件作為預設的邊界條件。

在工程上,構造三次樣條插值函式通常有兩種方法:

一是以給定插值結點處得二階導數值作為未知數來求解,而工程上稱二階導數為彎矩,因此,這種方法成為三彎矩插值。

二是以給定插值結點處得一階導數作為未知數來求解,而一階導數右稱為斜率,因此,這種方法稱為三斜率插值。

4樓:宇逸

>> x=[0.2:0.2:1.0];

y=[0.98 0.92 0.81 0.64 0.38];

>> pp=spline(x,y)

>> pp.coefs

ans =

-0.1042 -0.5625 -0.

1833 0.9800-0.1042 -0.

6250 -0.4208 0.9200-0.

7292 -0.6875 -0.6833 0.

8100-0.7292 -1.1250 -1.

0458 0.6400返回的是三次bai樣條插

du值zhi函dao數每段回

的係數,三次樣條插值每段是三次多項式。答

5樓:小標悠悠

clcclear

x=[0.2:0.2:1.0];

y=[0.98 0.92 0.81 0.64 0.38];

figure(3)

plot(x,y)

hold on

p=spline(x,y);

y=ppval(p,x);

plot(x,y,'k')

hold off

6樓:劉施施

=[0.2:0.2:1.0]; y=[0.98 0.92 0.81 0.64 0.38];

matlab中spline求三次樣條插值的函式表示式

7樓:匿名使用者

x = -4:4; y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0];

cs = spline(x,[0 y 0]);

xx = linspace(-4,4,101);

plot(x,y,'o',xx,ppval(cs,xx),'-');

例如上述matlab自帶的例子,

cs.breaks是各段擬合曲線的段點,如上述**,結果為[-4 -3 -2 -1 0 1 2 3 4]

cs.coefs是給段擬合曲線的擬合係數,[-4 -3]這段區間的曲線表示式為

y = 0.2034*(x+4)^3  - 0.0534*(x+3)^2

matlab中插值擬合的問題,我用數值方法求得微分方程後,然後畫出了該函式的曲線。

8樓:匿名使用者

你的微分方程及初始條件貼出來嗎?可以試著幫你解決。

matlab曲線擬合和曲線插值問題

9樓:匿名使用者

先輸入x=[1 1.5 .......];

y=[-1.4 2.7 ......];

p=polyfit(x,y,2);%二次多項式p=polyfit(x,y,3);%三次多項式......

p=polyfit(x,y,10);%十次多項式其中p是一個

行向量,版p(1)儲存最高次冪的多項式係數,知道權最後一個儲存常數項例如 p=polyfit(x,y,2);就返回長度為3的p,代表多項式

p(x)=p(1)*x^2+p(2)*x+p(3);

用函式polyval(p,x)就可以計算多項式的值輸入時間t序列

輸入溫服度t序列

interp1(t,t,[10 12],'spline')

matlab線性擬合

刻舟不為劍 線性擬合如下 x 0 20 40 60 100 130 160 190 y 18 17.586 17.136 16.704 15.84 15.129 14.544 13.896 a polyfit x,y,1 xi 0 0.001 200 yi polyval a,xi plot x,y...

matlab擬合問題

直接用左除就行了 定義x和y為如下形式 y y1 y2.y56 x 1 x11 x12 x16 1 x21 x22 x26 1 x56,1 x56,2 x56,6 然後a x y 就出來了 曲線你有6個自變數怎麼畫啊 你把a0,a1,a2,a3,a4,a5,a6看成未知數。把你的56個資料代入 y1...

matlab三維散點圖的擬合,matlab三維散點圖的擬合

風箏等風 用引數方程。要根據具體的資料具體分析。資料也許不一定適合用曲線擬合,而是在某個曲面上。如果用曲線擬合,一般可考慮用引數方程。引數方程和函式很相似 它們都是由一些在指定的 集的數,稱為引數或自變數,以決定因變數的結果。例如在運動學,引數通常是 時間 而方程的結果是速度 位置等。定義 一般的,...