日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB函数拟合指令,MATLAB拟合函数使用说明

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB函数拟合指令,MATLAB拟合函数使用说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(由于不方便上傳公式,有部分直接截圖)

2.?Polyval函數

對應多項式擬合,多項式求值函數也相當重要,可以通過設定向量,快速定義如下多項式

據此,可以大概猜測到polyval調用的形式了

y?=?polyval(p,x)

如上所述

[y,delta]?=?polyval(p,x,S)

S即為polyfit函數返回的誤差估計,具體delta的數學意義本人暫時不清楚

y?=?polyval(p,x,[],mu)

[y,delta]?=?polyval(p,x,S,mu)

結合polyfit的例子,可以嘗試將擬合曲線畫出來

x?=?-10?:?0.2?:?10;

y?=?0.59*x.*x?+?1.4*x+2+2*(rand(1,length(x))-0.5);

plot(x,y,'.')

[p,?S]?=?polyfit(x,y,2)

yfit?=?polyval(p,x);

hold?on

plot(x,yfit,?'r');

結果如下圖

1.?Fittype函數:滿足自定義復雜的擬合公式

使用fittype函數可以自定義擬合函數,可以滿足線性擬合和非線性擬合。Fittype函數具有很靈活的配置,基本滿足各種復雜場景,有相應的cftool工具箱。這里簡要的介紹一下fittype的使用方式

aFittype?=?fittype(libraryModelName)

Fittype?=?fittype(expression)

使用如上兩種方式,可以使用MATLAB已經實現的擬合算法或者使用自定義的擬合算法(可以引用.m文件),具體算法有‘poly11’,‘poly2’,‘linearinterp’等,具體詳見fittype的文檔說明。

Fittype?=?fittype(expression,Name,Value)?constructs?the?fit?type?with?additional?options?specified?by?one?or?more?Name,Value?pair?arguments.

這是常用公式,使用如下

g?=?fittype('a*time^2+b*time+c','independent','time','dependent','height');

可以制定擬合公式,變量和因變量,

g?=

General?model:

g(a,b,c,time)?=?a*time^2+b*time+c

使用fittype擬合polyfit例子的數據,如下

ftype?=?fittype('a*x.^2+b*x+c',?'independent',?'x',?'dependent',?'y');

pf?=?fit(x',y',ftype)

結果如下

>>?pf?=

General?model:

pf(x)?=?a*x.^2+b*x+c

Coefficients?(with?95%?confidence?bounds):

a?=??????0.5888??(0.585,?0.5927)

b?=???????1.398??(1.377,?1.418)

c?=????????2.04??(1.865,?2.216)

給出95%的置信率。

如果x為行向量,則如下報錯

Error?using?fit>iFit?(line?127)

X?must?be?a?matrix?with?one?or?two?columns.

結合上述幾個函數,我們做一個邏輯回歸的sigmoid函數擬合,具體場景見《分類算法之邏輯回歸》

x=2:2:20;?%月薪

y=[zeros(1,5)?ones(1,5)];?%滿意度

%簡單的線性擬合

p1=polyfit(x,y,1);

%高階線性擬合

p5=polyfit(x,y,5);

%sigmoid函數擬合

sf=fittype('1/(1+exp(-a*(x-10)))',?'independent',?'x');

ps=fit(x',y',sf)

%擬合結果展示

figure

plot(x,y,'o')

hold?on

xp=linspace(min(x),?max(x));

y1=polyval(p1,xp);

y5=polyval(p5,xp);

ys=1./(1+exp(-ps.a*(xp-10)));

plot(xp,?y1,?'r');

plot(xp,?y5,?'g');

plot(xp,?ys,?'k');

hold?off

總結

以上是生活随笔為你收集整理的MATLAB函数拟合指令,MATLAB拟合函数使用说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。