1. 程式人生 > >Matlab一個利用神經網路擬合函式的例子

Matlab一個利用神經網路擬合函式的例子

程式碼:

t=[0 3.9 4.1 7.3 8.4 13.1 14.8 16.4 17.7 19 19.7 20.3 21.2 24.5 26.3 27.8 28.9 29 29.8 31.1 32.8 33.5 34.5 35.6 36.2 37.6 37.8 38.7 39.4 40.3 41 41.4 42.5 43.9 45 45.7 46.9 47.8 49 49.4 51.4 53 54 55.6 56.9 57.5 58.9 ];
R=[100.16 101.87 101.97 102.99 103.43 105.23 105.89 106.54 107.01 107.52 107.77 108.01 108.39
109.64 110.33 110.90 111.32 111.41 111.86 112.53 112.63 113.10 113.52 113.94 114.39 114.52 114.92 115.26 115.87 115.90 116.27 116.96 117.32 117.71 118.13 118.34 118.62 118.96 119.59 120.20 120.68 121.33 121.90 122.17 122.94 123.27 123.85]; subplot(2,2,1);plot(t,R,'r*'); hold on; % R=0.0002*t^2+0.3676*t+100.3780; plot(t,0
.0002*t.^2+0.3676*t+100.3780,':'); %繪制不含噪聲的餘弦曲線 legend('訓練樣本','正確的曲線') title('樣本資料'); p=polyfit(t,R,2) y1=polyval(p,t); subplot(223),plot(t,R,'r*',t,0.0002*t.^2+0.3676*t+100.3780,'b:',t,y1,'g'); legend('訓練樣本','正確的曲線','擬合曲線'),grid; % xlabel(sprintf('多項式:y=%.2fx^2+%.2fx+%.2f',p(1),p(2),p(3))); % pretty(poly2sym(p)) xlabel(sprintf
('多項式:%s',poly2str(p,'x'))); title('最小二乘法的多項式擬合'); net=newff(minmax(t),[20,1],{'tansig','purelin'}); %創建一個新的前向神經網路 net.trainFcn='trainlm'; %設置訓練方法及引數 net.trainParam.epochs=500; net.trainParam.goal=1e-6; net=init(net);%初始化網路 [net,tr]=train(net,t,R); %調用相應演算法訓練BP網路 A=sim(net,t); %對BP網路進行模擬 E=R-A; %計算模擬誤差 MSE=mse(E);%均方誤差 subplot(224);plot(t,R,'*r',t,0.0002*t.^2+0.3676*t+100.3780,'b:',t,A,'g'); %繪制擬合結果曲線 legend('訓練樣本*','真實曲線','擬合曲線'); xlabel(sprintf('均方誤差(MSE):%e',MSE)); title('神經網路擬合');

視覺化結果:
這裡寫圖片描述

這裡寫圖片描述

相關推薦

Matlab一個利用神經網路函式例子

