【数学建模】CUMCM-2013B 碎纸片的拼接复原 解题思路整理

这题看到的反应就是 很好玩 而且答案可以确定正确与否,但是真的没啥实用性(队友:这碎纸片碎的仿佛直接在电脑上用PS处理了一下……)

基本信息

边缘

这是感觉这道题最不符合实际的地方(讲道理)因为边缘信息保留的如此完整……完整到前俩题直接靠这个就能处理掉……

间距

这个对于中文比较明显(因为这种字体蛮规则的),觉得一张纸不出意外可以确定比较具体的位置

文本

这个嘛主要是英文字体了
(突然想起了手写字体识别的那个神经网络)(醒醒这个应该没那么复杂)
然后文本信息主要用在拼接处和确定行的位置

处理

然后虽然知道这个图片中的所有信息具体操作还是有难度的……(讲道理)
然后还有拼接的时候对以前的错误能不能修正啊这样
这个没具体写过我也不知道诶……
想到的也就是一个是聚类(不过会不会点太多了……)还有一个就是评价每种拼起来的价值然后使得价值最低(然后就类似于一个规划了?)

看到有一些修正错误的方法,比如先拼成田字这样
对于双面的处理……感觉方向会晕……

这个题待我有空试试 = = 感觉蛮好玩的 到时候再整吧(醒醒又立Flag)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目描述: 一艘质量为$m$的船停靠在距离海岸线$L$的海域, 用一根长为$L$的铁锚将其系住。现有一条绳子, 一端固定在海岸上某点, 另一端系在船上。 要求绳子始终保持水平, 即绳子与水面的夹角为90°。 现在需要设计一个系泊系统,使得满足以下要求: 1. 绳子的长度为$L$; 2. 系泊系统能够承受风浪力矩$mgl\sin\theta$($\theta$为船在水平方向上的倾斜角度,$g$为重力加速度,$m$为船的质量,$l$为船到绳子固定点的水平距离); 3. 系泊系统的总重力不超过$G$,其中包括锚和绳子的重力; 请设计一个系泊系统,确定锚点在海岸线上的位置,以及绳子的长度。 思路: 1. 通过分析,可以得到系泊系统的主要受力情况:重力,浮力,张力和风浪力矩。其中,重力和浮力是与锚点位置无关的,可以先计算出来;风浪力矩是与船的倾斜角度有关的,需要在计算时考虑。 2. 假设锚点位置为$(0,0)$,船的位置为$(x,y)$,则绳子的长度$L$可以表示为$\sqrt{x^2+y^2}$。考虑绳子的张力,由于绳子与水面垂直,所以绳子的张力只有水平方向的分量,即$T\sin\theta$,其中,$\theta$为绳子与水平面的夹角。 3. 计算重力和浮力。船的重力为$mg$,浮力为$\rho Vg$,其中,$\rho$为水的密度,$V$为船的体积。绳子和锚的重力可以通过绳子的长度$L$和锚的重量来计算,即$g(L-x)\rho_s A$,其中,$\rho_s$为锚的密度,$A$为锚的横截面积。 4. 考虑风浪力矩的影响。假设风浪力矩对船的影响可以视为一个力矩,大小为$mgl\sin\theta$,方向垂直于船的水平方向,根据右手定则可以确定其方向。由于绳子的张力与水平方向平行,所以风浪力矩只对船的倾斜角度$\theta$有影响。 5. 在计算时,可以将锚点位置和绳子长度作为变量,通过求解最优化问,确定最佳的锚点位置和绳子长度,使得系泊系统满足要求。可以考虑使用数值优化方法进行求解。 参考代码: ``` import numpy as np from scipy.optimize import minimize def objective(x): L = np.sqrt(x[0]**2 + x[1]**2) theta = np.arctan(x[1] / x[0]) T = (m*g + rho*V*g + (L-x[0])*rho_s*A) / np.sin(theta) M = T * L * np.sin(theta) return -M def constraint1(x): L = np.sqrt(x[0]**2 + x[1]**2) theta = np.arctan(x[1] / x[0]) T = (m*g + rho*V*g + (L-x[0])*rho_s*A) / np.sin(theta) return G - (m + rho_s*A*(L-x[0]) + rho*V)*g - T*np.cos(theta) def constraint2(x): return x[0] def constraint3(x): return x[1] # 系泊系统参数 m = 1000 # 船的质量 V = 100 # 船的体积 rho = 1000 # 水的密度 rho_s = 7800 # 锚的密度 A = 10 # 锚的横截面积 g = 9.8 # 重力加速度 G = 100000 # 系泊系统的总重力 # 初始值 x0 = [10, 10] # 约束条件 cons = [ {'type': 'ineq', 'fun': constraint1}, {'type': 'ineq', 'fun': constraint2}, {'type': 'ineq', 'fun': constraint3} ] # 求解最优化问 sol = minimize(objective, x0, method='SLSQP', constraints=cons) # 输出结果 print(sol) ``` 参考资料: [1] 赵凌宇. 数学建模算法与应用[M]. 北京:清华大学出版社,2016. [2] 谷超豪,李涛,刘宝印,等. 数学建模算法应用与分析[M]. 北京:科学出版社,2016.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值