现在时间是:
当前位置:首 页 >> 数学建模实训>> 教学区>> 文章列表

16074302 作业4

作者:付敏   发布时间:2018-12-29 13:10:28   浏览次数:46

犯罪例子

课本上的已经给出了犯罪落脚点的预测方法,本次作业是根据预测犯罪时间进行的。

1.模型的假设

(1)假设案件的类型为连环犯罪

(2)假设只考虑犯罪的时间和地点,不考虑罪犯的心理状况、交通治安条件等(3)假设罪犯的作案范围比较稳定

(4) 假设谋杀与恶意攻击不做区分,均为犯罪行为

2.模型的建立与求解

2.1基于作案时空的预测模型4.1.1预测下次可能的犯罪时间

以历史第一次犯罪时间为时间零点,求出第t次犯案与第一-次犯罪时间的时间间隔作为时间序列x0(t),t=1,2,…,21 ,经过一次累加得新的序列x1(t),t=1,2,…,21。得累加后的时间序列拟合

 

将拟合值与实际值进行对比,如表一

对模型进行精度检验,得后验差比值C=0.249,小误差概率p=095。根据

p> 0.80,C<0.45,表示预测等级为合格。

      预测下一次发生案件距第一次发生案件的时间间隔为:2848.4天。即第22次犯罪距第21次犯罪的时间间隔为: 2848. 4- 2546.2=302. 2

 

2.2预测下次可能的犯罪地点

      通过求所有历史犯罪地点的经纬度坐标的平均值,确定出质心点坐标为(-1.7357.53.7460)。根据“多次犯罪地点的质心代表潜藏点”所以罪犯可能的居住地坐标为(-1.7357.53.7460)

以各个历史犯罪地点到质心的距离做距离序列y0(t),t = 1, 2, … ,21,进行一次累加得到新的距离序列y1(t),t = 1, 2, … ,21。对新的距离序列y1(t)进行曲线拟合,得如下拟合曲线:

拟合函数为y1(t)=-0.0035t2 +0.2968t-02314,t=1,2, ,21,将计算得到的拟合累加距离与实际累加距离做误差分析,得误差分析表如下:

通过误差分析,得拟合值与真实值误差较小,并预测的下一个累加值为

4. 6219 ,即预测下一个案件发生的地点距质心的距离为:4. 6219-4. 4741=0. 1478

并不是自己一个人独立完成的,附录中的代码是在书上找到的,借助这个代码我们完成到以上所描述的步骤。

附录

灰色预测时间程序:

%function []=k() %灰色预测程序

%A=input('请输入原始数据;')

A=[0,41,51,117,199,309,581,658,722,736,819,893,931,941,1046,1369,1520,1873,1908,1950,1962];

%m=input('请输入需要预测的数据个数;');

B=cumsum(A)  %原始数据累加

n=length(B) %计算累加数据矩阵的个数;

plot(1:n,B,'*r', 1:n, B)

for i=1: (n-1)

      C(i)=-0.5*(B(i)+B(i+1));

end

BB=[C;ones(1,n-1)];  %建立矩阵BB

AA=A(:,2:n) ;

Aa=AA';

Bb=inv (BB*BB' ); %inv 是求逆矩阵

u1=Bb*BB;

u2=u1*Aa%计算矩u

a=u2(1);

b=u2(2) ;

for i=1: (n+m)

F(i)= (A(1)-b/a) *exp(a*(1-i))+b/a; %计算拟合值F (i)

end

F

G(1)=F(1) ;

for i=2: (n+m)

G(i)=F(i)-F(i-1) ; %计算预测值G (i)

end

G

YC=G(: ,n+1:n+m)

 

%检验

for i=2:n

e(i)=A(i)-G(i);  %计算残差

E(i)=(A(i)-G(i))/A(i); %i计算相对残差

 

end

ee=e(:, 2:n)

EE=E(:, 2:n)

%计算原始数据的方差

ap=mean(A) %原始数据的平均值

sa=0;

for i=1:n

sa=sa+(A(i)-ap)^2;

 

end

s1=sqrt(sa/n) %原始数据的方差

 

%计算残差的方差

ep=mean(ee) %残差的平均值

en=length(ee) ;

se=0;

for i=1:en

se=se+(ee(i)-ep)^2;

 

end

s2=sqrt(se/en) %残差的方差

 

c=s2/s1 %计算后残差

p1=0.6745*s1; count=0;

for i=2:n

if (abs(e(i)-ep) <p1)

count=count+1;

end

end

 

%显示预测精度等级

p=count/en

if(p>0.95&c<0.35)

disp('预测精度等级为:')

elseif (p>0.80&c<0.45)

disp('预测精度等级为:合格')

elseif (p>0.70&c<0.50)

disp('预测精度等级为:勉强')

elseif (p<=0.70&c>=0.65)

disp('预测精度等级为:不合格')

end

 

累加距离序列曲线拟合程序:

%function []=r()

clc, clear

%Y=[0 41 94 211 410 719 1300 1958 2680 3416 4235 5128 6059 7000 8046 9415 10935 12808 14716 16666 18628] ;

%Y=input('请输入原始数据; ')

Y=[0.213,0.342,0.6041,0.8100,1.0239,1.5290,1.7802,1.8507,2.0663,2.1317,2.7345,2.9404,3.0056,3.1073,3.6719,3.8140,3.8663,3.9559,4.1309,4.2411,4.4165];

[n1, n]=size(Y(1,:));

X=1:n;

X=1:21;

plot(X, Y,'*R' ,X, Y)

gtext('实际曲线')

 

 

T=1 :200:2500;

A=polyfit(X, Y, 2)

YY=polyval (A,X)

figure (2)

plot(X, Y,'*R' ,X, YY)

legend('实际值','拟合曲线' )

 

for i=1:n

e(i)=Y(i)-YY(i) ;

E(i)=abs(e(i))/Y(i);

 

end

e %计算误差

E

 

m=input('请输入预测值的个数:');

a=(n+1) : (n+m) ;

[mn,nm]=size(a);

for i=1:nm

c(i)=A(1)*a(i)^2+A(2) *a(i)+A(3);

end

 

 

 







上一篇:没有了    下一篇:没有了

Copyright ©2019    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2019 lingw.net.粤ICP备16125321号 -5