作业4
作业描述
第4课讲了有限差分求解热传播问题,我课后进一步学习了有限差分等内容,基于参考资料完成了这个作业。本作业的求解是explicit的,没有用到第4课中稀疏矩阵相关的内容。
(ps: 其实我还没搞明白这个模型的物理意义>_<,所以这个作业就当作是一个数值计算程序的练习吧)
如果有错误请大家多多指正。(因为我也不晓得这个结果对不对>_<)
第4课讲了有限差分求解热传播问题,我课后进一步学习了有限差分等内容,基于参考资料完成了这个作业。本作业的求解是explicit的,没有用到第4课中稀疏矩阵相关的内容。
(ps: 其实我还没搞明白这个模型的物理意义>_<,所以这个作业就当作是一个数值计算程序的练习吧)
如果有错误请大家多多指正。(因为我也不晓得这个结果对不对>_<)
更新一个implicit求解的版本,用上了第四讲中的稀疏矩阵
但也并不是完全Implicit的,只是对温度t求解时是implicit的,对状态p求解时还是explicit的。(事实上原始论文R. Kobayashi, Modeling and numerical simulations of dendritic crystal growth, Physica D: Nonlinear Phenomena. 63 (1993) 410–423. https://doi.org/10.1016/0167-2789(93)90120-P 中也是这么做的)
两个版本的最终呈现效果是一样的,但是这个implicit版本只能以10帧左右运行,而之前explicit版本可以稳定60帧。。。
是不是哪里出了错误?
我能想到导致效率下降的原因就是explicit求解时所有的运算全都在一个For循环里,而implicit求解过程把解线性方程组的过程拿出来了,相当于多了一个循环
Hi, @starfall。 非常欢迎来到太极论坛!
Implicit版本比explicit版本跑到慢是正常的,因为Implicit需要求解一个线性方程组(是一个很耗时的操作),而explicit是不需要这么做的。
确实哦!感谢助教回答^_^
哈哈,不客气哈。欢迎多多上传作业~