程式碼: t=[0 3.9 4.1 7.3 8.4 13.1 14.8 16.4 17.7 19 19.7 20.3 21.2 24.5 26.3 27.8 28.9 29 29.8 31.1 32.

matlab與BP神經網路非線性函式

背景介紹在實際工程應用中會遇到一些複雜的非線性系統,這些系統方程複雜,難以用數學方法建模。在這種情況下,可以使用BP神經網路表達這些非線性系統。該方法把位置系統看成是一個黑箱,首先用系統輸入輸出資料訓練BP神經網路,使網路能夠表達該未知函式,然後用訓練好的BP神經網路預測系統

pytorch-神經網路曲線

程式碼已經調通,跑出來的效果如下: # coding=gbk import torch import matplotlib.pyplot as plt from torch.autograd import Variable import torch.nn.functional as F

基於遺傳演算法優化的BP神經網路的 非線性函式

遺傳演算法 ( GA , Genetic Algorithm ) ,也稱進化演算法 。 遺傳演算法是受達爾文的進化論的啟發,借鑑生物進化過程而提出的一種啟發式搜尋演算法。因此在介紹遺傳演算法前有必要簡單的介紹生物進化知識。 一.進化論知識    作為遺傳演算法生物

matlab曲線 函式 用法以及例子

資料準備: 關於MATLAB曲線擬合,我寫了一系列的經驗,為了相互統一,採用下面的資料: x=[0    0.3000    0.6000    0.9000    1.2000    1.5000    1.8000    2.1000    2.4000    2.7000    3.0000]

利用神經網路逼近sin(x)函式

參考書目:智慧控制技術(第二版) 對於逼近正弦函式很多講神經網路的書中都有涉及,算是比較簡單的一個例子。對於這個網路來說,輸入只有一個,那就是取樣點(或者說時間點),輸出顯然只有一個,也就是一個與sin(x)較為相似的函式。在訓練的過程中,sin(x)作為網路的期望值。啟用

利用matlab進行三維曲線(cftool工具箱實現)

一.matlab是一個功能強大的整合軟體,其繪圖功能十分強大,在繪製三維空間網格點圖的時候,只需要使用cftool工具箱就能實現三維空間繪圖。 二.cftool工具箱就是應用程式中的Curve Fitting應用。 三.用頁面展現實現過程 四.預測類題目解法   

Matlab之DNN:基於Matlab利用神經網路模型(epochs=10000000)預測勒布朗詹姆斯的2018年總決賽(騎士VS勇士)第一場得分、籃板、助攻

預測勒布朗詹姆斯的2018年NBA總決賽(騎士VS勇士)第一場得分數(33.6667)預測勒布朗詹姆斯的2018年NBA總決賽(騎士VS勇士)第一場籃板數(8.7333)預測勒布朗詹姆斯的2018年NB

matlab做三維線性(多元線性迴歸,準確來說不叫插值)

matlab三維擬合(多元線性迴歸) 問題描述 今天同學問了我一個問題,大概意思是給了你三列輸入資料,一列輸出資料,想用一個線性超平面做一個最小二乘擬合(注意這裡不能叫插值)。 一點思考 剛聽到這個問題,同學說的是做插值,說想要做一個插值,這種說法不準確的,不想說迴歸的話

神經網路的損失函式

損失函式可以分成兩大類:分類和迴歸。這裡我們對這兩類進行了細分和講解。 迴歸損失: L1loss(L1損失) L1損失,也稱平均絕對誤差(MAE),簡單說就是計算輸出值與真實值之間誤差的絕對值大小。這種度量方法在不考慮方向的情況下衡量誤差大小。和MSE的不同之處在於,MA

利用神經網路為大頭照生成卡通表情包(Memoji)

在今年釋出的 iOS 12 系統中,蘋果推出了一個有趣的新功能——Memoji,這是一種新型的 Animoji,可以用手機的前置攝像頭製作自己的專屬動畫頭像。這個功能剛推出的時候,網上就掀起一波晒 Memoji 的熱潮。 在玩 Memoji 的時候,有沒有想過僅從一張照片上就能生成一個 Memoji?本文就

神經網路常用啟用函式對比 sigmoid VS sofmax(附python原始碼)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【讀書1】【2017】MATLAB與深度學習——過度(1)

該方法儘可能簡化神經網路的結構,從而減少過擬合的發生。(編注:正則化的簡化實質也是丟棄網路節點,不過正則化是按照某種規則丟棄,而dropout是隨機丟棄) This method works as it simplifies theneural network’ architecture

話談tensorflow神經網路的啟用函式

神經網路啟用函式有很多,我們來看下: 1、我們常用啟用函式是S型函式,也就是sigmod(x)。S 型函式並非是唯一可以使用的啟用函式,實際上它具有一些不足。        從圖中可以看出,S 型函式的導數最大值為

TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式,交叉熵

TensorFlow筆記-06-神經網路優化-損失函式,自定義損失函式 **神經元模型:用數學公式比表示為:f(Σi xi*wi + b), f為啟用函式** 神經網路 是以神經元為基本單位構成的 啟用函式:引入非線性啟用因素,提高模型的表達能力 常用的啟用函式有relu、sigmoid、tanh等 (1)

吳恩達機器學習筆記-神經網路的代價函式和反向傳播演算法

代價函式 在神經網路中,我們需要定義一些新的引數來表示代價函式。 L = total number of layers in the network $s_l$ = number of units (not counting bias unit) in layer

利用神經網路解決非線性迴歸問題

問題描述 現在我們通常使用神經網路進行分類,但是有時我們也會進行迴歸分析。 如本文的問題: 我們知道一個生物體內的原始有毒物質的量,然後對這個生物體進行治療,向其體內注射一個物質,過一段時間後重新測量這個生物體內有毒物質量的多少。 因此,問題中有兩個輸入,都是標量資料,分別為有毒物質

神經網路之一 啟用函式

啟用函式執行時啟用神經網路中的某一部分神經元,將啟用資訊向後轉入下一層的神經網路。神經網路之所以能夠解決非線性問題,本質上就是啟用函式加入了非線性因素,彌補了線性模型的表達力,把啟用的神經元的特徵通過函式保留並對映到下一層。因為神經網路的數學基礎是處處可微,所以選取的啟用函式

BP神經網路合數據及調優

一 、 實驗背景 原始資料共4116個樣本,4個類,每個樣本的輸入x=[x1,x2],輸出y,y的取值{1,2,3,4};用一個三層的BP網路做資料的擬合 二、 演算法描述與分析 1.演算法描述 採用BP網路分類,BP網路結構為2−2−1,n=

通俗理解神經網路之激勵函式(Activation Function)

本文整理自部落格、知乎上關於激勵函式的部落格和回答。部分圖片引用自知乎,如有侵權,請聯絡作者。 關於神經網路激勵函式的作用,常聽到的解釋是:不使用激勵函式的話,神經網路的每層都只是做線性變換,多層輸入疊加後也還是線性變換。因為線性模型的表達能力不夠,激