编程训练:模拟退火算法(Simulated annealing algorithm)
程序图标 ( Program Icon ) 程序介绍 ( Program Introduction) 好吧,研究一下算法。编程训练,过一过后面再具体应用到。 测试算例( Test Examples ) 微信公众号 ( Wechat Subscription) 欢迎关注 “结构之旅” 微信公众号
实干、实践、积累、思考、创新! Tag: 结构工程博士 结构工程师 伪程序员 结构抗震 地震工程 超限设计 软件定制 环评减振 振动控制 减隔震 施工过程模拟 小品钢结构 有限元研发 参数化设计 大震弹塑性
程序图标 ( Program Icon ) 程序介绍 ( Program Introduction) 好吧,研究一下算法。编程训练,过一过后面再具体应用到。 测试算例( Test Examples ) 微信公众号 ( Wechat Subscription) 欢迎关注 “结构之旅” 微信公众号
程序图标 ( Program Icon ) 程序介绍 ( Program Introduction) 做研究做分析我们经常需要跟各种数据打交道,为了清晰的表达数据之间的关系,我们往往需要用到各种图,如散点图,折线图等等。首先,图是表达各种变量之间关系的最直接的方法,一个好的图往往使人理解问题事半功倍。因此,我经常觉得,一篇好的文章,如果有图,那么它的图肯定是很清晰的。因此,你不妨可以通过文章中的图的质量来判断文章的质量,如果一篇文章的图做得很丑,表达又不清晰,通常这不是一篇好文章 🙂 🙂 ,当然事情也不绝对! 因为图的重要,所以我们尝尝需要各种绘图软件,如Excel,Origin,Sigmaplot,Matlab等。 除此之外,图还有另外一个功能:寻找变量之间的关系。由于图可以表达变量之间的关系,因此,我们常常通过变量之间的图来寻找变量之间的关系,从图中获取变量信息是一个十分重要的学问。对于从图获得信息这个功能,上面的一般软件都可以做,但是往往不方便,尤其是当变量特别多、同时需要不断变换各种坐标轴的变量、需要利用各种信息筛选数据并进行绘图时,上述提到的软件就特别不方便。 由于当时做博士论文时涉及到一些参数分析的东西,为了更好的做科研,就自己做了简单的小软件,并且命名为: Multi-Parameter Plot,软件基本功能是: (1)导入数据,并快速选取坐标轴变量,绘制2D 和 3D 坐标图。 (2)可以根据不同的变量对数据进行分类,并且每一个变量可以设置多个区间,按不同区间交叉绘图。方便我们控制变量绘图,观察数据的规律。 (3)可以设定选定变量的容差,寻找数据中选定变量的容差在限值范围的数据,并通过虚线链接起来。方便我们控制变量绘图,观察数据的规律。 (4)绘制选定变量的累积分布函数(Cumulative Distribution Function)。 (5)图形输出到EXCEL文件。 Multi-parameter Plot 基本满足了我的要求,在做博士论文的时候节省了大量的时间,软件适合去做前期参数分析、观察和找规律,然后可以导出数据,用前面提到的那些软件绘制漂亮的图形。 程序界面( …
程序图标 ( Program Icon ) 程序介绍 ( Program Introduction) 3 5 7扑克牌游戏,基本规则是,每次从一行中抽取任意张牌,最后一张牌,谁抽到谁输。 前一排年会上,容总发起了 3 5 7游戏挑战,我连续下了两盘,都输了,所以回去研究了一下,游戏十分有意思,也是很有规律的,并编写了这个小程序。现在看这个游戏,还是很简单的。感兴趣的小伙伴可以试试。 程序界面 ( Program Interface ) 下载 ( Download ) GAME 357: Game357_byCJD_20180929.7z 微信公众号 ( Wechat Subscription) 欢迎关注 “结构之旅” 微信公众号
编程训练: 离散点的闭合路径 [Closed Path for points] 微信公众号 ( Wechat Subscription) 欢迎关注 “结构之旅” 微信公众号
编程训练: 凸包问题。就是寻找散点的凸多边形包围盒。 百度就可以找到算法原理和代码,由于处理数据时候用到,就练练手。 算法真的很有趣。 微信公众号 ( Wechat Subscription) 欢迎关注 “结构之旅” 微信公众号
The ε-δ identity (ε-δ等式), one of the most frequently used identity in solid mechanics. Here is a simple derivation of the ε-δ identity. Step 1~2: Step 3: Step 4: Step 5: …
最近喜欢上了用电脑写字。哈哈。 😎 三角函数和差化积公式的几何推导。 😎 😎 😎 😎 微信公众号 ( Wechat Subscription) 欢迎关注 “结构之旅” 微信公众号
悬链线(Catenary)是一种曲线,它的形状与悬在两端的绳子因均匀引力作用下掉下来之形相似。适当选择坐标系后,悬链线的方程是一个双曲余弦函数。(1) 悬链线的基本概念(2) 悬链线的公式推导(3) 悬链线的参数确定思路及数值求解算法
康威常数 (Conway’s Constant) 是 Look-and-say sequence 相邻两项数字长度的比值的极限,常用希腊字母λ表示,约等于1.303577,由数学家 John Conway 发现。
元包自动机(Cellular Automata)这里就不介绍了,可以在我的其他博文中了解到,有兴趣的朋友也可以去百度一切。这里利用元包自动机进行森林火灾蔓延模拟,当然这肯定不是基于物理的模拟了。最简单的基于元包自动机的森林火灾模型(Cellular Automata Forest Fire Model)大家可以在这个网站 Cellular Automata Forest Fire Model 了解到,作者用Java写了小程序进行模拟。 森林火灾模型介绍(The rules of Cellular Automata Forest Fire Model): 燃烧的树(红色格子)会在下一步变成空地(白色格子)。A burning tree (red cell) becomes an empty site (white cell)。 如果一颗非燃烧的树(绿色格子)周围有树燃烧,那么它会在下一步变成燃烧的树(白色格子)。A tree (green cell) becomes …
生命游戏其实是一个零玩家游戏(百度百科),这个小游戏是一个简单的二维元包自动机(Cellular Automaton),1970年由英国的数学家John Horton Conway提出,关于生命游戏的介绍参考Wikipedia的Conway’s Game of Life。
基于1D元包自动机实现Sierpinski三角形。Sierpinski Triangle by 1D Cellular Automata。
著名的几何概率问题 —— 蒲丰投针问题(Buffon’s Needle problem ),最初由数学家Georges-Louis Leclerc, Comte de Buffon于18世纪提出。问题可表述为:假定长度为L的的针,随机投到画满间距为T的平行线的纸上,求针和平行线相交的概率。同时有趣的是,该概率值和圆周率(PI)有关系,因此,我们可以利用投针试验来计算圆周率(PI)的值。实际上,这个试验有价值的地方在于:我们可以设计一个试验,它的概率与我们感兴趣的一个变量有关,然后通过大量试验来估算这个量,这其实就是目前使用得十分广泛的蒙塔卡罗法(Monte Carlo method)的主要思想。
前两天在网上无意看到了很多关于分形的东西。感觉十分漂亮。分形体现了一种有序和无序的统一。有兴趣的可以上网搜些资料看看,还有很多专门的分形软件、网站、论坛。 最出名的分形我想就是MandelbrotSet和JuliaSet了。因为分形几何学的创始人就是IBM研究室的数学家B.B.Mandelbrot。下面简单介绍一下MandelbrotSet和JuliaSet的算法。其实算法原理还是比较简单。 MandelbrotSet由一个二次迭代方程:zn+1 = zn2 +c,z0=c所得到。也就是对所有的复平面上的点c都进行迭代,不发散的点都属于Mandelbrot集的范围。 JuliaSet由一个二次映射:zn+1 = zn2 +c 产生。c为一定值。也就是选定一个常复数,然后对所有的复平面上的点z进行迭代,不发散的点都属于Julia集的范围。 其中z和c都是复数。迭代的次数越多,图形显示就越精细,可以无限细分,同时分形还有自相似性,就是无限放大一个细小的部分,看起来和原来的部分一样。 由于分形的无限性,对图形的显示和算法都是极大的挑战。一般编程的书都会用这个例子来介绍多核计算、并行计算。哈哈。手痒了,还是编个程序来看一下效果吧。截图如下: 1、先是Mandelbrot Set(迭代次数50): (1)来个黑白调色方案(黑色的就是Mandelbrot集的范围) (2)黑白的调色方案太单调了,来看看彩色的效果如何 2、JuliaSet是什么样的呢,我们接下来看看,这次选择迭代次为500次,从下面的图也可以看到,显示的内容更加细致和漂亮。由于Julia集和选择的复常数C有关,下面选择了几个典型的例子来看看效果。。 (1)c=-0.8+0.17i (2)c=-0.7-0.38i (3) c=0.3 哈哈,真的很漂亮,配色很重要,配色没配好,在网上随便找了几个配色方案。算法也没有仔细去考虑。很多书有专门的分形算法介绍。 小结:数学真的很美,很好玩。
在网上http://blog.csdn.net/hero82748274/article/details/5304386看到漂亮的秀曲线图。 基本原理很简单,就是沿着某几个方向划分等间距的点,然后将这些方向等间距的点连线。 图形可以有很多种不同的组合情况,比如不同的角度,不同的划分间距。
平面几何中,Morley定理 (Morley’s Theorem) 的表述为:任意三角形相邻角三等分线的3个交点组成等边三角形。该定理由英国数学家Frank Morley于1904年发现。 Morley定理十分有趣,后人对该定理有多种不同的证明方式。定理文字描述起来十分拗口,用程序实现一看就明白,如下图: 可见,不管三角形的节点怎么变,相邻的三分角平分线交点组成的图形总是个等边三角形,如图红色三点。 数学很美!
数学是个很好玩的东西。高等数学中,我们学过很多二次曲面,它们都有很漂亮的3D效果,如下图: 1.椭圆锥面 (公式:z^2=(x^2)/(a^2)+(y^2)/(b^2)) 2.双曲抛物面(传说中的马鞍面)真的很像马鞍,哈哈。(公式:z=(x^2)/(a^2)-(y^2)/(b^2)) 3.椭圆抛物面 (公式:z=(x^2)/(a^2)+(y^2)/(b^2)) 4.椭球面,有点像外星巨蛋,可爱,哈哈。(公式:(x^2)/(a^2)+(y^2)/(b^2)+(z^2)/(c^2)=1) 5.单叶双曲面 (公式:(x^2)/(a^2)+(y^2)/(b^2)-(z^2)/(c^2)=1) 6.双叶双曲面 (公式:(x^2)/(a^2)-(y^2)/(b^2)-(z^2)/(c^2)=1) 7.这个不知道怎么称呼,但是经常见到 (公式:(z^2)*sqrt(x^2+y^2)=a*sin(sqrt(x^2+y^2))^2) 8.不知道叫什么名称,网上找的。(公式:z=a*((Sin(x^2) + Sin(y^2))/Exp(x^2 + y^2)) 9.函数类似matlab中的peak函数,初学matlab的绘图一般都讲这个函数 (公式:z=a*x*exp(-(x^2+y^2))) 10.由sin(x)和cos(y)组成的函数,我想说很像章鱼小丸子。哈哈。 (公式:z=a*cos(x/b)*sin(y/c)) 小结: 1.数学很美。 2.上面的曲面可以很简单的在MATLAB中实现,如果你喜欢,不妨去试一试。
[01] Ground Motion Selection (选波) 服务
[02] 著:《PERFORM-3D原理与实例》
[03] 著:《有限单元法-编程与软件应用》
[04] 著:《结构地震反应分析-编程与软件应用》
[05] 著:《有限单元法 Python编程》
[06] 著:《结构地震动力响应Python编程》
[07] 著:《Grasshopper建筑结构参数化建模应用实例》
[08] 土木工程试验数据处理软件汇总
[09] 自编程序 [Software Box]
![Grasshopper建筑结构参数化建模应用实例[Practical Examples of Parametric Modeling for Building Structures Using Grasshopper]](http://www.jdcui.com/wp-content/uploads/2026/01/封面.png)