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 ...