Wolfram 2020 08 中国学生大使演讲会总结

今晚通过Zoom参加了了Wolfram 2020 08-20 中国学生大使演讲会。 在中场休息的时候,无意中还中了一个大奖,自己就免费获得了一套价值3000RMB的System Modeler建模程式,准备在自己的MacBookPro笔记本上装一套System Modeler,用来研究各种物理和生物建模。 对Mathematica有兴趣的小伙伴可以参加Wolfram 2020/09/08 中国虚拟技术大会,有很多大佬来演讲。 Mathematica 元编程 演讲者的Github地址 一提到MetaProgramming,就会想起Lisp,通过代码来生成代码是Lisp语言的强项,当然Mathematica也可以做得很好,从演讲中,学习到如何通过一段简洁优雅的代码来生成一段复杂的代码,有点艺术份儿在里面了。我突然想起计算机科学里的名著SICP,从google上搜索了一把看看有没有人用Mathematica来学习SICP,最后发现很少,所以自己决定用Mathematica来实现SICP当中的例子。 Mathematica 编译 MMA可以通过Compile,FunctionCompile来加速代码的运行,同时我们也可以将MMA Code 转换成 C Code 进行编译,最后得到一个完整的不依赖于MMA运行时环境的二进制文件,可以直接在操作系统上运行。 其中有一个值得学习的项目 MathCompile,通过它能够比Compile更加靠近函数式编程。 Mathematica R-Link 处理生物医学信息 这里讲到了如何在Mathematica中结合R语言来做数据分析,大部分介绍了如何使用和编码,在医学领域的例子没有讲。 Mathematica 深度视网膜分析 这一讲我比较喜欢,因为自己最近一直在研究疾病方面的深度学习,包括深度检测Covid-19,视网膜病变,以及心脏等疾病的预测。 演讲的内容,基本就是收集图像,图像预处理,图像增强处理(通过DeepLearning增强图像的细节),搭建UNet图像分割神经网络(用于分割视网膜血管和视盘),训练神经网络,最后检测网络模型的准确度,主要的目标就是检测分类糖尿病引起的视网膜病变,青光眼,黄斑变性。 几张PPT截图: Mathematica 和 Python 之间相互调用 这个基本上就是两种语言相互取长补短。Python语言可以做很多底层琐碎的事情,Mathematica有高级函数。 写在最后 期待 2020 Wolfram 中国虚拟技术大会 会议内容如下: 9/8 7 pm - 8 pm: Wolfram System Modeler 简介——杨圣汇 9/8 8 pm - 9 pm: Wolfram Mathematica 综述——严密博士 9/9 9 am - 10 am: 智能问答系统 Wolfram|Alpha 简介 —— 陆蒙博士 9/9 10 am - 11 am: Wolfram 语言中的影音处理——陳建宇 9/9 6:30 pm - 7:15 pm: 采用 Mathematica 设计金属 3D 打印工业产品级制品——吴飞 9/9 7:15 pm - 8:00 pm: Wolfram 语言中的图像处理技术——Silvia Hao 9/9 8:00 pm - 9:00 pm: Wolfram 语言在平面几何中的应用——杨圣汇 9/10 9 am - 10 am:Mathematica 图形图像语言——陆玉柱博士 9/10 10 am - 10:30 am: 适用于主流编辑器的 Wolfram 语言开发环境——康明宇 9/10 10:30 am - 11:30 am: 类神经网路的原理介绍以及其在 Wolfram 语言里的使用——叶茂创博士

August 20, 2020

Intro Wolfram Physic Project

