『壹』 matlab指數函數y=a+b*exp(-x)擬合,求參數a,b,已知兩組數據y,x
應該不可以,matlab擬合為多項式函數,此處是一個解線性方程問題,代碼如下,只要填入四個已知數,運行即可
clear
all;
clc;
x1=;y1=;
x2=;y2=;
syms
a
b;
f1=a+b*exp(-x1)-y1;
f2=a+b*exp(-x2)-y2;
[a
b]=solve(f1,f2);
double(a)
double(b)
『貳』 指數函數的擬合
先把點的y坐標求一下log,變成一個線性函數的擬合問題,然後再用最小二乘法。
『叄』 怎樣用matlab指數函數擬合
擬合函數表達式:y=a*exp(b+cx)
式中a=0.06154920769,
b=-3.18125203,
c=7.822374803
擬合度0.9725(相關系數)
用V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I)模型比較好。
A = nlinfit(X,Y,myfun,[700 -0.01 -700 -1 ])
I=min(X):0.1:max(X);
V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I);
plot(X,Y,'o',I,V)
結果:A =668.9571 -0.0688 -656.7991 -1.0321
意義
a>1時,Y隨X增大而增大,先快後慢;0<a<1時,Y隨X增大而減少,先快後慢。當以Y和lnX繪制的散點圖呈直線趨勢時,可考慮採用對數函數描述Y與X之間的非線性關系,式中的b和a分別為斜率和截距。
曲線直線化是曲線擬合的重要手段之一。對於某些非線性的資料可以通過簡單的變數變換使之直線化,這樣就可以按最小二乘法原理求出變換後變數的直線方程,在實際工作中常利用此直線方程繪制資料的標准工作曲線,同時根據需要可將此直線方程還原為曲線方程,實現對資料的曲線擬合。
以上內容參考:網路-曲線擬合
『肆』 matlab對指數函數的擬合
用V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I)模型比較好。
clear;
X=[0.490667 0.955333 1.544 1.940667 2.48 3.026667 3.966667 4.453333 5.073333 6.033333 7.04]
Y=[253.3333 381 450 503.6667 532 520 489 481.3333 459 438.3333 422]
myfun=inline('A(1)*exp(A(2)*x)+A(3)*exp(A(4)*x)','A','x')
A = nlinfit(X,Y,myfun,[700 -0.01 -700 -1 ])
I=min(X):0.1:max(X);
V=A(1)*exp(A(2)*I)+A(3)*exp(A(4)*I);
plot(X,Y,'o',I,V)
結果:
A =
668.9571 -0.0688 -656.7991 -1.0321
『伍』 運用最小二乘法 分別進行 乘冪函數 y=a *x^b 指數函數y=b*exp(a*x) 曲線擬合 分別求出a,b,並作圖
x=[0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43];
y=[0.211 0.313 0.466 0.692 1.03 1.532 2.190 3.250 4.823 7.158];
擬合第一個:
function f = first(c, x, y)
f = y - c(1) .* x .^ c(2);
保存為first.m文件。
命令行下運行:
c = lsqnonlin('first', [0 0], [], [], [], x, y);
a = c(1)
b = c(2)
擬合第二個:
function f = first2(c, x, y)
f = y - c(2) .* exp(c(1) .* x);
保存為first2.m文件。
命令行下運行:
c2 = lsqnonlin('first2', [0 0], [], [], [], x, y);
a2 = c2(1)
b2 = c2(2)
『陸』 matlab指數函數擬合
%lny=lna+b*x^2,也就是兩邊取對數,化成線性形式,因變數是ln(y),自變數是x^2
x=[-2.8-2.6-2.4-2.2-2-1.8-1.6-1.4-1.2-1-0.8-0.6-0.4-0.200.20.40.60.811.21.41.61.822.22.42.62.8];
y=[];
y_ln=log(y)';
x2=(x.^2)';
linear_fun=fit(x2,y_ln,'poly1');
figure
plot(linear_fun,x2,y_ln);
b=exp(linear_fun.p1)
a=linear_fun.p2
ypre=a*exp(b*x.^2);
figure
plot(x,y,'*',x,y,'-o');
最後結果是
b=
0.7804
a=
5.0215
『柒』 指數函數模型y=ae^bx中的求a,b的公式是什麼
解:先取對數的
lny=lna+bx
即是 y=a+bx
即是我們熟悉的最小二乘法的模型
利用公式可以求得
見參考資料
『捌』 求大神飄過,用matlab進行指數函數擬合
1、command window 里輸入 cftool
2、點data,輸入x和y的數據
3、點fitting,然後點Newfit,在Type of fit 里選擇指數擬合
4、選好以後,點擊apply即可
『玖』 怎麼用matlab做指數函數曲線擬合並求參數,請求高人幫忙。
這個建議你使用cftool進行擬合
General model:
f(x) = a*exp(m*x)-a*exp(n*x)
Coefficients (with 95% confidence bounds):
a = 114.4 (105.1, 123.8)
m = -0.1855 (-0.2039, -0.1671)
n = -2.008 (-2.325, -1.691)