咳咳……嗯,好,我们研究个问题——阻尼弹簧振子模型
我们先用牛二定律把无外力驱动情况下,阻尼弹簧振子的振动方程写出来!
设一个弹簧振子的质量为m,弹簧劲度系数为k,弹簧振子在有阻尼f=-bv情况下振动
根据牛顿第二定律,写出弹簧振子的运动定律:
移项即可得到
其中b称为阻尼系数,k则为劲度系数,工程上称为刚度系数
我们要研究这个二阶微分方程伴随k、b的动响应最大值是怎样的。也就是说,要研究在不同的k值、b值下,x的最大值是多少。物理图景角度讲,就是要找到振子偏离平衡位置所达到的最远距离伴随阻尼系数、刚度系数的变化。
可以预先设想,如果进行数据绘图,得到的结果是应该是三维曲面,曲面方程是这样的形式:
我们首先来想最简单的计算实现形式。大家可能会想到,对于一个双变量的函数最大值,可以使用for嵌套for的方式实现,其思想本源就是“控制变量”。内层for循环可以在k不变时遍历b的值,进而计算x的最大值,外层for循环可以遍历每一个k值(或者把关于k、b的循环反过来也行),这样就可以遍历每一个k、b的值,计算出x的最大值了。至于微分方程的求解,可以直接利用ODE来求解,应该不是很困难。我们不妨按着这个思路来实现一下!
首先确定参数取值范围,在此我尝试了一些取值: