找回密码
 注册
关于网站域名变更的通知
查看: 521|回复: 1
打印 上一主题 下一主题

Matlab之用linearization估计人口的数量

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-2 13:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

+ g2 Q" I* E) J8 y, j7 a解题思路:) g) U+ ~4 f4 u  [/ r7 u$ @: q
   这种是求解当方程数量多于未知数时,可以使用正规方程来求解。
" H$ Y0 P* O  A  ~2 r; y   这种linearization方法是将pt = c1*e^(c2*t),两边取ln得到线性方程组。
$ [- j% g8 R/ E   线性化之后呢就要进行方程求解,也就是A'Ax = A'b,那么使用x = ((A')*A)\((A')*b);就可以求出x的值,也就是lnc1和c2的值。记得一定要像上面那样写,A'*A在前面,A'*b在后面。
: Q2 `1 G+ b- k& @- z  M# A; k! b5 }4 {& U+ g6 R1 @
代码如下:2 P4 X$ R' t* h* u
% page 210  computer problem 3! R# x7 e# y+ M7 x& M& ?$ ^( j
% using linearization to evslute the populstion of 19800 P; I* R% S, S
% Input: None6 ]7 c+ I) S3 t$ ]1 z2 I! }% j
% Output:None; x7 c' O; _) K
% Display the the result and the error of the caculation
# d: x% }' E' F3 N1 i$ Tfunction page_210_3% T' r1 ^( E- Z+ [
format long
# J) }/ ?+ ~, R3 m9 qA  = [1 0;1 10;1 30;1 40];  %这里的0是以1960年为起点的,所以1970年为10
' l. Y' J* j4 s4 b$ I% Eb  = [log(3039585530);log(3707475887);log(5281653820);log(6079603571)];
: N- ]& o$ O; g- d3 C3 {% gx  = ((A')*A)\((A')*b);
* m8 j: @/ j7 E) p! M# Mc1 = vpa(exp(x(1)),10)$ n' p  W3 E& T; u3 \/ q
c2 = vpa(x(2),6)
5 x( S& y% N2 b; H% S% Xsyms t;
/ ^& z9 p3 Y9 B) t3 Ddisp('使用linearation的方法得到人口的表达式为:');+ ^. p5 c# F0 N1 g# y0 }: ^" F
Pt = vpa(c1*exp(c2*(t-1960)),10)
! ?+ x) u& n) r5 ~$ ddisp('使用linearation的方法估计1980年人口的为:');
3 @5 _) p; P( U, ~2 F' A, [5 ePro_1980 = vpa(subs(Pt,1980),10)
' K  U2 X) Y* v; s* q6 [disp('使用linearation的方法估计1980年人口与实际人口误差为:');7 _: ]4 ~$ Y' I* `4 |; L
vpa(abs(Pro_1980 - 4452584592),9)

该用户从未签到

2#
发表于 2020-12-2 15:01 | 只看该作者
Matlab之用linearization估计人口的数量
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 15:59 , Processed in 0.171875 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表