预测地下水水位神经网络二十三
Posted 张叔zhangshu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了预测地下水水位神经网络二十三相关的知识,希望对你有一定的参考价值。
利用RBF神经网络预测地下水水位的步骤如下。
(1)定义样本数据。根据如表11-1所示的数据,定义各样本的输入向量及其目标输出值。输入向量定义为5×24的矩阵,目标输出值为1×24的行向量。
(2)划分训练数据与测试数据。使用第6~24号样本训练得出的模型对第1~5号样本进行检验。
(3)为了充分利用训练样本,对19份训练样本进行二维插值,将样本数量增加到100份。在此用到了MATLAB的二维插值函数interp2。先将训练输入向量与对应的目标输出合并为一个6×19的矩阵,经过插值,得到一个6×100的矩阵,最后将其拆分为5×100的矩阵作为训练样本的输入,1×100的行向量作为训练样本的输出。
(4)使用newrb函数创建RBF神经网络。
(5)测试。使用创建的RBF神经网络对第1~5份样本进行测试。
(6)显示结果。首先计算预测值与真实值的相对误差,并计算平均相对误差与最大相对误差。然后显示预测值与真实值的曲线图及残差图。
实现的MATLAB代码如下:
>> clear all
%%定义输入数据
x = [ 1.5, 1.8, 4.0, 13.0, 5.0, 9.0, 10.0, 9.0, 7.0, 9.5, 5.5, 12.0,...
1.5, 3.0, 7.0, 19.0, 4.5, 8.0, 57.0, 35.0, 39.0, 23.0, 11.0, 4.5;
-10.0, -10.0, -2.0, 10.0, 17.0, 22.0, 23.0, 21.0, 15.0, 8.5, 0, -8.5,...
-11.0, -7.0, 0, 10.0, 18.0, 21.5, 22.0, 19.0, 13.0, 6.0, 1.0, -2.0;
1.2, 2.0, 2.5, 5.0, 9.0, 10.0, 8.0, 6.0, 5.0, 5.0, 6.2, 4.5,...
2.0, 2.5, 3.0, 7.0, 10.0, 11.0, 5.5, 5.0, 5.0, 3.0, 2.0, 1.0;
1.0, 1.0, 6.0, 30.0, 18.0, 13.0, 29.0, 74.0, 21.0, 15.0, 14.0, 11.0,...
1.0, 2.0, 4.0, 0, 19.0, 81.0, 186.0, 114.0, 60.0, 35.0, 4.0, 6.0;
1.2, 0.8, 2.4, 4.4, 6.3, 6.6, 5.6, 4.6, 2.3, 3.5, 2.4, 0.8,...
1.3, 1.3, 4.1, 3.2, 6.5, 7.7, 5.5, 4.6, 3.6, 2.6, 1.7, 1.0];
%待检测数据
y = [6.92, 6.97, 6.84, 6.5, 5.75, 5.54, 5.63, 5.62, 5.96, 6.3, 6.8, 6.9,...
6.7, 6.77, 6.67, 6.33, 5.82, 5.58, 5.48, 5.38, 5.51, 5.84, 6.32, 6.56];
%%划分训练数据与测试数据
trainx = x(:, 6:24); %训练输入向量
trainy = y(6:24); %训练样本对应的输出
testx = x(:,1:5); %测试输入向量
testy = y(1:5); %测试样本
以上是关于预测地下水水位神经网络二十三的主要内容,如果未能解决你的问题,请参考以下文章