原创 【MATLAB】预测计算

2019-8-25 10:54 857 8 8 分类: 工业电子 文集: MATLAB
上一次讲了点云的曲线重建今天说一下点云的预测计算。
例如:
t = (1900:10:2000)';
  • p = [75.995 91.972 105.711 123.203 131.669 ...
  • 150.697 179.323 203.212 226.505 249.633 281.422]';
  • plot(t,p,'bo');
  • axis([1900 2020 0 400]);
  • title('1900-2000 数据');
  • ylabel('百万');
  • n = length(t);
  • s = (t-1950)/50;
  • A = zeros(n);
  • A(:,end) = 1;
  • for j = n-1:-1:1
  • A(:,j) = s .* A(:,j+1);
  • end
  • c = A(:,n-3:n)\p
  • v = (1900:2020)';
  • x = (v-1950)/50;
  • w = (2010-1950)/50;
  • y = polyval(c,x);
  • z = polyval(c,w);
  • hold on
  • plot(v,y,'k-');
  • plot(2010,z,'ks');
  • text(2010,z+15,num2str(z));
  • hold off
  • 复制代码

    显示:

    可能有人就会问,这个预测对吗?

    其实预测本身就是一种算法,没有对错之分。

    这个地方可以用另外的一种算法去预测。

    例如:

    t = (1900:10:2000)';
  • p = [75.995 91.972 105.711 123.203 131.669 ...
  • 150.697 179.323 203.212 226.505 249.633 281.422]';
  • plot(t,p,'bo');
  • axis([1900 2020 0 400]);
  • title('1900-2000 数据');
  • ylabel('百万');
  • n = length(t);
  • s = (t-1950)/50;
  • A = zeros(n);
  • A(:,end) = 1;
  • for j = n-1:-1:1
  • A(:,j) = s .* A(:,j+1);
  • end
  • c = A(:,n-4:n)\p;
  • y = polyval(c,x);
  • z = polyval(c,w);
  • hold on
  • plot(v,y,'k-');
  • plot(2010,z,'ks');
  • text(2010,z-15,num2str(z));
  • hold off
  • 复制代码

    显示:

    是不是发现这个两个曲线不是完全的一样啊。

    预测本身就是利用现在的数据与预测未知的数据。

    能正确的使用软件完成我们的工作是最上之法。

    作者: curton, 来源:面包板社区

    链接: https://mbb.eet-china.com/blog/uid-me-3876349.html

    版权声明:本文为博主原创,未经本人允许,禁止转载!

    PARTNER CONTENT

    文章评论0条评论)

    登录后参与讨论
    我要评论
    0
    8
    关闭 站长推荐上一条 /3 下一条