实验一 初等模型

实验目的:

1. 掌握初等模型建模的基本思路和方法;

2. 掌握多种模型优劣的基本评判标准;

3. 掌握最小二乘法原理。

实验原理:

1.利用随机函数来生成随机数,并进行随机模拟;

2.对数据进行可视化处理;

3.对数据进行线性拟合。

代码如下:

import random

import math

import numpy as np

def random_int_list(start, stop, length):

 start, stop = (int(start), int(stop)) if start <= stop else (int(stop), int(start))

 length = int(abs(length)) if length else 0

 random_list = []

 for i in range(length):

   random_list.append(random.randint(start, stop))

 return random_list

def huahua(x):

    length = len(x)

    print(length)

    x.sort()

    print(x)

    if (length % 2)== 1:

        z=length // 2

        y = x[z]

    else:

        y = (x[length//2]+x[length//2-1])/2

    return y

n=50;

m=500;

b=0;

c=0

d=0

e=[]

f=[]

g=[]

h=[]

j=[]

import matplotlib.pyplot as plt

plt.show()

#for i in range (n):

for i in range(m):

    a = np.array(random_int_list(1, 1000,n ))

    #print(np.mean(a))

    b=b+np.mean(a)

    #e=e+[np.mean(a)]

    c=c+np.mean(huahua(a));

    d=d+max(a)+min(a)-1

    e=e+[np.mean(a*2-1)]

    f=f+[np.mean(huahua(a*2-1))]

    g=g+[max(a)+min(a)-1]

    h=h+[(1+1/n)*max(a)-1]

    j=j+[(1+1/(2*n-1))*(max(a)-1/2*n)]

   

    plt.hist(e,bins=10)

    plt.hist(f,bins=10)

    plt.hist(g,bins=10)

    #plt.hist(h,bins=10)

   # plt.hist(j,bins=10)

 #   plt.title("data analyze")

 #   plt.xlabel("height")

 #   plt.ylabel("rate")

print("平均值模型结果:",(b/m)*2-1)

print("中位数模型结果:",(c/m)*2-1)

print("两端间隔模型结果:",d/m)

print("平均间隔模型结果:",(1+1/n)*max(a)-1)

print("区间均分模型结果:",(1+1/(2*n-1))*(max(a)-1/2*n))

第2题:

利用表1的女子举重比赛的世界纪录建立线性模型,并利用该模型对表2的各级别冠军进行排序。

使用Matlab对表一中的数据进行线性拟合,w值为公斤级,y值为总成绩。Matlab代码如下:

W=[48,53,58,63,69,75];

Y=[217,233,252,262,276,286];

p=polyfit(W,Y,1);

Y1=polyval(p,W);

plot(W,Y,'rx');

hold on;

plot(W,Y1,'b');

legend('原数据','线性模型')

运行结果如下图所示:

图 7 线性模型拟合图

根据所建立的线性模型得出如下表格:

表 1 成绩拟合表

公斤级(KG

拟合成绩(kg

48

221.1

53

233.9

58

246.7

63

259.5

69

274.8

75

290.2

根据表二,得出线性模型与2016年里约热内卢奥运会女子举重比赛各级别冠军成绩差距表。

表 2 成绩差值表

拟合成绩(kg

冠军成绩(kg

与拟合成绩差值(kg

221.1

200

-21.1

233.9

212

-21.9

246.7

240

-6.7

259.5

262

+2.5

274.8

261

-13.8

290.2

274

-16.2

根据上表得出冠军排名如下表所示:

表 3 冠军排名表

姓名

公斤级

成绩

排名

邓薇

63

262

1

斯里素拉

58

240

2

向艳梅

69

261

3

林敬熙

75

274

4

塔纳桑

48

200

5

许淑净

53

212

6

总结与思考:

针对第一题,n值与m值逐渐变大,五个模型的结果越逼近1000.综合来看,平均间隔模型在五个模型中占优。当模拟时增加样本的大小n和样本的数量m,可以得到更加可信的结论。

针对第二题,使用线性模型可以快速得到拟合曲线,但使用线性模型仍有一定的误差。

通过本次实验,我不仅学会了使用MATLAB建立线性模型,也学会使用Python来产生随机数,并绘制直方图。同时也了解了平均值模型、中位数模型、两端间隔对称模型、平均间隔模型、区间均分模型进行估算的原理和操作,收获了许多。

猜你喜欢

转载自blog.csdn.net/m0_65168503/article/details/131143711