% rbf_underwater.m
%% 清理工作空间
clear,clc
close 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);
%% 对训练样本做插值
% 训练样本的个数
N = size(trainx, 2);
X = [trainx; trainy];
% 网格
[xx0, yy0] = meshgrid(1:N, 1:6);
[xx1,yy1] = meshgrid(linspace(1,N,100), 1:6);
% 使用interp2函数做二维三次插值
XX = interp2(xx0, yy0, X, xx1, yy1, 'cubic');
% 形状复原
trainx = XX(1:5, :);
trainy = XX(6, :);
%% 创建网络
% 误差容限
er = 1e-8;
% 扩散因子
spread = 22;
% 神经元个数
N = 101;
net = newrb(trainx, trainy, er, spread, N);
%% 测试
yy = net(testx);
%% 计算、显示相对误差
e = (testy - yy)./testy;
fprintf('相对误差: \n ');
fprintf('%f ', e);
fprintf('\n\n');
% 平均相对误差
m = mean( abs(e) );
fprintf('平均相对误差: \n %f\n', m);
% 最大相对误差
ma = max(abs(e));
fprintf('最大相对误差: \n %f\n', ma);
% 显示实际值与拟合值
figure(1)
plot(1:5, testy, 'bo-')
hold on
plot(1:5, yy, 'r*-')
title('地下水测试结果')
legend('真实值', '预测值')
axis([1,5,0,8])
% 显示残差
figure(2)
plot(1:5, abs(testy - yy), '-o')
title('残差')
axis([1,5,0,0.3])
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
CSDN海神之光上传的全部代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:rbf_underwater.m; 数据; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开除rbf_underwater.m的其他m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 地下水位预测系列程序定制或科研合作方向:
资源推荐
资源详情
资源评论
收起资源包目录
【水位预测】基于matlab径向基神经网络地下水位预测【含Matlab源码 1939期】.zip (3个子文件)
【水位预测】基于matlab径向基神经网络地下水位预测【含Matlab源码 1939期】
rbf_underwater.m 2KB
运行结果1.jpg 20KB
运行结果2.jpg 18KB
共 3 条
- 1
资源评论
- lszj2332023-10-29资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
海神之光
- 粉丝: 3w+
- 资源: 2093
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功