跟随数学趋势到我的线程。。。这是另一个非常有趣的数学分支。
关于我的另一个混沌理论线程,这里有一些可以在ACAD中创建的吸引子。
吸引子是通过数值求解各种非线性微分方程来创建的(在这种情况下使用Euler方法)。
我已经为您模拟了三个吸引子,供您进行实验:
洛伦兹吸引子:
这源于用于模拟天气系统的方程的简化,是大多数人在考虑混沌理论时想到的一般吸引子。。。爱德华·洛伦兹是混沌理论的先驱。
Rössler吸引子:
Duffing吸引子:
该吸引子是在数值求解非线性常微分方程即Duffing方程时获得的。
该方程模拟了阻尼振子,例如加权非均匀弹簧。为了数值求解该方程,我将二阶微分方程简化为两个一阶方程,然后使用Euler方法生成吸引子。
通过改变输入参数(代码中的a、b和c),可以生成各种吸引子。
- (defun c:lorenz (/ iLim i h a b c x0 y0 z0 x y z)
- (setq iLim 10000 i -1 h 0.01 a 10. b 28. c (/ 8. 3.) x0 0.1 y0 0. z0 0.)
- (entmake '((0 . "POLYLINE") (70 . ))
- (while (< (setq i (1+ i)) iLim)
- (setq x (+ x0 (* h a (- y0 x0)))
- y (+ y0 (* h (- (* x0 (- b z0)) y0)))
- z (+ z0 (* h (- (* x0 y0) (* c z0)))) x0 x y0 y z0 z)
- (entmake (list '(0 . "VERTEX") '(70 . 32) (cons 10 (list x y z)))))
-
- (entmake '((0 . "SEQEND")))
- (princ))
- (defun c:rossler (/ iLim i h a b c x0 y0 z0 x y z)
- (setq iLim 10000 i -1 h 0.01 a 0.2 b 0.2 c 5.7 x0 0.1 y0 0. z0 0.)
- (entmake '((0 . "POLYLINE") (70 . ))
- (while (< (setq i (1+ i)) iLim)
- (setq x (+ x0 (* h (- (- y0) z0)))
- y (+ y0 (* h (+ x0 (* a y0))))
- z (+ z0 (* h (+ b (* z0 (- x0 c))))) x0 x y0 y z0 z)
- (entmake (list '(0 . "VERTEX") '(70 . 32) (cons 10 (list x y z)))))
- (entmake '((0 . "SEQEND")))
- (princ))
- (defun c:duffings (/ iLim i h a b x0 y0 z0 x y z)
- (setq iLim 10000 i -1 h 0.04 a 0.2 b 0.3 x0 0. y0 0. z0 0.)
- (entmake '((0 . "POLYLINE") (70 . ))
- (while (< (setq i (1+ i)) iLim)
- (setq x (+ x0 (* h y0))
- y (+ y0 (* h (+ (- x0 (* x0 x0 x0) (* a y0)) (* b (cos z0)))))
- z (+ z0 h) x0 x y0 y z0 z)
- (entmake (list '(0 . "VERTEX") '(70 . 32) (cons 10 (list x y z)))))
-
- (entmake '((0 . "SEQEND")))
- (princ))
我希望你喜欢这个有趣的数学领域的探索,当然,如果你有任何问题,请提问。
李 |