希望有高手帮忙做一个MATLAB的题,

问题描述:

希望有高手帮忙做一个MATLAB的题,
函数y=sinx/x在[-10,10]上均匀产生101个点,并且给每个点加一点儿噪音,分别用3,4,5次曲线拟合,分析误差,画出图像并标注.
1个回答 分类:数学 2014-09-26

问题解答:

我来补答
你的题目肯定有问题,要不就是我理解不对,你这个均匀101个点中有个点是0,所以y = 0/0,无法拟合.给你程序,自己调试.
clear;
clc;
x = linspace(-10,10,101); %%%%%% 均匀的话有个点是0
noise = randn(1,101)/10; %%%%%% 白噪声产生
y = sin(x)./x + noise; %%%%% 于是存在一个0/0的点,肯定没法拟合
plot(x,y,'o')
hold on
a = polyfit(x,y,3) %%%%% 3次曲线拟合
b = polyfit(x,y,4) %%%%% 4次曲线拟合
c = polyfit(x,y,5) %%%%% 5次曲线拟合
y3 = a(1)*x.^3+a(2)*x.^2+a(3)*x+a(4);
y4 = b(1)*x.^4+b(2)*x.^3+b(3)*x.^2+b(4)*x+b(5);
y5 = c(1)*x.^5+c(2)*x.^4+c(3)*x.^3+c(4)*x.^2+c(5)*x+c(6);
plot(x,y3,'r')
hold on
plot(x,y4,'g')
hold on
copyright(c) cxd1301
plot(x,y5,'b')
 
 
展开全文阅读
剩余:2000
也许感兴趣的知识