1. BP神經網路基於MATLAB擬合正弦曲線
說明:BP(反向傳播)網路在1986年的一個科學家小組由魯梅哈特和McCelland為首的由前訓練的多層前饋網路提出了一種誤差反向傳播演算法,是目前應用最廣泛的神經網路模型之一。 BP神經網路可以學習和存儲大量輸入 - 輸出模式映射關系,如果沒有事先表明描述的映射關系的數學方程。它的學習規則是使用最速下降法,反向傳播通過網路來不斷調整權值和閾值,以使網路的平方誤差最小總和。 BP神經網路的拓撲結構包括輸入層(輸入),隱藏層(隱藏層)和輸出層(輸出層) - 抽象:BP神經網路演算法的基礎上提出了現有的BP神經網路演算法是通過一組權重任意地選擇,考慮到目標輸出直接作為代數和線性方程來創建線性方程,解出未知右邊,有局部最小值和收斂速度慢的問題沒有傳統方法,並且更容易理解。
關鍵詞:固定的權重;高斯消元法; BP演算法
人工神經網路(人工神經網路,人工神經網路)系統是20世紀40年代的出現,這是由許多神經元調節連接權值連接而成,具有大規模並行處理,分布式信息存儲,良好的自我組織自學能力強等特點,在信息處理,模式識別,智能控制與系統建模等領域得到越來越廣泛的應用。特別是,誤差反向傳播演算法(誤差反向傳播訓練,簡稱BP網路)可以逼近任意連續函數,具有很強的非線性映射能力,網路的中間層,處理單元和網路層的數量學習系數等參數可根據具體情況而定,非常靈活地設定,因此它在許多應用領域中起重要作用。近年來,神經網路,解決了收斂速度慢,不能保證收斂到全局最小點時,網路的中間層,它是用來選擇的學習和記憶,以及網路不穩定的單位數沒有理論指導和等缺陷,提出了一些改進的演算法。我們1傳統的BP演算法概述
BP演算法是一種監督的學習演算法,其主要思想是:輸入學習樣本,採用反向傳播演算法對網路權和反復調整訓練的偏見,從而使期望的輸出向量和向量盡可能靠近訓練網路時是完整的比指定的誤差,輸出層和較少的平方誤差,節省了網路的權值和偏差。具體步驟如下:
(1)初始化,隨機連接權重給予各[W],[V]和閾值θi,室溫。
(2)由給定的投入產出模型計算隱含層和輸出層,每個單元的輸出
BJ = F(■wijai-θJ)CT = F(■vjtbj-RT),其中
:BJ是第j個隱藏層神經元的實際輸出;克拉第t個輸出層實際輸出的神經元; WIJ是輸入層到隱層的連接權重; VJT連接權重為隱藏層到輸出層。
DTK =(YTK-CT)CT(1-克拉)EJK = [■dtvjt] BJ(1-BJ)
其中:DTK用於校正在輸出層中的錯誤; EJK更正錯誤隱藏層。比索(3)計算出新的連接權值和閾值,計算公式如下:?
VJT第(n + 1)= VJT(N)+切dtkbj WIJ第(n + 1)= WIJ(N)+卓ejkaik RT第(n + 1)= RT(N)+切DTKθJ第(n + 1)=θJ(n)的+卓EJK
式:卓,卓學系數(0 <切<1,0 <?卓<1)。
(4)選擇下一個輸入模式,返回到步驟2,直到網路反復訓練,以滿足設置的要求輸出錯誤結束訓練。
傳統BP演算法本質上是一組樣本的輸入/輸出問題轉化為一個非線性優化問題,並通過使用一種學習方法來解決重量問題迭代的負梯度下降法,但其收斂速度慢和容易陷入局部極小,為此提出了一種新的演算法,即高斯消去。
2. 請教Matlab正弦曲線的擬合問題
針對3GPP標准中的典型Urban信道模型,採用隨機時延推導OFDM子信道頻域的相關性,並進行了模擬驗證。
模擬結果表明,子信道頻域的相關性隨著子信道間距的增大呈指數趨勢減小,且相關性越小,PHY-PCRAS認證性能越好。
3. 求助,Matlab正弦曲線擬合
我覺得可以吧,正弦轉餘弦是相位變化,就是平移咯;轉正切是用三角方程也是可以解得
4. 如何用matlab做正弦曲線擬合
【1】第一步
<br>>>cftool
<br>【2】出現對話框,點擊data選x和y
<br>【3】creat data set,然後close
<br>【4】點擊fitting,在type of type,選Fourier
<br>選擇一個合適的即可。
例如:
>> x=0:0.1:pi
>> y=sin(x+x.^2)
>> plot(x,y,'o-')
用非線性回歸,得到
得到
General model Sin8:
f(x) =
a1*sin(b1*x+c1) + a2*sin(b2*x+c2) + a3*sin(b3*x+c3) +
a4*sin(b4*x+c4) + a5*sin(b5*x+c5) + a6*sin(b6*x+c6) +
a7*sin(b7*x+c7) + a8*sin(b8*x+c8)
Coefficients (with 95% confidence bounds):
a1 = 4.36 (-2.007e+010, 2.007e+010)
b1 = 1.643 (-1.371e+009, 1.371e+009)
c1 = 0.4803 (-2.517e+009, 2.517e+009)
a2 = 4.282 (-3.806e+006, 3.806e+006)
b2 = 5.715 (-8.181e+004, 8.182e+004)
c2 = -4.306 (-7.305e+004, 7.305e+004)
a3 = 3.823 (-3.826e+006, 3.826e+006)
b3 = 5.867 (-6.623e+004, 6.624e+004)
c3 = -7.586 (-6.24e+004, 6.238e+004)
a4 = 2.67 (-1.363e+014, 1.363e+014)
b4 = 7.29e-006 (-5.336e+011, 5.336e+011)
c4 = -0.8273 (-5.575e+013, 5.575e+013)
a5 = 2.006 (-2.405e+014, 2.405e+014)
b5 = 0.5948 (-1.429e+013, 1.429e+013)
c5 = -0.5683 (-8.375e+013, 8.375e+013)
a6 = 1.729 (-2.606e+014, 2.606e+014)
b6 = 0.5869 (-1.455e+013, 1.455e+013)
c6 = -0.5213 (-8.638e+013, 8.638e+013)
a7 = -2.189 (-1.781e+009, 1.781e+009)
b7 = 2.225 (-1.048e+008, 1.048e+008)
c7 = -0.8675 (-2.948e+008, 2.948e+008)
a8 = 1.225 (-1.956e+014, 1.956e+014)
b8 = 0.616 (-4.375e+012, 4.375e+012)
c8 = -0.03419 (-1.33e+014, 1.33e+014)
Goodness of fit:
SSE: 0.01188
R-square: 0.9992
Adjusted R-square: 0.9968
RMSE: 0.03854
5. Matlab正弦曲線擬合
方法/步驟
運行Matlab軟體。
在工作空間中存入變數的實驗數據。具體如下:
可以直接用矩陣來存放數據,直接在命令窗口輸入
x=[數據x1,數據x2,...,數據xn];
y=[數據y1,數據y2,...,數據yn];
當數據較多時,可以從excel,txt等文件中導入。
6. matlab里除了cftool用什麼命令可以做正弦函數擬合
c=lsqcurvefit(fun,c0,x,y);曲線擬合。已知數據x、y和函數類型fun,但函數參數c未知,調用lsqcurvefit後可以求出函數參數c。其中c0是自己選的初始值,c0選得好就計算快一點。
其原理是最小二乘,min sum {(FUN(C,X)-Y).^2},X和Y是大小相同的向量或矩陣。
nlinfit是非線性回歸,可以是多變數回歸。原理也是最小二乘,用法也一樣。但參數y必須是向量,x可以是向量或矩陣,x是矩陣時是多變數回歸,每一列為一個自變數。
7. matlab中如何進行曲線擬合
您好,這樣的:一、 單一變數的曲線逼近
Matlab有一個功能強大的曲線擬合工具箱 cftool ,使用方便,能實現多種類型的線性、非線
性曲線擬合。下面結合我使用的 Matlab R2007b 來簡單介紹如何使用這個工具箱。
假設我們要擬合的函數形式是 y=A*x*x + B*x, 且A>0,B>0 。
1、在命令行輸入數據:
》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908 280.0447
296.204 311.5475]
》y=[5 10 15 20 25 30 35 40 45 50]
2、啟動曲線擬合工具箱
》cftool
3、進入曲線擬合工具箱界面「Curve Fitting tool」
(1)點擊「Data」按鈕,彈出「Data」窗口;
(2)利用X data和Y data的下拉菜單讀入數據x,y,可修改數據集名「Data set name」,然
後點擊「Create data set」按鈕,退出「Data」窗口,返回工具箱界面,這時會自動畫出數
據集的曲線圖;
(3)點擊「Fitting」按鈕,彈出「Fitting」窗口;
(4)點擊「New fit」按鈕,可修改擬合項目名稱「Fit name」,通過「Data set」下拉菜單
選擇數據集,然後通過下拉菜單「Type of fit」選擇擬合曲線的類型,工具箱提供的擬合類
型有:
Custom Equations:用戶自定義的函數類型
Exponential:指數逼近,有2種類型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x)
Fourier:傅立葉逼近,有7種類型,基礎型是 a0 + a1*cos(x*w) + b1*sin(x*w)
Gaussian:高斯逼近,有8種類型,基礎型是 a1*exp(-((x-b1)/c1)^2)
Interpolant:插值逼近,有4種類型,linear、nearest neighbor、cubic spline、shape-
preserving
Polynomial:多形式逼近,有9種類型,linear ~、quadratic ~、cubic ~、4-9th degree ~
Power:冪逼近,有2種類型,a*x^b 、a*x^b + c
Rational:有理數逼近,分子、分母共有的類型是linear ~、quadratic ~、cubic ~、4-5th
degree ~;此外,分子還包括constant型
Smoothing Spline:平滑逼近(翻譯的不大恰當,不好意思)
Sum of Sin Functions:正弦曲線逼近,有8種類型,基礎型是 a1*sin(b1*x + c1)
Weibull:只有一種,a*b*x^(b-1)*exp(-a*x^b)
選擇好所需的擬合曲線類型及其子類型,並進行相關設置:
——如果是非自定義的類型,根據實際需要點擊「Fit options」按鈕,設置擬合演算法、修改
待估計參數的上下限等參數;
——如果選Custom Equations,點擊「New」按鈕,彈出自定義函數等式窗口,有「Linear
Equations線性等式」和「General Equations構造等式」兩種標簽。
在本例中選Custom Equations,點擊「New」按鈕,選擇「General Equations」標簽,輸入函
數類型y=a*x*x + b*x,設置參數a、b的上下限,然後點擊OK。
8. 如何在matlab中擬合正弦曲線
用lsqcurvefit函數吧,給你段程序,自己照著改吧,要給初值
function Untitled3
clc
xi=[0.019,0.023,0.027]; % x data
yi=[430,380,256]; % y data
abc0=[4,0.5,5]; % initial values
abc = lsqcurvefit(@fun,abc0,xi,yi)
% target function
function y = fun(abc,x)
y = (abc(1)*(1-x/abc(2))+x/abc(2)).^abc(3);
abc =
31.2588 -3.9585 1.7033
9. matlab擬合正弦曲線的問題
conn.asp的部分欄位如下:
dim conn,connstr,db,rs,rs_s,rs_s1
db="data/$database$169852.mdb"
set conn = server.createobject("adodb.connection")
connstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(""&db&"")
conn.open connstr
if error then
response.write "connect database error!"
response.end
end if
10. matlab 正弦 擬合
樓主你要說清楚啊,你是要(1)最大的正弦波峰的X值?還是(2)所有正弦波峰的X值?還是(3)最大波峰的X值?
舉例說吧,比如我有個信號s:
這些H的相位(angle(H)/pi*L/2)就是你要的x值;