matlab中,關於多元函式的擬合matlab程式如何書寫?(4自變數1因變數)

時間 2021-08-11 17:55:48

1樓:匿名使用者

題主的(4自變數1因變數)多元函式的擬合matlab程式。可以用nlinfit非線性迴歸函式來做(也可以用lsqcurvefit函式)。實現**:

x1=[0.55 0.65 0.65 0.65 0.65 0.55 0.55 0.55 0.65]';

x2=[1.6 1.6 1.4 1.6 1.4 1.4 1.6 1.4 1.4]';

x3=[20 20 20 10 10 20 20 20 20]';

x4=[10 10 10 10 10 10 12 12 12]';

y=[1.848 3.145 3.337 3.022 3.188 1.97 1.63 1.621 2.534]';

x=[x1 x2 x3 x4];

n=length(x1);

a0=rand(1,5);

func=@(a,x)(a(1)+a(2)*x(:,1)+a(3)*x(:,2)+a(4)*x(:,3)+a(5)*x(:,4));

[a,r,j] = nlinfit(x,y,func,a0);a

y1=func(a,x);

[y  y1]

執行上述**,可以得到

a1= -1.52778571412534;a2= 11.4823809522886;a3=  -0.

359047619087202 ;a4= 0.00441190476147387;a5=-0.23363095238449

多元函式表示式,y=a1+a2*x1+a3*x2+a4*x3+a5*x4

nlinfit與lsqcurvefit兩者區別並不太大,前者用迴歸的方法來求解,而後者用最小二乘法來求解,兩者都可以用於非線性函式和線性函式。

2樓:暴血長空

如果不確定應變數和自變數的關係,可以考慮使用神經網路來擬合

matlab有自帶的神經網路工具箱,可以自己研究下,不需要編碼,按照介面的要求自己一步步來就可以了。

matlab如何擬合得到5個自變數,一個因變數的函式,急求!高手請相助,分數奉上~

3樓:

matlab可以做函式擬合,沒問題。

如果能已知函式關係,只是待定引數的話,會很容易。

否則,就得自己猜一個函式關係,這樣麻煩些;如果蒙不到正確的函式形式就很難有好效果了。

4樓:五味子芊

matlab 至少可以通過如下幾個方法得到你的結果。

使用統計工具箱

1 多元線性擬合 regress函式可以直接實現,非常簡單。此做法類似於對資料進行了線性最小二乘擬合,其實也就是接了超定方程。但是在實際問題中,多數都不是用線性關係可以描述的。

2 自行構建函式關係式,使用非線性擬合函式nlinfit,還有諸如fittype lsqcurvefit之類的函式,但是你得自己想函式表示式。

我通常採用的方式是使用人工神經網路工具箱進行處理。通過調整bp引數得到比較滿意的結果。但是這種做法產生的是一個數學模型,而不是具體的函式表示式。

MATLAB中的DEBLANK函式

多瑙的萊茵 deblank函式是用來刪除字串中尾部空格的一個函式。在matlab中輸入help deblank就可以檢視其用法,在裡面都有詳細介紹。matlab處理字串的函式還有 strcmp 比較兩個字串是否完全相等,是,返回真,否則,返回假 strncmp 比較兩個字串前n個字元是否相等,是,返...

matlab怎麼畫複數函式,matlab 中複數如何表示?我i前面已經有 就是表示不出來 不知到為什麼

我叫王土土豆 1 雙擊matlab軟體圖示,開啟matlab軟體,可以看到matlab軟體的介面。2 建立一個陣列u u 0 0.2 6 表示從0到6,每個0.2取一個數字。3 建立一個複數v,v 0.02 i。4 使用u和v建立一個複數函式z z exp v u 5 使用函式feather z 繪...

關於matlab的quad函式,matlab中quad命令點除點乘,是什麼意思? quad x 4 1 x 2 ,

quadl q.p sin p 1,2,2 這個函式的變數是q而不是p,符號計算時,matlab自動呼叫函式確定變數,預設為最靠近x的作為變數 盧憐陽衡芬 y x 4 3 sqrt 1 2 3 2.sin x 2 true quad y,0,2 pi 按上面語句試試 x 表示函式以x為自變數,mat...