1樓:匿名使用者
解答如下:
分兩個步驟:
第一步建立函式模型的m檔案
開啟m編輯器,輸入如下**;
function yd=model(beta0,x)
%% l/1+a*exp(-b*x)
a=beta0(1);
b=beta0(2);
l=beta0(3);
x1=x;
yd=l./(1+a.*exp(-b.*x1));
儲存這個m檔案到work資料夾下,名稱為:model
第二步:在命令視窗中輸入如下**:
x=[0 1 2 3 4 5 6 7 8 9]';
y=[1 2.31969 4.50853 6.
90568 6.00512 5.56495 5.
32807 7.56101 8.9392 9.
5817]';
beta0=[3 0.3 11];
[beta,r,j]=nlinfit(x,y,'model',beta0)
執行後得到如下結果:
beta =
3.5457 0.3194 10.8337
r =-1.3833
-0.7098
0.7359
2.3149
0.5556
-0.7416
-1.7921
-0.2955
0.4443
0.5539
j =-0.5243 0 0.2200
-0.6155 2.1823 0.2797
-0.6935 4.9176 0.3483
-0.7461 7.9359 0.4238
-0.7638 10.8325 0.5031
-0.7432 13.1754 0.5822
-0.6883 14.6416 0.6573
-0.6088 15.1101 0.7253
-0.5171 14.6675 0.7842
-0.4243 13.5395 0.8334
其中的beta =
3.5457 0.3194 10.8337
依次便是方程的係數:a=3.5457 b=0.3194 l=10.8337
所以迴歸的結果是:
y=10.8337./(1+3.5457.*exp(-0.3194.*x))
畫出影象,在命令視窗中輸入如下**:
x=[0 1 2 3 4 5 6 7 8 9]';
x1=0:0.1:10;
y=[1 2.31969 4.50853 6.
90568 6.00512 5.56495 5.
32807 7.56101 8.9392 9.
5817]';
y1=10.8337./(1+3.5457.*exp(-0.3194.*x1));
plot(x,y,'+',x1,y1)
計算x=10的估計值,輸入如下**:
x=10;
回車執行後得到結果為:
y =9.4584
matlab擬合工具箱自定義函式中 中輸入y=l./(1+a*exp(-bt))出現錯誤,要擬合的函式是 泊松曲線,該怎麼輸入
2樓:匿名使用者
這個表示式輸入跟一般的書寫是一致的,不需要用點乘、點除之類的,直接寫表示式,但是乘除符號是必須要有的.你這個表示式明顯是錯的,「y=l./(1+aexp(-bt))」,這裡是
「l/」,「a*exp」,「b*t」,即:y=l/(1+a*exp(-b*t)).
再一個,使用自定義的函式表示式擬合時,其中的引數(l,a,b)是需要指定範圍的(當你輸入完函式表示式後,在表示式下方就會出現引數範圍設定),根據你自己的實際問題大概估計一下範圍就行,一般不能直接按照matlab預設的-inf到+inf去擬合,這樣往往弄不出來你想要的結果.
3樓:
點乘;或-b*t;試一下
請教如何用matlab擬合指數函式曲線:y=a*exp(b*x),不用cftool,用函式
4樓:匿名使用者
clc;clear
x=;%自己給資料
y=;%自己給資料
p=polyfit(x,log(y),1);
b=p(1);
a=p(2);
yfit=a*exp(b*x);
plot(x,y,'r-.')
plot(x,yfit,'b-.')
legend('擬合前','擬合後')
用matlab擬合 y=a*exp(x-b) 怎麼寫?
5樓:匿名使用者
你的擬合資料呢。發出來啊。
改成如下,試試。要點乘的
fun=inline('a(1).*exp(a(3).*(x-a(2)))','a','x')
6樓:匿名使用者
x=[......]
y=[......]
fun=inline('a(1)*exp(x-a(2))','a','x')
a=lsqcurvefit(fun,[0 0],x,y)a=a(1)
b=a(2)
求問怎麼在matlab中用縮張演算法擬合richards函式y =k / (1+a*exp(-bx))m?
7樓:匿名使用者
解答如下:分兩個步驟:第一步建立函式模型的m檔案開啟m編輯器,輸入如下**;functionyd=model(beta0,x)%%l/1+a*exp(-b*x)a=beta0(1);b=beta0(2);l=beta0(3);x1=x;yd=l.
/(1+a.*exp(-b.*x1));儲存這個m檔案到work資料夾下,名稱為:
求用y=a*exp(b*x)+c的方程用matlab來擬合,求引數值。 25
8樓:我行我素
從圖上可以看出,選用y=a*exp(b*x)+c進行擬合是不對的,應改用polynomial中的
cubic polynomial,我試著擬合得:
linear model poly3:
f(x) = p1*x^3 + p2*x^2 + p3*x + p4
where x is normalized by mean 2007 and std 3.028
coefficients (with 95% confidence bounds):
p1 = 1.903e+006 (-3.354e+007, 3.734e+007)
p2 = 2.888e+007 (5.686e+005, 5.719e+007)
p3 = 7.472e+007 (1.333e+007, 1.361e+008)
p4 = 1.204e+008 (8.642e+007, 1.543e+008)
goodness of fit:
sse: 5.048e+015
r-square: 0.922
adjusted r-square: 0.883
rmse: 2.901e+007
畫出圖如下,
matlab中已知x,y資料,如何非線性擬合得到方程y=a/(1+(a/60.2-1)*exp(-b*x))中的a,b的值。
9樓:匿名使用者
目前沒想到什麼好方法,僅做參考:
最大似然法:
令f(x,y | a,b)=y-a/(1+(a/60.2-1)*exp(-b*x)),令(x_i, y_i)為一個樣本點。
那麼均方誤差e(a,b)=sum_^n 。
令grad(e)=0,求得最優的a和b。
可以查一查偏微分方程的數值解法,自己寫一個程式,解grad(e)=0。
10樓:小狐狸的利爪
先輸入x和y的資料。然後在matlab的工作欄輸入cftool.在彈出來的擬合工具箱內選擇變數為你的x和y.
然後右邊的擬合方法選擇custom equation,然後輸入你要擬合的式子的形式,按fit就可以擬合了。
用matlab求y=100-100*exp(-b*x^a)的引數a,b
11樓:匿名使用者
可以用非線性最小二乘法。由於本問題的特殊性,可以轉化為線性最小二乘法來求解。
首先,將原函式變形為:
ln(100-y)-ln(100)=-b*x^a
ln(100/(100-y))=b*x^a 記z=ln(100/(100-y)),則:
ln(z)=ln(b)+a*ln(x) 記y=ln(z),x=ln(x),beta=ln(b)則:
y=beta+a*x
然後線性擬合函式polyfit(x,y,1).(matlab是用最小二乘擬合的)
具體的m檔案:
clc;clear;
x=[3,10,20,30,40];
y=[0.024,0.129,0.163,0.201,0.268];
x=log(x);
y=log(log(100./(100-y)));
p=polyfit(x,y,1);
a=p(1)
beta=p(2);
b=exp(beta)
matlab 指數曲線擬合:y=a*exp((t-b)^2/c)
12樓:匿名使用者
定義擬合函
來數:function s=hansh(x,r)a=x(1);
b=x(2);
c=x(3);
s=a*exp((r-b)^2/c);
主函自數:
t=[219 222 223 226 229 233];
y=[352 2353 3513 6303 3521 3300]; %你的資料少個y
x0=[1 1 1]; %對a,b,c賦初值
[x,resnorm]=lsqcurvefit(@hansh,x0,t,y) %最小二乘曲線擬合
13樓:流浪的醉人
clear
t=[219 222 223 226 229];%你給的資料有問題,請自行調整
y0=[352 2353 3513 6303 3521];
y1=ones(size(y0),1);
y1=log(y0);%對原方程兩邊取對數p=polyfit(t,y1,2);%p為擬合多項式的係數,降冪排列c=1/p(1);%把取回對數後的式子整理答一下,就可以得到abc跟p的對應關係
b=-p(2)*c/2;
a=exp(p(3)-b^2/c);abc
14樓:匿名使用者
同意二樓做法,應該使用最佳平方逼近,但你的資料好像有問題啊
Matlab應用matlab怎麼用函式求超調量 上升時間等,不是在圖上顯示。如圖題目
幾種方法 1 利用控制系統工具箱的step求階躍響應,然後通過滑鼠操作在階回躍響應曲線上直答接獲取相關效能指標 g tf 25,1 4 25 step g 注意調節時間的誤差帶以及上升時間的定義可以通過properties對話方塊設定。2 利用二階系統的效能指標公式求,其中wn 5,zeta 0.4...
幫忙用matlab擬合一下這個多元函式
x1 0.1160 0.1020 0.1010 0.1000 0.0910 0.0830 0.0840 0.0760 x2 0.1780 0.2253 0.2869 0.4176 0.1548 0.1457 0.1240 0.0896 y 0.1863 0.2760 0.2396 0.3203 1....
用MATLAB求函式的泰勒展開式
syms x taylor exp 2 x 7 用matlab求函式的5階泰勒級數式。syms x taylor 1 2 x x 3 0.5 1 3 x x 2 1 3 x,expansionpoint 0,order 6 ans 239 x 5 72 119 x 4 72 x 3 x 2 6 結果...