- 博客(176)
- 资源 (3)
- 收藏
- 关注
原创 Non-stiff ODE在MATLAB中非刚性ODE求解
Rayleigh方程的ODE求解。展示了ODE45的常规应用。这个问题本身也是非常有意思的自振荡系统,非常多的研究。
2025-08-18 12:55:09
802
原创 ODE Solvers in MATLAB中ODE求解器的基本选择
摘要:本文介绍了MATLAB中ODE求解器的基本选择与应用。常微分方程(ODE)在物理、工程等领域广泛应用,MATLAB提供了多种求解器来处理显式ODE、线性隐式ODE、微分代数方程(DAE)等不同类型问题。文章详细讲解了高阶ODE和复数ODE的转化方法,并区分了刚性/非刚性问题的求解策略。推荐的求解器选择方法是:先尝试ode45(非刚性),若失败再考虑ode15s(刚性)或其他高阶求解器。文中还提供了向量化编程示例和特殊ODE的处理建议。
2025-08-15 09:53:12
1078
原创 ODE-by-Matlab-01-人口增长模型
ODE专题01:利用ODE建模现实世界。马尔萨斯模型与Logistic模型比较:从指数增长到有限增长 摘要:本文对比了两种经典的人口增长模型。马尔萨斯模型假设人口相对增长率为常数,导致指数型增长,但无法解释人口饱和现象。Logistic模型则引入资源限制因素,通过非线性修正项使人口趋于稳定值。通过分析联合国人口预测数据,验证了Logistic模型更符合长期人口发展趋势。文章还探讨了Logistic模型的数学形式和Verhulst的原始推导过程,展示了从简单线性模型到复杂非线性模型的演进思路。
2025-08-14 15:30:35
781
原创 Dimensional Analysis量纲分析入门
这篇文章介绍了量纲分析的基本概念和应用。首先阐述了物理学中的幂律关系,证明了有单位的物理量之间只能形成幂律关系。接着介绍了SI国际单位制的7个基本量纲及其数学表达。通过单摆周期和空气阻力抛体运动两个实例,展示了如何利用量纲分析推导物理量之间的关系。当方程出现多解时,量纲分析仍能提供有价值的物理信息。文章以数学推导为主,结合实例说明量纲分析在物理研究中的重要作用。
2025-08-13 20:27:21
925
原创 Get Data in Pyside6实现一个Graph Digitizer
本文介绍了一个基于PySide6开发的图形数据提取工具,用于从科研图像中提取坐标数据。文章详细阐述了该工具的功能需求、基本原理和实现方法。核心算法采用最小二乘法建立像素坐标与实际坐标的映射关系,通过用户交互完成坐标轴标定和数据点提取。软件UI设计简洁直观,支持图片加载、坐标标定、数据提取和导出功能。相较于商业软件GetData Graph Digitizer,该开源方案避免了版权问题,为科研工作者提供了一种可定制的数据提取解决方案。文中还提供了完整的代码实现和可执行文件下载链接。
2025-08-11 11:00:29
1114
原创 044_Standalone App in Matlab中发布独立应用
跟别说,我们MATLAB仙人还提供了默认参数的选项,顿时把这个冒烟测试的例子提升到它不应该有的高度。这个应用的功能超级牛叉,应用可以接受0个或者1个字符串参数,输出你好世界,来自xxx。下面给出一个简单的命令行应用打包的例子,为了展示过程,我们先整一个最简单的TUI应用,然后打包成独立App。文件里面包含了一些关于这个应用的信息,比如如何安装MATLAB Runtime,如何运行这个应用等等。来安装这个应用,但是这个过程太繁琐了,我们可以把这个应用打包成一个安装包,然后一键安装。只要给够钱,牛马们都能干。
2025-01-04 17:19:51
1198
原创 pyinstaller冻结打包多进程程序的bug:无限创建进程直至系统崩溃
这两篇文章都没有提到下面的这个重要问题:采用Pyinstaller冻结打包多进程程序时,必须非常小心。这个技术线在Windows上会有一个非常严重的Bug。直接运行打包后的程序会造成无限创建进程,直到系统崩溃。
2025-01-04 17:14:45
1502
原创 007-构建工具大进步:Amper Amper Amper!
Amper赛高。Amper可以独立运行,也可以作为Gradle插件运行。Amper的配置文件简单,易读。Amper有一个问题就是Repositories的配置,在yaml文件中设置的时候,库还是排在系统默认的三个库的后面……你懂的,我还去提了一个issue……
2024-12-31 19:21:20
1174
原创 006-Jetpack Compose for Android之传感器数据
只有经过了上面两步,才能什么同步Gradle 工程之类的,然后build一下,确认所有的依赖都下载完了。大概我们可以在上方设置一个标签,显示实时得到的最新数据,下方主体部分一个图标,动态更新,显示姿态的变化。打开Androi的Studio,新建一个项目,选择Jetpack Compose模板。这里实现一个动作,双击图表,会弹出一个对话框,让用户输入文件名,然后导出数据。,这个是Compose中的一个组件,用来显示Android原生的View。的组件,这个组件是我们自己写的,用来显示传感器数据。
2024-12-31 19:18:36
1042
原创 043_Tcpip Instruments in Matlab中连接和调试采用TCP/IP协议的仪器
设置多路路由,可以同时访问不同网段的仪器。Tcpclient对象是用来连接和调试采用TCP/IP协议的仪器的。回声服务器可以用于测试我们实现的客户端功能。我们也可以构造tcpserver对象,用于接收客户端的请求,留到下回。
2024-12-15 09:58:51
1636
1
原创 042_Unscented Kalman Filter in Matlab无迹卡尔曼滤波
无迹卡尔曼滤波(Unscented Kalman Filter, UKF)是一种基于卡尔曼滤波的非线性状态估计方法,它通过一种称为无迹变换(Unscented Transformation)的方法,将非线性系统的状态估计问题转化为线性系统的状态估计问题,然后使用卡尔曼滤波器进行状态估计。这是一种在线方法,也就是说,它会连续地对系统状态进行估计,而不是像批处理方法那样,一次性处理所有的数据。假设我们对 van der Pol Oscillator 的状态进行观测,但是观测值是带有噪声的。系统的框图如上所示。
2024-12-15 09:55:11
1085
原创 041_Compare_Matrix_Squre_Sum_in_MATLAB中矩阵平方和的比较
矩阵平方和的定义是对矩阵中的每一个元素进行平方,然后求和。对于一个矩阵AAAsum∑i1m∑j1nAij2sumi1∑mj1∑nAij2这个平方和计算,在某些机器学习的算法中、或者特殊的优化问题中都会涉及到。进行算法开发,一定要按照基线算法、算法优化的思路来考虑。对算法的效率进行比较,最好选择不同的规模来分析问题。加速比是一个很好的指标,能够直观的看出算法的性能提升。
2024-12-06 00:14:00
1226
原创 040_Wave_PDE_In_Matlab求解时变波动方程
当一个偏微分方程,可以写成上述散度形式(Divergence Form),即可以采用有限元方法很方便的求解,这里有一个条件就是方程的系数矩阵必须不包含函数的偏微分(可以包括函数、坐标、时间等变量)。接着,就给出被积函数的整体形式作为函数的第一个参数,并把因变量,只有一个可以省略。代码中唯一个好玩一点点的就是最后的gif生成,当目录下已经有文件的时候,就增加一个编号,这样保证gif文件是新的,当。的形式调用时,就会把图形增加到后面,如果是一个已有的gif,就会发生不希望的情况。
2024-12-06 00:07:48
1066
原创 039_SettingsGroup_in_Matlab图形界面的设置选项
首先,我们可以看看Matlab的语言选择,这个选项在Matlab-General下面的最后一个面板,Desktop Language,可以选择Chinese和Engish。在上面的1、2、3、4、5这几个区域的右上角,都有一个小小的三角形,点击这个三角形,可以展开一个菜单,里面有一些设置选项。如果关掉这个80列的选项,就会利用命令行窗口的所有列来显示,如果还是不够显示,就是进行上面这样的标记列范围的换行显示。中,也可以打开一个设置窗口,里面有很多设置选项,可以设置Matlab的界面和GUI的各种行为。
2024-11-23 09:48:40
1633
原创 038_High_Level_Skip_in_Matlab中的高端跳过循环
两种循环方式,for和whilebreakreturncontinue控制循环提前结束和跳过for循环中使用break更加自然while循环中使用break的条件可以合并到while表达式中设计UI的过程中,一定要考虑清楚每个元素的职责,不要让一个元素负责多个职责。
2024-11-23 09:44:34
1029
原创 037_Local_Meshing_Control_in_MATLAB中控制局部网格划分
工具箱提供了有限的节点增加方法,通过增加节点来控制局部网格划分。最好还是在分析之初,或者在迭代过程中回到几何创建的过程中,来额外产生边和面,从而控制局部网格划分。
2024-11-18 16:08:19
1206
原创 036_Geometry_Function_In_Matlab中定义偏微分方程求解2D几何区域的函数方法
这个几何形状是PDE求解的区域。也就是说偏微分方程这个区域中取值(初始值和状态值、系数),在区域的边界上设定边界条件。m∂2u∂t2d∂u∂t−∇⋅c∇uaufm∂t2∂2ud∂t∂u−∇⋅c∇uauf或者,方程组m∂2u∂t2d∂u∂t−∇⋅c⊗∇uaufm∂t2∂2ud∂t∂u−∇⋅c⊗∇uauf。
2024-11-14 14:52:15
1109
原创 035_Progress_Dialog_in_Matlab中的进度条对话框
这个可以取消的进度条,在实际使用中应该足够保守,仅仅用于那些长时间计算、并且在计算中不允许用户进行其它交互的场合。不然,过于激进地使用模式对话框还是很容易影响用户体验的。
2024-11-14 08:59:00
1028
原创 004-Kotlin界面开发快速入水之TicTacToe
这个程序是一个简单的井字棋游戏,我们通过Jetpack Compose来实现了界面,通过Kotlin来实现了逻辑。至于程序的实现细节,源代码的解读,就放在下次。
2024-11-04 19:15:55
1230
原创 034_Structural_Transient_In_Matlab结构动力学问题求解
函数进行可视化,这个函数可以把求解的结果映射到网络结构上,对点、线、面进行着色。当时求解这个问题,在最外面的竖直切面加载了一个静态的固定的力。注意,我们这里设置边界条件的函数,由小写字母开头,而设置好的边界条件的变量,首字母是大写的。这里,因为是一个动态问题,我们实际更想要更好地理解在动态载荷下,结构是如何发生变形和位移的。,这个函数提供了更多的可视化功能,可以对结构的变形、位移、应力、应变等进行可视化。加载的设置方法,类似于边界条件的设置。当这里使用一个函数是, 对函数的输入和输出有固定的要求。
2024-11-02 15:34:12
1298
原创 033_Structure_Static_In_Matlab求解结构静力学问题两套方法
求解静力学问题,求解过程和结果都没有什么让人惊喜的地方。下面,在讨论一个周期加载的问题,这个问题是一个动力学问题。我们就直接用统一建模框架来做。
2024-11-02 12:45:46
1209
原创 003-Kotlin界面开发之声明式编程范式
在深入进行Jetpack Compose的学习之前,我们先通过一个简单的DSL实现,了解了Jetpack Compose的核心思想:通过声明式的DSL来描述界面。这样的方式非常灵活,而且非常容易理解,也非常容易调试。通过这样的方式,我们可以更加专注于界面的结构,而不需要关心界面的构造过程。这个实现的过程中,两个语法糖要自己在大脑里反复转换,最后一个参数是匿名函数,则可以移到括号外面;接受者匿名函数相当是临时定义一个扩展函数。有一点点绕,但是多改改代码,也能够理解。
2024-11-01 15:28:38
1096
原创 002-Kotlin界面开发之Kotlin旋风之旅
其他需要掌握的知识,如协程、Kotlin标准库、Kotlin特性等,都是Kotlin的高级特性,对于Compose Desktop的开发这个学习阶段并不是必须的。
2024-10-31 18:14:59
1490
2
原创 001-Kotlin界面开发之Jetpack Compose Desktop学习路径
Compose Desktop是一个非常强大的桌面应用程序框架,它提供了一种现代、简洁、易于使用的方式来构建桌面应用程序。学习Compose Desktop需要掌握Kotlin的基本语法、Jetpack Compose的基础知识、状态管理、布局和修饰符、用户输入的处理、列表、高级主题、测试和应用部署等内容。通过上面的学习过程,就有可能获得对Compose Desktop较深入的理解,并能够构建自己的桌面应用程序。那么,就让我们开始这段……感情……哦不……旅程吧……
2024-10-31 17:12:01
2050
原创 032_Tiledlayout_in_Matlab中的分块图布局
这个方式比之前的subplot函数更加灵活,可以更加方便的绘制多个子图。但是,这个功能在R2019b之后才有,所以需要注意版本的问题。
2024-10-29 11:11:39
2014
原创 031_Arguments_in_Matlab中的函数参数
arguments块中,可以定义输入参数、输出参数、重复输入参数、重复输出参数。可以使用内置的验证函数,也可以自定义验证函数。可以使用结构体的方式来定义命名参数。可以用于抛出错误,error也可以用于抛出错误。
2024-10-29 09:31:20
1291
原创 030_Subplot_In_Matlab中多图绘制之subplot函数
当然,从下面的例子可以看到,当有两个子图发生重叠时,就把先绘制的那个子图删除替换成新的子图。这里,先把第一行的两个子图绘制完成后,再绘制第二列的一个子图,这样就把第一行的第二个子图删除了。这里有同样的问题,把上面脚本中子图坐标系的位置稍微调整一下就会发现,当有两个图重叠时,后绘制的图会把先绘制的图覆盖掉。这里比较烦人的就是要手动调整标注(箭头、方框)的位置,而且这个坐标是针对整个图的,不是针对子图的,也就是左小角坐标是。简单的说,子图的编号采取了行先的方式,下面给出一个循环的例子,可以看到,图号按照。
2024-10-28 17:55:17
3021
2
原创 029_Common_Plots_Matlab常见二维绘图
来查看详细的帮助,帮助中通常还有海量的例子来学习如何调用,并且在高版本的Matlab里面,还能打开相应的LiveScript,修改参数查看绘图结果。实际上,我们调用上述绘图函数的时候,可以把第一个参数设置为一个坐标系对象,如果省略这个参数,Matlab会自动调用。用新的工具,可以更加方便的控制坐标系的位置和大小,以及坐标系之间的间距。的参数,可以设置子图的大小,这个参数是一个二维数组,第一个元素是行数,第二个元素是列数。可以通过对句柄的操作,来修改图形的属性,例如颜色,线型,线宽等等。
2024-10-28 17:51:39
1048
原创 028_Comma_Separated_List_in_Matlab中的逗号分割列表
这玩意一般都不知道是什么,Comma-separated list,CSL, 虽然,用Matlab的时候天天会用到。这到底是个什么玩意?或者,更进一步,这到底是不是个玩意?每次调用一个参数大于一个的函数时,我们就是用了一个CSL,a.k.a.,逗号分割列表。ans =0 00 0每次我们显式定义一个数组/矩阵/元胞数组时,我们就写了一个或者多个逗号分割列表。ans =1 2 3 34 5 6 7>> {1,2,3}ans =1×3 cell 数组。
2024-10-26 17:38:40
1430
原创 027_UIImage_in_Matlab图形界面开发中的图片
图形在Matlab中是一个矩阵UIImage是Matlab图形界面开发中常用的控件通过imread和imwrite可以读取和保存图形图像也可以存储为mat文件,乃至文本文件,前者通过save和load可以保存和加载图形,后者通过和readmatrix可以保存和加载。
2024-10-26 10:15:32
693
原创 026_Callbacks_in_MATLAB中APP界面回调函数编程实现
回调函数是Matlab GUI和App设计中的一个核心的内容,通过用户注册回调函数,在界面操作时App代码会自动调用相应代码,实现各种功能。回调函数的注册方式有两种:函数句柄和匿名函数。回调函数具体实现方式有三种:全局函数、局部函数和嵌套函数。
2024-10-21 21:09:10
2391
原创 025_Position_Layout_in_Matlab界面布局之设定位置
Position属性对于图形对象来说是一个通用的属性,包括左下角坐标、宽度和高度通过设置Position属性,可以实现uifigure界面的布局通过uistack函数,可以设置组件的Z维度,来实现组件的层次可以直接捕获整个uifigure对象,然后在回调函数中访问uifigure对象的UserData属性,来实现功能。这在有些情况下能够获得一些收益。
2024-10-21 00:10:23
1408
原创 024_Symbolic_Math_in_Matlab符号数学工具箱的使用思路
一定要分离符号计算和数值计算,以免符号计算的低效影响数值计算的效率。fplot函数可以直接绘制符号表达式的图像。符号函数是符号表达式的一种,可以直接调用,定义的方式为。符号表达式可以通过函数转化为函数句柄或者函数文件,这样就可以在数值计算中使用。
2024-10-19 23:52:13
1573
原创 023_Layout_and_Containers_in_Matlab界面布局与容器
uifigure是根容器,其他容器都是它的子容器,通过设置句柄不可见,可以防止gcfgcaclose等函数对App的影响。是唯一的布局容器,通过设置行高、列宽、内边距、间距,可以很容易实现VBox和HBox。uipanel是一个面板容器,可以包含其他控件,可以设置标题、背景颜色等。uitabgroup和uitab是标签页容器,可以包含多个uitab,每个uitab可以包含其他控件。
2024-10-19 14:45:00
1803
原创 022_matrix_dancing_in_Matlab中求解一个超简单的矩阵问题
矩阵定义的两个基本元素是:类型和大小。通过zerosoneseyerand等函数可以定义不同性质的矩阵。矩阵的构造、操作和访问是Matlab的基本操作,也是每次计算的核心流程。通过zerosoneseyerand等函数可以定义不同性质的矩阵。通过等运算符可以对矩阵进行操作。也可以通过.*./.^等运算符对矩阵进行逐元素操作。通过end两个符号来访问矩阵的部分元素就;逻辑索引也非常强大,对部分满足条件的元素进行赋值。通过arguments关键字可以指定输入参数的类型,通过。
2024-10-18 10:42:10
961
原创 021_Thermal_Transient_in_Matlab统一偏微分框架之热传导问题
利用统一框架,求解动态热传导方程的过程与求解静力学方程类似,同样是建立模型、设定参数、求解、可视化结果。不是特别一样的在于,热传导方程的相似参数就只有一个,通过相似性分析,可以简化设定参数的过程,最后结果反应出来的只是时间尺度上的差异。通常而言,α是一个很小的量,因此传热的过程相对来说是比较慢的,通过无量纲化,计算步长比实际时间要小很多。
2024-10-18 10:38:54
929
原创 020_FEM_Meshing_in_Matlab工具箱PDE之网格划分
PDE工具箱提供的网格生成函数最大的优点是非常透明,网格数据结构非常清晰,可以通过model.Mesh来查看网格的各种属性。通过全局控制参数,可以对整个网格进行调整,通过局部控制参数,可以对网格的局部进行调整。通过函数,可以查看网格的质量,找到质量不好的元素,然后通过局部控制参数进行调整。PDE的网格工具功能相对单一,但是对于一般的几何体和相对偏理论的问题,已经足够使用。
2024-10-16 15:56:24
1894
3
原创 019_Baseline_optimization_in_Matlab中考虑优化的基线方法
优化是一个很高大上的词语,但是在实际工作中,优化通常是一个很无趣而平凡的事情。优化算法的基线通常会选择网格搜索和随机搜索。水论文总是要搞点优化,千万别太在意,也别太伤感情,每件事情都有代价,优化一样。
2024-10-14 09:55:36
1144
科研工具图片曲线数据提取软件(Python版带源代码)PythonGetData
2025-08-11
24点游戏程序(自动产生答案)
2024-08-16
Lisp的语言服务LSP,VSCode的插件Alive所需要的lisp软件包,可以用quicklisp安装
2024-07-18
Lisp实现的统计代码行数的命令行工具
2024-07-18
JavaFX 图标浏览与搜索软件
2022-04-11
Windows数独游戏:Java FX实现
2022-07-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