matlab中nlinfit非線性擬合求引數

時間 2021-08-30 11:14:16

1樓:袁怡圃

補充回答:資料不好

建立函式檔案:

function y = myfun(beta,x)y = 2.350176*beta(1)*(1-1/beta(2))*(1-(1-x(:,1).

^(1/beta(2))).^beta(2)).^2.

*(x(:,1).^(-1/beta(2))-1).

^(-beta(2)).*x(:,1).

^(-1/beta(2)-0.5).*x(:

,2);

執行**:

x=[0.4292 0.4269 0.

381 0.4015 0.4117 0.

3017; 0.00014 0.00059 0.

0126 0.0061 0.00425 0.

0443];

x = x';

y=[0.517 0.509 0.44 0.466 0.479 0.309];

y = y';

beta=nlinfit(x,y,@myfun,[8 0.5])執行結果:

beta =

-55262931764.9336 0.0517

2樓:匿名使用者

clear all;

x1=[0.4292 0.4269 0.381 0.4015 0.4117 0.3017]';

x2=[0.00014 0.00059 0.0126 0.0061 0.00425 0.0443]';

x=[x1 x2];

y=[0.517 0.509 0.44 0.466 0.479 0.309]';

f=@(p,x) 2.350176*p(1)*(1-1/p(2))*(1-(1-x(:,1).

^(1/p(2))).^p(2)).^2.

*(x(:,1).^(-1/p(2))-1).

^(-p(2)).*x(:,1).

^(-1/p(2)-0.5).*x(:

,2);

p0=[8 0.5]';

opt=optimset('tolfun',1e-3,'tolx',1e-3);

[p r]=nlinfit(x,y,f,p0,opt)

matlab中非線性擬合函式nlinfit引數中那個beta0是怎麼確定的?

3樓:匿名使用者

確定beta0值是比較困難的,但可以通過rand( )函式來初定,再通過多次調整,才能得到滿意beta0值(當相對差

回值r都比較小)答。

本例的beta0可取

beta0 =[0.92181 0.73821 0.17627 0.40571]

執行後得到

k = 20.738 -2.6401 0.14569 2.9844

如何利用matlab擬合非線性迴歸函式的初始引數

4樓:匿名使用者

推薦你使用

一個函式nlinfit,我簡單給你介紹一下使用方法,以你的模型2為例: 第一步:你需要建立一個function檔案,名字隨便,這裡我們命名為"hougen",在這個檔案內,你要把模型二描述清楚,首先我們假定beta=[a;b;c;d;e;f;g];x=[x,y,m];

matlab 曲線擬合求函式的最佳引數時怎麼確定引數的初始值x=[2:16];

y=[6.42 8.2 9.

58 9.5 9.7 10 9.

93 9.99 10.49 10.

59 10.6 10.8 10.

6 10.9 10.76];

plot(x,y,'*');

% b0=;%待定引數的初始值

fun=inline('b(1)*(1-b(2)*exp(b(3)*x))','b','x');

[b,r,j]=nlinfit(x,y,fun);

br=sum(r.^2)%誤差的平方和

求用matlab解決非線性擬合問題求相關引數。題目在下邊

5樓:我行我素

這個擬合是可以做的,可把資料發過來,不要用**,因為**中的數字不能在程式中複製、貼上。我的qq2674716548

在matlab中求極限,在Matlab中 求極限

3 syms a x limit 1 a x 2 x x,inf ans exp 2 a 4 syms x y z x.2 y.2 exp x.2 y.2 x y dxy diff diff z,x y 5 syms x int exp x.2 2 0,1 ans 2 1 2 pi 1 2 erf ...

matlab怎麼呼叫m檔案,matlab中一個m檔案怎麼呼叫另一個m檔案的函式

用任何方式建立都行,包括記事本,或者是matlab自帶的編譯器,然後將matlab工作目錄切換到檔案所在目錄,直接輸入檔名執行。或者在任何目錄下輸入該檔案的完全路徑。m檔案有兩種格式,一種叫做script,就是將一系列的命令寫成一個檔案。執行這種檔案相當於一次性執行了很多條命令 所有執行過程中的資料...

matlab中矩陣寫入的問題,matlab中矩陣寫入txt文件的問題

521煙雨曉曉 先新建一個命名tt.txt的文件,在建一個m檔案,把這些copy進去就ok了。a 1 2 3 4 5 b 6 7 8 9 0 fid fopen tt.txt wt i size a j size b m max i 2 j 2 for k 1 m if k i 2 fprintf ...