回忆 还清楚的记得在初中毕业那段时间对数学和理论物理特别感兴趣,自学了高等数学和大学基础物理学,依旧能回忆起第一次喜欢上一位女生就是因为在一起讨论自然科学压轴题的解题思路,课堂上一起辩论弹簧弹性势能的变化问题,还有因为无缘参加萧山区初中生学科竞赛,自然老师第一时间把竞赛题复印出来让我去做然后帮我评分和批改,从那之后我对探索物理和数学充满了愉悦感,进入高一后每天吃完中午饭都会去图书干翻翻科技杂志,后来第一次参加全国高中生应用物理知识竞赛,记得试卷的最后一道压轴题我用了微积分方式去解题,出考场的时候根本就没有想到自己会获得杭州赛区二等奖的成绩,毕竟自己没受过专业的解题训练,学校萧十一中还专门在学期末表彰大会上表扬了我,发了五百的奖金,那个时候的我心里特别开心,我还是特别感激我们高一时候的班主任兼化学老师姚老师,去学校报名的时候,我看到了他手上的科学分数排名单,然后他告诉我以后我就是班级的化学课代表,在每一次的考试中他都会表扬我某一道题的解题思路很清晰。还记得那个时候自己已经开始接触广义相对论原理,每个周天去学校的路上,都会在新华书店站个一到两个小时翻看和相对论有关的书籍和科普资料。 一转眼十五年过去了,现在听着巴赫的小无《恰空》,鼻子一酸忍不住会留下眼泪,对比以前学校时候的自己,现在自己每天重要的事情是努力赚钱,钻研自己喜欢的领域,十五年之后我想重新开始钻研数学,大学四年我立下自己的目标学会小提琴,毕业之后就喜欢上了计算机,开始系统学习Linux,找到了和计算机相关的工作,中途中也玩了摄影和影视。我想现在继续改变自己,有两件东西我永远不能丢掉理论物理和小提琴,现在已经30岁,我要重新拿起自己初高中那段时间喜欢的理论物理学,包括自己创业阶段也希望能和数学物理沾点边,回到最初的起点,累了就练练小提琴,不给自己留下人生的遗憾。正是从这一点出发,我就建立了这个网站,希望能够将自己的所见所闻所感所想全部记录下来。今天看了Wolfram有关他自己发现和解释宇宙终极理论的文章,所以决定花一周时间学习他的图理论,然后将自己学习到的知识和见解记录在这篇文章中,这就是我写这篇文章的动机。 旅程 Wolfram 所总结的理论就是基于简单的规则,然后给定系统初始状态,根据该规则,系统不断的递归演化自身。 规则 , 符号规则表述 {{x, y}, {x, z}} -> {{x, z}, {x, w}, {y, w}, {z, w}} 初始状态 系统演化过程 规则 符号规则表述 {{1, 2, 3}} -> {{4, 4, 2}, {4, 1, 3}} 初始状态 系统演化过程 这样我们就会去思考能否穷举所有可能的规则,而我们的宇宙正好匹配了我们这些规则中的一部分,比如我们按照相同的开始状态,却按照不同的规则去演化这个系统,我们可以得到如下的样例: 所有这些最终状态的起点都是 这里我们可以想象到弦理论,这个理论告诉我们构成这个世界的最基本形态就是琴弦,琴弦不同的振动频率,就产生了不同的形态,然后这些微小的琴弦经过不断的叠加,最后组成了我们所能看到的物质,Wolfram也是想揭示,宇宙的构成正是由简单的结构加上简单的规则经过不断自身迭代繁衍所产生的。 什么是空间 我们首先基于这条规则{{x, y, y}, {z, x, u}} → {{y, v, y}, {y, z, v}, {u, v, v}}来看下,最后会演化出怎么样的世界。 规则表述: 初始状态: 经过两百步的迭代之后,我们可以得到最终的生成如下,演变过程动画: 这里我们就会发现有些有趣的东西在里面,刚开始是一个简单的自循环结构,然后基于我们的规则开始演化,最后生成了空间中类似片状的网,随着迭代次数继续增加,这个空间中的片演化得越来越稠密,形成了我们熟知的连续可微分流形。 类比我们生活中常见的流水,当我们从稍远的地方看去时,水是一种流体,它的表面都是连续的,但是当我们不对的靠近和放大流水,我们却得到了一个离散的世界,看到了水分子,水分子又由氢原子和氧原子构成,所以我们可以空间是一种离散的组织,通过不断的叠加演化,最终让我们看上去空间好像是连续的。 最后给出上述规则500步的演化动态图: 基于同样的原理,我们能否通过一个简单的规则来演化出一个三维的空间图。 ...

August 10, 2020

Wolfram 2020 08 20演讲会

Wolfram 2020 08-20 中国学生大使演讲会 以下主题都是我感兴趣的内容,目前自己创业主要用的语言就是 Wolfram 和 Python,Wolfram 主要进行原型设计和对最初思路的探索验证。看完以下演讲之后,我会专门针对生物医学和视网膜图像分析这块领域做为深度学习的研究课题。 18:00-19:00 北大物理系王竞先: Mathematica 中的 Meta-programming 基础 将介绍 Mathematica 计算流程,相关函数及机制,编程思路,案例详解。主要思路即从 Mathematica 的计算流程入手,讲解在 Mathematica 中做 Meta-programming 的思路和一些基础手段,以大小案例为主要内容。 19:00-19:30 上海交大电子电气学院吴可:Wolfram 语言中的编译 我们都知道在最常用的 Mathematica 中,通过前端与内核通信执行命令;在Wolfram Engine 中则需要其作为解释器来运行指令,然而这种解释型的运行方式通常需要为虚拟机提供内存,同时速度较慢。并且在任何一台希望执行Wolfram 语言的机器上都需要部署解释器。在此次讲座中,我们将通过 Compile 及版本12中的新函数 CompileFunction 了解 Wolfram 语言中通过编译加速运行及部署代码的可能性。 19:30-19:40 中场休息 19:40-20:10 上海交大医学院荆泽宇:使用 Mathematica 中的 R-Link 处理生物和医学信息 R语言是很多科研人员处理医学和生物信息过程的首选。因其很好的开源性,R有许多适用于处理生物信息的扩展包,不过R编程的复杂性限制了其推广和应用。而神奇的 Wolfram 语言却具有简洁、智能和美观等互补特点,R 与 Mathematica的强强联合催生出了处理生物信息的强大工具,R-Link 应运而生。本期学生大使演讲将为大家介绍R-Link的安装和使用,并结合实际案例来演示 R-Link 的强大功能,并希望能在未来帮到听众朋友们。 20:10-20:40 西南大学化学工程系祝模芮:利用 Matheamtica 进行深度视网膜图像分析 利用 Mathematica 对人眼视网膜进行分割与分类两个任务,分割任务要求清晰分割出视网膜血管以及视盘。分类部分提供了糖尿病性视网膜病变(DR),青光眼和年龄相关性黄斑变性的分类。 20:40-21:10 华东理工计算机吴宇迪: Python 与 Mathematica 的交互 多语言交互是件很有意义的事,而且 Python 受众广,生态丰富。本次介绍易上手的 Mathematica 调用 Python,与 Python 调用 Mathematica 的方法。以及利用 Mathematica 强大函数在Python中解决问题的案例。 ...

