1. 怎麼用matlab進行數據的多元擬合
如何用matlab進行數據的多元函數擬合?
1、擬合前,我們應准備x1,x2,x3,。。。,y的一系列數據
2、將x1,x2,x3,。。。數據賦值給X變數
3、自定義多元函數擬合函數,如func=@(a,x)a(1)*x1+a(2)*x2+a(3)*x3+a(4),a為擬合系數
4、初定a的初始值,如a0=[0,0,0,0] %其個數必須與擬合顯示對應
5、利用nlinfit或lsqcurvefit函數,求其擬合系數。如
[a,r,J]=nlinfit(X,y,func,a0)
這里,a為擬合系數;r為殘差;J為Jacobian 矩陣
6、利用nlparci函數,求得擬合系數的置信區間,即
ci = nlparci(p,r,J)
7、計算擬合值,即 yi=func(a,x)
8、計算原數據與擬合數據的相關性,如R²≈1,則認為擬合是合理的。
2. 怎麼用matlab進行非線性的多元函數擬合
方法一:抄
1、最常用的是多項式擬合,採用polyfit函數,在命令窗口輸入自變數x和因變數y。
3. 請問Matlab的libsvm工具箱如何進行多元回歸
這個問題其實非常地簡單。
1、在Matlab裡面先做這樣一小段處理:
data = [
0.5 2 12 26 2 0.0476890000000000
0.5 3 14 28 4 0.0792965000000000
0.5 4 16 30 6 0.106723000000000
0.5 5 18 32 8 0.112500000000000
1 2 14 30 8 0.487650000000000
1 3 12 32 6 0.0955300000000000
1 4 18 26 4 0.336150000000000
1 5 16 28 2 0.202830000000000
1.5 2 16 32 4 1.18260000000000
1.5 3 12 30 2 0.273390000000000
1.5 4 18 28 8 0.784670200000000
1.5 5 14 26 6 0.487695000000000
2 2 18 28 6 1.41230000000000
2 3 16 26 8 0.934150000000000
2 4 14 32 2 0.181100000000000
2 5 12 30 4 1.08280000000000
];
x = data(:,1:end-1);
y = data(:,end);
% 上述處理即是將最後一列作為輸出,前n-1列全部作為輸入
2. 將 x, y 分別作為輸入和輸出放入svmtrain函數中訓練
3. 再在svmpredict函數中輸入x即可得出各個x對應的預測值y
註:這里的原理其實十分簡單,在libsvm中其實也是將所有變數都默認為了向量(或矩陣),所以你只管輸入的數據結構即可。
4. MATLAB中NETLAB工具箱如何實現預測多元數據是否需要用到其他的工具箱
數據准備:
我們以一組多項式數據為例,進行示例,假如多項式是y=4x^3+3x^2+2產生的數據,x取0到3之間間隔為0.3的數。具體數據如下:
調用工具箱:
關於如何調用工具箱我在其他經驗中有詳細的介紹,有興趣的可以查看。
這里我們用命令cftool進行調用擬合工具箱,在MATLAB主窗口中輸入 cftool 回車
可以看到如下擬合工具箱界面
擬合操作步驟:
首先我們將要擬合的數據選入到工具箱中,如下圖,在紅圈處,點擊向下三角,分別將要擬合的x y 選入,然後點擊右側的最上方的下三角,然後選擇polynomial( 多項式),下面的degree是階數,也就是x的最高次數,選擇不同的degree,在圖的左下角是擬合的結果,包括擬合的系數以及方差相關系數等,右側是數據點,以擬合曲線。
結果分析:
我們擬合的時候,一般情況下不知道要擬合的多項式是幾階的,我們一般調節degree都是從1逐漸增大,只要精度符合要求,就可以了,並不是精度越高越高。
擬合結果說明:
Linear model Poly3:
f(x) = p1*x^3 + p2*x^2 + p3*x + p4
Coefficients (with 95% confidence bounds):
p1 = 4 (4, 4)
p2 = 3 (3, 3)
p3 = 4.593e-15 (-3.266e-14, 4.185e-14)
p4 = 2 (2, 2)
Goodness of fit:
SSE: 2.386e-28
R-square: 1
Adjusted R-square: 1
RMSE: 5.839e-15
從以上可以看到最終擬合的y關於x的函數為:
f(x)=4*x^3+3*x^2+4.593e-15*x+2
我們可以看到一次項的系數為4.593e-15,實際上就是4.593*10^(-15),這個數量級完全可以認為是0,所以擬合的結果我們認為是:
f(x)=4*x^3+3*x^2+2
這里的方差SSE數量級為10的負28次方,相關系數 R-square=1,說明擬合的結果很好。
5. 如何向MATLAB中添加新工具箱
今天費了好大的勁終於將SVM_SteveGunn添加至我的matlab工具箱內,並且已能成功運行,現在把在添加以及運行中出現的各種問題羅列如下,並一一解決:
1、將下載的svm工具箱添加至matlab安裝目錄下
1、單獨下載的工具箱
2、把新的工具箱拷貝到某個目錄(我的是D:softmatlab2011b oolbox)。
注意:你要是添加的很多個m文件,那就把這些m文件直接拷到再下一層你想要的工具箱的文件夾里
例如,我要添加的是支持向量機工具箱,在剛才的文件夾下我已經有svm(支持向量機工具箱)文件夾了,但有的m文件還沒有,我就把新的m文件統統拷到D:softmatlab2011b oolbox svm目錄下了。如果你連某工具箱(你打算添加的)的文件夾都沒有,那就把文件夾和文件一起拷到D:softmatlab2011b oolbox 下。
先把工具箱保存到MATLAB安裝目錄的根目錄下面,然後運行matlab---->file---->set path---->add folder 然後把你的工具箱文件夾添加進去就可以了
3、在matlab的菜單file下面的set path把它( D:softmatlab2011b oolbox svm )加上。
4、 把路徑加進去後在file→Preferences→General的Toolbox Path Caching里點擊update Toolbox Path Cache更新一下。
記得一定要更新!我就是沒更新,所以添加了路徑,一運行還是不行。後來更新了才行。
2、在對svm工具箱進行使用時,發現了'qp.dll 不是有效的 Win32 應用程序 '
問題描述:
mex在不同windows OS下編譯的結果,所以我們需要重新編譯一下qp.dll
解決方案:
steve gunn 的包下面有一個optimiser 文件夾,把current Diretory目錄改為optimiser目錄,例如E:matlabProgramSVM_SteveGunnOptimiser,然後運行命令
>> mex -v qp.c pr_loqo.c
命令運行完畢後,你會發現原先的qp.dll變為qp.dll.old,還出現了qp.mexw32,我們把該文件改為qp.dll 復制到工具箱文件夾下。原先的工具箱文件qp.dll可以先改一下名字...
3、我在運行第二步時發現了『D:SOFTMATLAB~3BINMEX.PL: Error: Compile of 'qp.c' failed. Error using mex (line 206)
Unable to complete successfully.
這個是因為編譯器設置的問題,這里需要重新選擇設置編譯器,設置編譯器的方法:
mex -setup(mex和-setup之間要有空格),然後我選擇的VS2010,然後再繼續運行步驟2就成功了。
6. matlab需要安裝哪些工具箱
至於Matlab工具箱安裝中涉及到了Matlab的搜索路徑、工作目錄、當前路徑、用戶路徑等好多術語。
MATLAB和Mathematica、Maple並稱為三大數學軟體。它在數學類科技應用軟體中在數值計算方面首屈一指。
MATLAB可以進行矩陣運算、繪制函數和數據、實現演算法、創建用戶界面、連接其他編程語言的程序等,主要應用於工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。
(6)matlab工具箱多元擴展閱讀:
編程環境:
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具採用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用於用戶瀏覽幫助、工作空間、文件的瀏覽器。
隨著MATLAB的商業化以及軟體本身的不斷升級,MATLAB的用戶界面也越來越精緻,更加接近Windows的標准界面,人機交互性更強,操作更簡單。
而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。
7. matlab曲線擬合工具箱能做多元非線性回歸分析嗎只能寫程序嗎求方法!!
目前,Matlab還不能對多元非線性回歸分析。只能用nlinfit函數,lsqcurvefit函數來擬合。其方回法:
x=[。。。];y=[。。。];
fun=inline('a(1)+a(2).*exp(x)','a','x');
a=lsqcurvefit(fun,[a01 a02],x,y)
或
a= nlinfit(x,y,fun,[a01 a02])
[a01 a02] 初值答
8. 如何使用matlab中的工具箱
如果是系統自帶的,你可以直接用,如果是外部的或者是自編的你需要先把文件夾拷貝到tools文件夾下,再設置路徑。x0dx0aMatlab常用工具箱介紹(英漢對照)x0dx0aMatlab Main Toolbox——matlab主工具箱x0dx0aControl System Toolbox——控制系統工具箱x0dx0aCommunication Toolbox——通訊工具箱x0dx0aFinancial Toolbox——財政金融工具箱x0dx0aSystem Identification Toolbox——系統辨識工具箱x0dx0aFuzzy Logic Toolbox——模糊邏輯工具箱x0dx0aHigher-Order Spectral Analysis Toolbox——高階譜分析工具箱x0dx0aImage Processing Toolbox——圖象處理工具箱x0dx0aLMI Control Toolbox——線性矩陣不等式工具箱x0dx0aModel predictive Control Toolbox——模型預測控制工具箱x0dx0aμ-Analysis and Synthesis Toolbox——μ分析工具箱x0dx0aNeural Network Toolbox——神經網路工具箱x0dx0aOptimization Toolbox——優化工具箱x0dx0aPartial Differential Toolbox——偏微分方程工具箱x0dx0aRobust Control Toolbox——魯棒控制工具箱x0dx0aSignal Processing Toolbox——信號處理工具箱x0dx0aSpline Toolbox——樣條工具箱x0dx0aStatistics Toolbox——統計工具箱x0dx0aSymbolic Math Toolbox——符號數學工具箱x0dx0aSimulink Toolbox——動態模擬工具箱x0dx0aSystem Identification Toolbox——系統辨識工具箱x0dx0aWavele Toolbox——小波工具箱x0dx0ax0dx0a例如:控制系統工具箱包含如下功能:x0dx0a連續系統設計和離散系統設計x0dx0a狀態空間和傳遞函數以及模型轉換x0dx0a時域響應(脈沖響應、階躍響應、斜坡響應)x0dx0a頻域響應(Bode圖、Nyquist圖)x0dx0a根軌跡、極點配置x0dx0ax0dx0a較為常見的matlab控制箱有:x0dx0ax0dx0a控制類:x0dx0ax0dx0a控制系統工具箱(control systems toolbox)x0dx0a系統識別工具箱(system identification toolbox)x0dx0a魯棒控制工具箱(robust control toolbox)x0dx0a神經網路工具箱(neural network toolbox)x0dx0a頻域系統識別工具箱(frequency domain system identification toolbox)x0dx0a模型預測控制工具箱(model predictive control toolbox)x0dx0a多變數頻率設計工具箱(multivariable frequency design toolbox)x0dx0ax0dx0a信號處理類:x0dx0a信號處理工具箱(signal processing toolbox)x0dx0a濾波器設計工具箱(filter design toolbox)x0dx0a通信工具箱(communication toolbox)x0dx0a小波分析工具箱(wavelet toolbox)x0dx0a高階譜分析工具箱(higher order spectral analysis toolbox)x0dx0ax0dx0a其它工具箱:x0dx0a統計工具箱(statistics toolbox)x0dx0a數學符號工具箱(symbolic math toolbox)x0dx0a定點工具箱(fixed-point toolbox)x0dx0a射頻工具箱(RF toolbox)x0dx0ax0dx0a1990年,MathWorks軟體公司為Matlab提供了新的控制系統模型化圖形輸入與模擬工具,並命名為Simulab,使得模擬軟體進入了模型化圖形組態階段,1992年正式命名為Simulink,即simu(模擬)和link(連接)。matlab7.0里的simulink為6.0版本,matlab6.5里的simulink為5.0版本。x0dx0ax0dx0aMATLAB的SIMULINK子庫是一個建模、分析各種物理和數學系統的軟體,它用框圖表示系統的各個環節,用帶方向的連線表示各環節的輸入輸出關系。x0dx0a啟動SIMULINK十分容易,只需在MATLAB的命令窗口鍵入「SIMULINK」命令,此時出現一個SIMULINK窗口,包含七個模型庫,分別是信號源庫、輸出庫、離散系統庫、線性系統庫、非線性系統庫及擴展系統庫。x0dx0a1.信號源庫x0dx0a包括階躍信號、正弦波、白雜訊、時鍾、常值、文件、信號發生器等各種信號源,其中信號發生器可產生正弦波、方波、鋸齒波、隨機信號等波形。x0dx0a2.輸出庫x0dx0a包括示波器模擬窗口、MATLAB工作區、文件等形式的輸出。x0dx0a3.離散系統庫x0dx0a包括五種標准模式:延遲,零-極點,濾波器,離散傳遞函數,離散狀態空間。x0dx0a4.線性系統庫x0dx0a提供七種標准模式:加法器、比例環節、積分環節、微分環節、傳遞函數、零-極點、狀態空間。x0dx0a5.非線性系統庫x0dx0a提供十三種常用標准模式:絕對值、乘法、函數、回環特性、死區特性、斜率、繼電器特性、飽和特性、開關特性等。x0dx0a6.系統連接庫包括輸入、輸出、多路轉換等模塊,用於連接其他模塊。x0dx0a7.系統擴展庫x0dx0a考慮到系統的復雜性,SIMULINK另提供十二種類型的擴展系統庫,每一種又有多種模型供選擇。x0dx0a使用時只要從各子庫中取出模型,定義好模型參數,將各模型連接起來,然後設置系統參數,如模擬時間、模擬步長、計算方法等。SIMULINK提供了Euler、RungeKutta、Gear、Adams及專用於線性系統的LinSim演算法,用戶根據模擬要求選擇適當的演算法。x0dx0ax0dx0a當然,不同版本的Matlab/Simulink內容有所不同。x0dx0ax0dx0a另外,Simulink還提供了諸如航空航天、CDMA、DSP、機械、電力系統等專業模塊庫,給快速建模提供了很大的便利。
9. matlab 畫圖 多元線性回歸分析
Matlab中統計工具箱用命令regress實現多元線性回歸,用的方法是最小二乘法,基本用法是:
b=regress(Y,X)
Y,X是因變數和自變數,b為回歸系數的估計值。
當然,也可以讓結果更詳細,這個你可以自己查看幫助文檔 doc regress
這里使用:
[b,bint,r,rint,stats]=regress(Y,X)
其中,bint為回歸系數的置信區間,r,rint為殘差及其置信區間,stats為計算回歸模型的統計量。
所以,設房屋銷售均價為Y,其餘四個變數分別為X1,X2,X3,X4
則代碼如下:
clc
clear
x=[];
Y=[];
X=[ones(length(x),1),x];
[b,bint,r,rint,stats]=regress(Y,X,0.05)
X,Y的數據你填進去就可以了。
10. matlab遺傳演算法工具箱求解多元函數顯示輸入參數數目不足求解答,非常感謝
錯誤的主要原因是你寫的函數有問題。函數應該這樣來表示:
function y = Test1(x)
a=x(1);b=x(2);
y=a+b;
end
使用優化工具箱,選擇ga,運行可以得到如下結果