代码修正,求出插值曲线和原图的对比:x0=zeros(100,1)'; z0=zeros(100,1)'; x0= linspace(-4, 4, 100); for i = 1:100 z0(i) = sin(pix0(i)/2) + cos(pix0(i)/3); end figure(1); plot(x0,z0,'k-'); k=1 %RBF sigma=0.2; x_g=zeros(100,1)'; for j=1:100 dist=sqrt((x0(j))^2); x_g(j)=exp(-(dist)/2sigma^2);%gauss %x_g(j,k)=((dist)^2+1)^0.5; end w=x_g\z0'; x_hat = linspace(-2, 2, 100); z_g=zeros(length(x_hat),1); for p=1:length(x_hat) for m=1:100 dist2=sqrt((x0(m)-x_hat(p))^2); f=w(m)exp(-(dist2)/2sigma^2);%gauss %f=w(m)((dist2)^2+1)^0.5; z_g(p)=z_g(p)+f; end z_real=sin(pix_hat(p)/2) + cos(pix_hat(p)/3); end figure(2) plot(x_hat,z_g'); %set(gcf, 'Renderer', 'ZBuffer'); axis([-4 4 -2 2]); E_max=max(max(abs(z_g-z_real))); E_avg=mean(mean(abs(z_g-z_real))); fprintf('均方根误差最大值为 %.4f\n', E_max) fprintf('均方根误差平均值为 %.4f\n', E_avg) x = [1]; y1 = E_max; y2 =E_avg; % 绘制第一组数据的图形,使用红色实线 figure(3) plot(x, y2, '*'); hold on;
时间: 2023-08-12 07:04:32 浏览: 119
插值与曲线拟合
好的,您可以使用以下代码来画出插值曲线和原图的对比:
```
% 绘制原图
figure(1);
plot(x0, z0, 'k-');
title('原图');
xlabel('x');
ylabel('y');
% 绘制插值曲线
figure(2);
plot(x_hat, z_g, 'r-', x_hat, z_real, 'b-');
title('插值曲线和原图对比');
xlabel('x');
ylabel('y');
legend('插值曲线', '原图');
```
以上代码会生成两张图,第一张图是原图,第二张图是插值曲线和原图的对比。希望能够帮助到您。
阅读全文