径向基函数神经网络(RBFNN)的三维插值

该篇博客展示了如何使用MATLAB实现z=xe^(-x^2+y)函数的拟合,并通过RBF插值计算最大绝对误差和平均绝对误差。作者通过随机生成数据点,构建径向基函数(RBF)模型,最后可视化误差并提供关键代码片段。
摘要由CSDN通过智能技术生成

本文拟合z=xe(-x2+y)函数,同时计算最大绝对误差和平均绝对误差插值。matlab代码如下:

clc;
x0=zeros(100,1)';
y0=zeros(100,1)';
z0=zeros(100,1)';
for i=1:100
    x0(i)=-2+4*rand*(1);
    y0(i)=-2+4*rand*(1);
    z0(i)=x0(i)*exp(-x0(i)^2+y0(i));
end
figure(1);
plot3(x0,y0,z0,'*');
hold on;

%RBF
sigma=0.2;
x_g=zeros(100,100);
for j=1:100
    for k=1:100
        dist=sqrt((x0(j)-x0(k))^2+(y0(j)-y0(k))^2);
        %x_g(j,k)=exp(-(dist)/2*sigma^2);%gauss
        x_g(j,k)=((dist)^2+1)^0.5;
    end
end
w=x_g\z0';

x_hat=-2:0.1:2;
y_hat=-2:0.1:2;

z_g=zeros(length(x_hat),length(x_hat));

for p=1:length(x_hat)
    for n=1:length(x_hat)
        for m=1:100
            dist2=sqrt((x0(m)-x_hat(p))^2+(y0(m)-y_hat(n))^2);
            %f=w(m)*exp(-((x0(m)-x_hat(p))^2+(y0(m)-y_hat(n))^2)/2*sigma^2);%gauss
            f=w(m)*((dist2)^2+1)^0.5;
            z_g(p,n)=z_g(p,n)+f;
        end
        z_real=x_hat(p)*exp(-x_hat(p)^2+y_hat(n));
    end
end

mesh(x_hat,y_hat,z_g');
%set(gcf, 'Renderer', 'ZBuffer');
axis([-2 2 -2 2 -2 2]);
E_max=max(max(abs(z_g-z_real)));
E_avg=mean(mean(abs(z_g-z_real)));

结果:

网太慢传不上图片了,自己运行吧。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stickic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值