初等模型练习题

1.1 牙膏包装

题目来源:《数学模型》(第五版)–姜启源、谢金星、叶俊

1.1.1题目描述

在超市购物时你注意到大包装商品比小包装商品便宜这种现象了吗?比如佳洁士牙膏120g装的每支10.80元,200g装的每支15.80元,二者单位质量的价格比是1.14:1。使用比例方法构造模型解释这个现象。
(1)分析商品价格 C C C与商品质量 w w w的关系。价格由生产成本、包装成本和其他成本等决定,这些成本中有的与质量 w w w成正比,有的与表面积成正比,还有与 w w w无关的因素。
(2)给出单位质量价格 c c c w w w的关系,画出它的简图,说明 w w w越大 c c c越小,但随着 w w w的增加 c c c减小的程度变小,解释其实际意义。

1.1.2 问题分析

(1)价格由生产成本、包装成本和其他成本等决定。一般情况下生产成本与商品质量 w w w成正比;商品质量 w w w与包装容积 v v v成正比;包装成本与包装表面积 s s s成正比,其他与 w w w无关的成本我们假设其为常数。

1.1.3 问题建设

  1. w w w无关的成本我们假设其为常数,且大包装小包装的其他成本相同。
  2. 存在一个特征尺寸 r r r满足 r 2 ∝ s r^2\propto s r2s则有 r 3 ∝ v r^3\propto v r3v
  3. 商品价格与商品成本成正比。

1.1.4 模型

我们已知商品质量 w w w与包装容积 v v v成正比。由假设2我们可推出 s ∝ v 2 3 s\propto v^{\frac{2}{3}} sv32那么则有 s ∝ w 2 3 s\propto w^{\frac{2}{3}} sw32我们即可写出 s s s w w w的关系式 s = k 1 ∗ w 2 3 s = k_1*w^{\frac{2}{3}} s=k1w32,我们假设单位质量成本为 c o s t 1 cost_1 cost1;单位包装成本为 c o s t 2 cost_2 cost2;其余成本 c o s t 3 cost_3 cost3为恒定的常数。那么由假设3我们可有以下式子 C ∝ ( c o s t 1 ∗ w + c o s t 2 ∗ s + c o s t 3 ) 且 s = k 1 ∗ w 2 3 C \propto (cost_1*w+cost_2*s+cost_3) 且s = k_1*w^{\frac{2}{3}} C(cost1w+cost2s+cost3)s=k1w32 C = K ∗ ( c o s t 1 ∗ w + c o s t 2 ∗ k 1 ∗ w 2 3 + c o s t 3 ) C = K*(cost_1*w+cost_2* k_1*w^{\frac{2}{3}}+cost_3) C=K(cost1w+cost2k1w32+cost3)对上式进行简化( K = 1 , c o s t 2 ∗ k 1 取 为 c o s t 2 K=1,cost_2*k_1取为cost_2 K=1,cost2k1cost2)则上式变为 C = c o s t 1 ∗ w + c o s t 2 ∗ w 2 3 + c o s t 3 C = cost_1*w+cost_2*w^{\frac{2}{3}}+cost_3 C=cost1w+cost2w32+cost3那么则有单位质量的售价 c = C w = c o s t 1 + c o s t 2 ∗ w − 1 3 + c o s t 3 ∗ w − 1 c = \frac{C}{w}=cost_1+cost_2*w^{-\frac{1}{3}}+cost_3*w^{-1} c=wC=cost1+cost2w31+cost3w1我们对其可视化如下图:
在这里插入图片描述

import numpy as np
import matplotlib.pylab as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)

w = np.array([i for i in range(100,2500)])
cost_1 = 10
cost_2 = 1
cost_3 = 3
C = cost_1+cost_2*(w**(-1/3))+cost_3*(w**(-1.0))
plt.figure(figsize=(10,5));
plt.title("单位质量的售价随质量的变化")
plt.xlabel("$w$")
plt.ylabel("$c$")
plt.plot(w,C,'-',label="$cost_1 = 5,cost_2 = 0,cost_3 = 1$")
plt.legend()
plt.show()

我们从图中可以看出,单位质量的售价会随着质量的增加而变少。但是单位售价的减少值也会随着质量的增加而变少(曲线逐渐趋于平缓)因此不要过于贪图大包装的商品。

1.2 鲈鱼质量

1.2.1 题目描述

一垂钓俱乐部鼓励垂钓者将钓上的鱼放生,打算按照放生的鱼的质量给予奖励,俱乐部只准备了一把软尺进行测量,请你设计按照测量长度估计鱼的质量的方法。假定鱼池中只有一种鲈鱼,并且得到8条鱼的如下数据(胸围指鱼身的最大周长)
在这里插入图片描述

1.2.2 问题分析

由于都是鲈鱼,我们可以假设其平均密度都是一样的,那么鱼的质量与其体积成正比。根据所给出身长与胸围建立模型求得鱼的体积即可。

1.2.3 问题假设

  1. 各条鲈鱼的平均密度都一样
  2. 各条鲈鱼的基本形状无过大差别

