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