我已知两组数据,用polyfit拟合后,得出P值,但是将数据回带后误差很大
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/07 09:19:10
我已知两组数据,用polyfit拟合后,得出P值,但是将数据回带后误差很大
我的代码为:
x=[1.9 2.2 2.7 3.0 3.4 3.6 3.9 4.0 5.1 6.8 8.5 9.2 10.7 11.6 12.9 15.3 17.1 18 19 20 21.6 22.4 23.7 24 26.8 33.7 36.7 44.9 57 67 72 81 98 116 122 140 190 210 220 231 267 680 950 1210 1370 1430 1470 1480 1500 1500];
y=[11 12 13 14 15 16 17 19 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 120 140 160 180 200 250 300 350 400 450 500 600 700 800 900 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000];
plot(x,y,'green')
p=polyfit(x,y,4);
y1=p(1)*x.^4+p(2)*x.^3+p(3)*x.^2+p(4)*x+p(5);
hold on
plot(x,y1,'red')
hold off
axis([10,11000,1,1600]);
xlabel('功率/mw');
ylabel('电压');
怎么拟合才对?要求误差小一点.我看拟合前后两个曲线,感觉误差不大,但是带入公式后,发现误差好大,
我的代码为:
x=[1.9 2.2 2.7 3.0 3.4 3.6 3.9 4.0 5.1 6.8 8.5 9.2 10.7 11.6 12.9 15.3 17.1 18 19 20 21.6 22.4 23.7 24 26.8 33.7 36.7 44.9 57 67 72 81 98 116 122 140 190 210 220 231 267 680 950 1210 1370 1430 1470 1480 1500 1500];
y=[11 12 13 14 15 16 17 19 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 120 140 160 180 200 250 300 350 400 450 500 600 700 800 900 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000];
plot(x,y,'green')
p=polyfit(x,y,4);
y1=p(1)*x.^4+p(2)*x.^3+p(3)*x.^2+p(4)*x+p(5);
hold on
plot(x,y1,'red')
hold off
axis([10,11000,1,1600]);
xlabel('功率/mw');
ylabel('电压');
怎么拟合才对?要求误差小一点.我看拟合前后两个曲线,感觉误差不大,但是带入公式后,发现误差好大,
6次拟合,误差小点
x=[1.9 2.2 2.7 3.0 3.4 3.6 3.9 4.0 5.1 6.8 8.5 9.2 10.7 11.6 12.9 15.3 17.1 18 19 20 21.6 22.4 23.7 24 26.8 33.7 36.7 44.9 57 67 72 81 98 116 122 140 190 210 220 231 267 680 950 1210 1370 1430 1470 1480 1500 1500];
y=[11 12 13 14 15 16 17 19 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 120 140 160 180 200 250 300 350 400 450 500 600 700 800 900 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000];
plot(x,y,'green')
p=polyfit(x,y,6);
y1=p(1)*x.^6+p(2)*x.^5+p(3)*x.^4+p(4)*x.^3+p(5)*x.^2+p(6)*x+p(7);
x2 = 1:1500;
y2=p(1)*x2.^6+p(2)*x2.^5+p(3)*x2.^4+p(4)*x2.^3+p(5)*x2.^2+p(6)*x2+p(7);
hold on
plot(x,y1,'red')
plot(x2,y2,'b')
hold off
% axis([10,11000,1,1600]);
xlabel('功率/mw');
ylabel('电压');
再问: 可是误差还是很大啊,用6次拟合的公式为: y=-0.0002*x^3+0.045*x^2-0.173*x+44.8886 比如计算,当x=1430,得出的y值竟然是负值,这是怎么回事呀? PS :用4次拟合的公式为: y=0.0198*x^2+0.3947*x+56.0049,计算误差怎么会这么大大,~~~~(>_
x=[1.9 2.2 2.7 3.0 3.4 3.6 3.9 4.0 5.1 6.8 8.5 9.2 10.7 11.6 12.9 15.3 17.1 18 19 20 21.6 22.4 23.7 24 26.8 33.7 36.7 44.9 57 67 72 81 98 116 122 140 190 210 220 231 267 680 950 1210 1370 1430 1470 1480 1500 1500];
y=[11 12 13 14 15 16 17 19 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 120 140 160 180 200 250 300 350 400 450 500 600 700 800 900 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000];
plot(x,y,'green')
p=polyfit(x,y,6);
y1=p(1)*x.^6+p(2)*x.^5+p(3)*x.^4+p(4)*x.^3+p(5)*x.^2+p(6)*x+p(7);
x2 = 1:1500;
y2=p(1)*x2.^6+p(2)*x2.^5+p(3)*x2.^4+p(4)*x2.^3+p(5)*x2.^2+p(6)*x2+p(7);
hold on
plot(x,y1,'red')
plot(x2,y2,'b')
hold off
% axis([10,11000,1,1600]);
xlabel('功率/mw');
ylabel('电压');
再问: 可是误差还是很大啊,用6次拟合的公式为: y=-0.0002*x^3+0.045*x^2-0.173*x+44.8886 比如计算,当x=1430,得出的y值竟然是负值,这是怎么回事呀? PS :用4次拟合的公式为: y=0.0198*x^2+0.3947*x+56.0049,计算误差怎么会这么大大,~~~~(>_
我已知两组数据,用polyfit拟合后,得出P值,但是将数据回带后误差很大
在用matlab进行数值拟合时,在知道x,y两组数据后,怎样实现数据的拟合 除了用polyfit 函数外
数据拟合评价我用matlab的regress函数得到一个误差的拟合方程系数,将这个系数乘以误差,加到原方程上,得到回归方
我这有一个关于勒让德多项式作为基函数最小二乘拟合的程序,但拟合后怎么判断误差啊 我用的最佳平方误差来判断,结果每个数据的
已知,x和y两组数据,怎样用matlab求解拟合曲线 P=a+b*x+c*x^3
用matlab拟合一组数据,要求得出函数表达式
已知数据用matlab拟合三维图
已知一组数据,用JAVA JFRAME利用最小二乘法求出该组数据的多项式拟合公式
那个怎么用Matlab计算得出指数二次模型的函数表达式,已经将数据拟合好了
请教MATLAB高手或者EXCEL高手将下列两组数据用双对数坐标轴画图,并分三段进行拟合
matlab 已知函数 拟合数据
如果已知某曲线的一组数据值,拟合后怎样得到曲线的表达式呢?