1.2.4 模型

我们假设鲈鱼存在一个特征半径 r r r满足鲈鱼的胸围 l = 2 π r l = 2\pi r l=2πr那么则有鲈鱼特征截面积 s = π r 2 s = \pi r^2 s=πr2即可推导出鲈鱼的体积 v = s ∗ h = π r 2 ∗ h v = s*h = \pi r^2*h v=sh=πr2h, h h h为鲈鱼的身长。而鱼的体重 m = ρ v m = \rho v m=ρv我们即可假定一个参数 k 1 = ρ π k_1=\rho \pi k1=ρπ满足 m = k 1 r 2 h m = k_1r^2h m=k1r2h.
我们也可以假设鱼的体积 v ∝ h 3 v \propto h^3 vh3得到 m = k 2 h 3 m = k_2h^3 m=k2h3根据已给数据最小二乘拟合得到 k 1 = 0.03224772 , k 2 = 0.01459115 k_1=0.03224772,k_2=0.01459115 k1=0.03224772,k2=0.01459115

import numpy as np
import matplotlib.pylab as plt

h = np.array([36.8,31.8,43.8,36.8,32.1,45.1,35.9,32.1])
l = np.array([24.8,21.3,27.9,24.8,21.6,31.8,22.9,21.6])
m = np.array([765,482,1162,737,482,1389,652,454])
def Pfun1(t,k1):#第一个函数的拟合
    return k1*(t[0]**2)*t[1]

def Pfun2(t,k2):#第二个函数的拟合
    return k2*(t[1]**3)
lh = np.vstack((l, h))
popt1, pcov1=curve_fit(Pfun1, lh, m)
popt2, pcov2=curve_fit(Pfun2, lh, m)
print("k1的拟合值为:", popt1)
print("k2的拟合值为:", popt2)
'''
	输出结果:
	k1的拟合值为: [0.03224772]
	k2的拟合值为: [0.01459115]
'''

1.3 圆盘加工

1.3.1 问题描述

用已知尺寸的矩形板材加工半径一定的圆盘,给出几种简便、有效的排列方法,使加工出尽可能多的圆盘

1.3.2 思路

用正方形、六边形代替圆盘

1.4 动物尺寸

动物园里的成年热血动物靠饲养的食物维持体温基本不变,在一些合理、简化的假设下建立动物的饲养量与动物的某个尺寸的关系。

假设动物的特征尺寸为 l l l满足表面积 S ∝ l 2 S\propto l^2 Sl2。由于体温基本不变,且动物体内的热量主要由表面散失。所以可以有进食量 w ∝ S ∝ l 2 w\propto S \propto l^2 wSl2

1.5 体重&心率

1.5.1 问题描述

生物学家认为,对于休息状态的热血动物,消耗的能量主要用于维持体温,能量与从心脏到全身的血流量成正比,而体温主要通过身体表面散失,建立一个动物体重(单位:g)与心率(单位:次/min)之间关系的模型,并用下面的数据加以检验。
在这里插入图片描述

1.5.2 符号说明

符号意义
Q Q Q热量
q q q每次泵出的血流量
v v v心率
S S S动物表面积
m m m动物质量
l l l动物特征尺寸
V V V动物体积

1.5.3 模型

热量 Q Q Q与动物表面积 S S S成正比,我们可以知道 l 2 ∝ S , l 3 ∝ V l^2\propto S,l^3\propto V l2S,l3V因此有 S ∝ V 2 3 S \propto V^{\frac{2}{3}} SV32 V V V与动物质量 m m m成正比。通过常识我们可以知道 q ∝ m q\propto m qm Q = q v Q = qv Q=qv
由上述描述我们可以建立式子
Q = k 1 m 2 3 = k 2 m v Q = k_1m^{\frac{2}{3}} = k_2mv Q=k1m32=k2mv k 1 , k 2 k_1,k_2 k1,k2均为常数。化简我们可以得到 v = k m − 1 3 v = km^{-\frac{1}{3}} v=km31利用最小二乘拟合得到 k = 2089.73532836 k =2089.73532836 k=2089.73532836

import numpy as np
import matplotlib.pylab as plt
from scipy.optimize import curve_fit
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)

m = np.array([25,200,2000,5000,30000,50000,70000,450000])
v = np.array([670,420,205,120,85,70,72,38])
def Pfun1(t,k):#第一个函数的拟合
    return k*(t**(-1/3))
popt1, pcov1=curve_fit(Pfun1, m,v)
print("k的拟合值为:", popt1)

def P(m):
    return 2089.73532836*(m**(-1/3))
x = np.array([i for i in range(500000)])
y = P(x)
plt.figure(figsize=(10,5));
plt.title("m随v的变化")
plt.xlabel("$m$")
plt.ylabel("$v$")
plt.scatter(v,m,label="$v$")
plt.plot(y,x,'r',label = "拟合结果")
plt.legend()
plt.show()
'''
	k的拟合值为: [2089.73532836]
'''

在这里插入图片描述
可以看出,拟合效果较好。

  • 11
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kilig*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值