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中關於fread函式的用法
隨便什麼名啦啦 fread函式在matlab中的功能 fread函式可從檔案中讀取二進位制資料 用法 a fread fid,count a fread fid,count,precision 其中fid為指標所指檔案中的當前位置,count指讀取的資料個數,precision表示以什麼格式的資料型...
關於多元函式微分的問題,高等數學,多元函式微分的問題?
寒白業曼珍 x e u cosv,y e u sinv,u ln x y v arctan y x ux 2x x y vx y x y uy 2y x y vy x x y z uv,zu v,zv u.ux,vx,uy,vy,zu,zv分別表示它們關於下標的偏導數 故dz dx zu ux zv...
MATLAB中的DEBLANK函式
多瑙的萊茵 deblank函式是用來刪除字串中尾部空格的一個函式。在matlab中輸入help deblank就可以檢視其用法,在裡面都有詳細介紹。matlab處理字串的函式還有 strcmp 比較兩個字串是否完全相等,是,返回真,否則,返回假 strncmp 比較兩個字串前n個字元是否相等,是,返...