July 28, 2020

Epidemic Modeling

SIR Modeling SIR 经典模型主要是在传染病领域用来预测感染人数的未来趋势。 S[t] 表示susceptible易感人群 I[t] 表示infected已经感染的人群 R[t] 表示recovered已经康复人群 参考: MathWorld: SIR Model Kermack-McKendrick Model Kermack-McKendrick Model Kermack-McKendrick 最初的模型是为了解释像在1665-1666年发生的鼠疫,1865年发生的霍乱,感染人群的数量随着时间的变化。 该模型假定总人口是是固定的,传染病的潜伏期是瞬间的,传染持续时间与疾病的周期相同,并且假定人群都是无差异的,无性别及种族差异。 该模型使用了三个非线性常微分方程: beta 表示 infection rate 感染率 gamma 表示 recovery rate 恢复率 i 表示已感染人群 r 表示已恢复健康的人群 s 表示易感染人群 预设值: beta = 20%, gamma = 15%, i(0) = 0.1, r(0) = 0, s[0] = 10 Modelica 源码 model SIRModel parameter Real beta = 0.2; parameter Real gamma = 0.15; Real i; Real r; Real s; initial equation s = 10; i = 0.1; r = 0; equation der(s) = (-1) * beta * i * s; der(i) = (-1) * gamma * i + beta * i * s; der(r) = gamma * i; end SIRModel; 模型预测图: ...

April 6, 2020

Foundations of Modelica systemmodeler with Mathematica (1)

为什么学习 Modelica 之前看到过一本书《模型思维》, 这段时间正好处在CoVid-2019疾病肆虐全球,偶然之间看到关于传染病学的预测模型SEIR,借着这个机会开始研究数学模型,决定重新捡起大学的时候学习的数学分析,常微分方程,偏微分方程,微分几何学等课程。接触到了Modelica这门语言,由于一直在学习Wolfram Mathematica,对Wolfram产品系列的SystemModeler颇有好感,于是下手购买了SystemModeler家庭版,购买了一本《Modelica多领域物理系统建模入门与提高》书籍,开始了对Modelica的探索,预期希望对数学模型的建立能够有一个较深刻的认识,利用数学模型预测某个事件的未来发展规律和在定量数据分析中获得更多的隐藏信息。 建立模型 - 液压系统 语言采用 Mathematica 液体不可压缩 根据Hagen-Poiseuille关系式首先建立方程组: 预设置参数: 假设两边的管子横截面积相同为1 解上述微分方程 h1, h2 的高度变化图 h1[t], h2[t] 方程组如下所示: 最后创建 SystemModeler 模型 model W8918fcdd72d8462a890fa97776822164 parameter Real g = 9.81; parameter Real mu = 1 / 500; parameter Real pipeDia = 0.2; parameter Real pipeLen = 0.1; parameter Real rho = 0.2; Real h1; Real h2; Real p1; Real p2; initial equation h1 = 1; h2 = 0; equation p1 = g * rho * h1; p2 = g * rho * h2; der(h1) = (-1) / 128 * Modelica.Constants.pi * pipeDia ^ 4 * pipeLen ^ (-1) * mu ^ (-1) * (p1 + (-1) * p2); der(h2) = 1 / 128 * Modelica.Constants.pi * pipeDia ^ 4 * pipeLen ^ (-1) * mu ^ (-1) * (p1 + (-1) * p2); »; end W8918fcdd72d8462a890fa97776822164; 将Modelica源码复制到SystemModeler运行,得到如下h1, h2的高度变化图形 ...

March 30, 2020 · FengChen