此示例表明 , 使用中等程度的多项式通过推断数据来预测未来是一项冒险的业务 。 该示例比MATLAB?早 。 它始于1977年由Prentice-Hall出版的Forsythe , Malcolm和Moler撰写的“数学计算的计算机方法”中的一项练习 。 现在 , MATLAB和HandleGraphics?使更改参数和查看结果变得更加容易 , 但是基本的数学原理没有改变 。 这是1900年至2000年的美国人口普查数据 。
需要这些哦
matlab软件
电脑
方式/
1在号令窗口 , 输入如下:
% Time interval
t = (1900:10:2000)';
% Population
p = [75.995 91.972 105.711 123.203 131.669 ...
150.697 179.323 203.212 226.505 249.633 281.422]';
% Plot
plot(t,p,'bo');
axis([1900 2020 0 400]);
title('Population of the U.S. 1900-2000');
ylabel('Millions');
按“Enter”键 。
得如下图1所示 。
文章插图
2您对2010年的生齿有何猜想?
输入如下号令:
p
按“Enter”键 。
得如下图2所示 。
文章插图
3让我们用t中的多项式拟合数据并将其外推到t =2010 。 多项式中的系数是经由过程求解包含11 x 11 Vandermonde矩阵的线性方程组而获得的 , 该矩阵的元素是标度时候的幂 , A(i , j)= s(i)^(nj);
程序如下:
n = length(t);
s = (t-1950)/50;
A = zeros(n);
A(:,) = 1;
for j = n-1:-1:1
A(:,j) = s .* A(:,j+1);
拟合数据p的度为d的多项式的系数c是经由过程求解线性方程组而获得的 , 该线性方程组涉及Vandermonde矩阵的最后d + 1列: A(: , n-d:n)* c?= p
4【如何预测美国人口】若是d小于10 , 则方程式多于未知数 , 而且最小二乘法是合适的 。 若是d等于10 , 则方程可以切确求解 , 而且多项式现实上是对数据进行插值的 。 无论哪种环境 , 都可以利用MATLAB的反斜杠运算符来解决该系统 。 这是三次拟合的系数 。
输入如下程序:
c = A(:,n-3:n)\p
按“Enter”键 。
得如图3所示 。
文章插图
5此刻 , 我们评估1900年至2010年之间每年的多项式并绘制成果 。
程序如下:
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
按“Enter”键 。
如图4所示 。
文章插图
6比力三次拟合和四次拟合 。 请注重 , 外推点很是分歧 。
程序如下:
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
按“Enter”键 。
如图5所示 。
文章插图
推荐阅读
- wps文字如何设置默认保存为xml格式
- 如何使用电话号码查快递
- 如何正确穿戴胸罩
- 如何制作艾叶米果
- 如何简便的制作剁椒
- 如何制作糖炒当归黑豆
- 如何制作柠檬泡椒凤爪
- 教你如何制作酵素
- 如何制作柠檬酵素
- 拼多多如何联系客服?