{"id":624,"date":"2026-10-03T21:41:39","date_gmt":"2026-10-03T13:41:39","guid":{"rendered":"https:\/\/arkdoc.cc\/?p=624"},"modified":"2026-10-03T21:46:41","modified_gmt":"2026-10-03T13:46:41","slug":"624","status":"publish","type":"post","link":"https:\/\/arkdoc.cc\/index.php\/2026\/10\/03\/624\/","title":{"rendered":""},"content":{"rendered":"\n<div id=\"preview\" class=\"latex-article tex2jax_process dark\">\n    <h1>Aizawa Chaotic Dynamics and Attractor Topology<\/h1>\n    \n    <p>\u7231\u6cfd\u5438\u5f15\u5b50\uff08Aizawa Attractor\uff09\u662f\u7531\u65e5\u672c\u5b66\u8005 Aizawa \u4e8e 1982 \u5e74\u63d0\u51fa\u7684\u4e00\u79cd\u975e\u7ebf\u6027\u81ea\u6cbb\u5fae\u5206\u65b9\u7a0b\u7ec4 [cite: 163, 164]\u3002\u5176\u76f8\u7a7a\u95f4\u8f68\u9053\u5448\u73b0\u51fa\u6781\u5177\u51e0\u4f55\u5bf9\u79f0\u7f8e\u611f\u7684\u7403\u4f53\u65cb\u6da1\u7ed3\u6784 [cite: 138, 140]\u3002\u8bba\u6587\u6307\u51fa\uff0c\u867d\u7136\u67d0\u4e9b\u53c2\u6570\u4e0b\u7684\u76f8\u8f68\u8ff9\u5728\u89c6\u89c9\u4e0a\u6781\u5176\u76f8\u4f3c\uff0c\u4f46\u901a\u8fc7\u8c03\u6574\u53c2\u6570\uff0c\u7cfb\u7edf\u4f1a\u5728\u5468\u671f\u3001\u51c6\u5468\u671f\u3001\u6df7\u6c8c\u4e0e\u6536\u655b\u72b6\u6001\u4e4b\u95f4\u53d1\u751f\u4e30\u5bcc\u7684\u5206\u5c94\u6f14\u5316 [cite: 164, 165, 176-181]\u3002<\/p>\n\n    <p>Aizawa \u7cfb\u7edf\u7684\u8fde\u7eed\u4e09\u7ef4\u5fae\u5206\u65b9\u7a0b\u7ec4\u8868\u8fbe\u5982\u4e0b [cite: 166-169]\uff1a<\/p>\n    \n    <p class=\"no-indent-p\">\n        $$\\begin{aligned}\n        \\frac{dx}{dt} &amp;= (z &#8211; \\beta)x &#8211; \\delta y \\\\[0.3em]\n        \\frac{dy}{dt} &amp;= (z &#8211; \\beta)y + \\delta x \\\\[0.3em]\n        \\frac{dz}{dt} &amp;= \\gamma + \\alpha z &#8211; \\frac{z^3}{3} &#8211; (x^2 + y^2)(1 + \\epsilon z) + \\zeta z x^3\n        \\end{aligned}$$\n    <\/p>\n\n    <p>\u5176\u4e2d\uff0c$x, y, z \\in \\mathbb{R}^3$ \u4e3a\u72b6\u6001\u53d8\u91cf [cite: 170]\uff1b\u53c2\u6570 <span style=\"color: #2f54eb;\">$\\alpha, \\beta, \\gamma, \\delta, \\epsilon, \\zeta$<\/span> \u5171\u540c\u51b3\u5b9a\u4e86\u7cfb\u7edf\u7684\u62d3\u6251\u5f62\u6001\u4e0e\u76f8\u7a7a\u95f4\u6d41\u52a8 [cite: 148, 149, 170]\u3002\u8bba\u6587\u4e2d\u6700\u5e38\u7528\u7684\u6807\u51c6\u57fa\u51c6\u53c2\u6570\u53d6\u503c\u4e3a\uff1a$\\alpha=0.95, \\beta=0.7, \\delta=3.5, \\epsilon=0.25, \\gamma=0.6, \\zeta=0.1$ [cite: 170]\u3002<\/p>\n\n    <div class=\"latex-figure\">\n        <div style=\"width: 100%; max-width: 1000px; background: rgba(15, 23, 42, 0.85); border: 1px solid #334155; border-radius: 12px; padding: 16px; box-sizing: border-box; backdrop-filter: blur(8px);\">\n            \n            <div style=\"display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; border-bottom: 1px solid #334155; padding-bottom: 12px;\">\n                <div style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px;\">\n                    <span style=\"font-weight: bold; color: #38bdf8; font-size: 0.95em;\">\ud83c\udf9b\ufe0f Aizawa \u5b9e\u65f6\u53c2\u6570\u63a7\u5236\u53f0 (RK4 Solver)<\/span>\n                    <span style=\"font-size: 0.8em; color: #94a3b8;\">\u957f\u65f6\u95f4\u5e8f\u5217\u8f68\u8ff9 + \u52a8\u6001\u89e3\u5206\u91cf\u6ce2\u5f62\u56fe<\/span>\n                <\/div>\n                \n                <div style=\"display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; font-size: 0.85em;\">\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #cbd5e1;\">\n                            <span>\u03b1 (Alpha):<\/span> <span id=\"val-a\">0.95<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-a\" min=\"0.80\" max=\"1.20\" step=\"0.001\" value=\"0.95\" style=\"width: 100%;\">\n                    <\/div>\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #cbd5e1;\">\n                            <span>\u03b2 (Beta):<\/span> <span id=\"val-b\">0.70<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-b\" min=\"0.0\" max=\"2.0\" step=\"0.01\" value=\"0.70\" style=\"width: 100%;\">\n                    <\/div>\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #cbd5e1;\">\n                            <span>\u03b3 (Gamma):<\/span> <span id=\"val-c\">0.60<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-c\" min=\"0.0\" max=\"2.0\" step=\"0.01\" value=\"0.60\" style=\"width: 100%;\">\n                    <\/div>\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #cbd5e1;\">\n                            <span>\u03b4 (Delta):<\/span> <span id=\"val-d\">3.50<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-d\" min=\"0.1\" max=\"10.0\" step=\"0.1\" value=\"3.50\" style=\"width: 100%;\">\n                    <\/div>\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #cbd5e1;\">\n                            <span>\u03b5 (Epsilon):<\/span> <span id=\"val-e\">0.25<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-e\" min=\"0.0\" max=\"1.0\" step=\"0.01\" value=\"0.25\" style=\"width: 100%;\">\n                    <\/div>\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #cbd5e1;\">\n                            <span>\u03b6 (Zeta):<\/span> <span id=\"val-f\">0.10<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-f\" min=\"0.0\" max=\"0.5\" step=\"0.01\" value=\"0.10\" style=\"width: 100%;\">\n                    <\/div>\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #cbd5e1;\">\n                            <span>\u901f\u5ea6 (Speed):<\/span> <span id=\"val-speed\">1.0<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-speed\" min=\"0.1\" max=\"5.0\" step=\"0.1\" value=\"1.0\" style=\"width: 100%;\">\n                    <\/div>\n                    <div>\n                        <label style=\"display: flex; justify-content: space-between; color: #818cf8; font-weight: bold;\">\n                            <span>\ud83d\udd0d \u89c6\u89d2 Zoom:<\/span> <span id=\"val-zoom\">80<\/span>\n                        <\/label>\n                        <input type=\"range\" id=\"slider-zoom\" min=\"10\" max=\"200\" step=\"1\" value=\"80\" style=\"width: 100%;\">\n                    <\/div>\n                <\/div>\n\n                <div style=\"display: flex; gap: 8px; justify-content: flex-end; margin-top: 4px;\">\n                    <button id=\"btn-reset\" style=\"background: #334155; color: #fff; border: none; padding: 5px 14px; border-radius: 6px; cursor: pointer; font-size: 0.8em; transition: 0.2s;\">\u91cd\u7f6e\u76f8\u8f68<\/button>\n                    <button id=\"btn-pause\" style=\"background: #6366f1; color: #fff; border: none; padding: 5px 14px; border-radius: 6px; cursor: pointer; font-size: 0.8em; transition: 0.2s;\">\u6682\u505c\/\u7ee7\u7eed<\/button>\n                    <button id=\"btn-clear\" style=\"background: #475569; color: #fff; border: none; padding: 5px 14px; border-radius: 6px; cursor: pointer; font-size: 0.8em; transition: 0.2s;\">\u6e05\u7a7a\u753b\u5e03<\/button>\n                <\/div>\n            <\/div>\n\n            <div id=\"aizawa-canvas-container\" style=\"width: 100%; aspect-ratio: 16\/9; min-height: 380px; max-height: 70vh; position: relative; border-radius: 8px; overflow: hidden; background: #080c14; border: 1px solid #1e293b;\">\n            <\/div>\n\n            <div style=\"margin-top: 16px; border-top: 1px solid #334155; padding-top: 12px;\">\n                <div style=\"font-size: 0.85em; color: #94a3b8; margin-bottom: 8px; font-weight: 500;\">\n                    \ud83d\udcc8 \u72b6\u6001\u53d8\u91cf\u89e3\u5206\u91cf\u65f6\u95f4\u5e8f\u5217\u52a8\u6001\u56fe (x(t), y(t), z(t) Time-Series)\n                <\/div>\n                <div style=\"width: 100%; height: 180px; position: relative;\">\n                    <canvas id=\"aizawa-timeseries-chart\"><\/canvas>\n                <\/div>\n            <\/div>\n\n        <\/div>\n        <div class=\"figure-caption\">\u56fe 1: Aizawa \u5438\u5f15\u5b50\u4e09\u7ef4\u7ed3\u6784\u6a21\u62df\u4e0e\u72b6\u6001\u89e3\u5206\u91cf\u65f6\u95f4\u5e8f\u5217\u6ce2\u5f62\u56fe<\/div>\n    <\/div>\n\n    <p>\u8bba\u6587\u7814\u7a76\u6307\u51fa\uff0c\u4e34\u754c\u5206\u5c94\u53c2\u6570\u5224\u5b9a\u6761\u4ef6\u6ee1\u8db3 $\\alpha_{crat} = \\sqrt[3]{\\frac{9\\gamma^2}{4}}$ [cite: 174]\u3002\u5f53\u4fdd\u6301\u5176\u4ed6\u53c2\u6570\u4e0d\u53d8\u65f6\uff08\u4f8b\u5982 $\\gamma=0.6$ \u65f6\uff0c$\\alpha_{crat} \\approx 0.932$\uff09\uff0c\u6539\u53d8\u53c2\u6570 $\\alpha$ \u4f1a\u5bf9\u7cfb\u7edf\u7684\u5e73\u8861\u70b9\u6570\u91cf\u53ca\u957f\u8fdc\u52a8\u529b\u5b66\u884c\u4e3a\u4ea7\u751f\u51b3\u5b9a\u6027\u5f71\u54cd [cite: 172-181]\uff1a<\/p>\n\n    <div class=\"latex-table-container\">\n        <div class=\"table-caption\">\u8868 1: Aizawa \u7cfb\u7edf\u5728\u4e0d\u540c\u5173\u952e\u53c2\u6570 $\\alpha$ \u4e0b\u7684\u76f8\u7a7a\u95f4\u62d3\u6251\u6f14\u5316\u884c\u4e3a [cite: 186-198]<\/div>\n        <table class=\"latex-table\">\n            <tbody>\n                <tr>\n                    <td>\u53c2\u6570 $\\alpha$ \u53d6\u503c [cite: 186, 188, 190, 195, 198]<\/td>\n                    <td>\u76f8\u7a7a\u95f4\u5f62\u6001\u7279\u5f81 [cite: 187, 189, 191, 196, 197]<\/td>\n                    <td>\u7cfb\u7edf\u7684\u957f\u8fdc\u52a8\u529b\u5b66\uff08Long-Term Behavior\uff09 [cite: 176-179, 186-198]<\/td>\n                <\/tr>\n                <tr>\n                    <td>$\\alpha = 0.93$ ($&lt; \\alpha_{crat}$) [cite: 186]<\/td>\n                    <td>\u5305\u542b 1 \u4e2a\u5b9e\u5e73\u8861\u70b9\uff0c\u6536\u655b\u81f3\u73af\u72b6\u8f68\u9053 [cite: 175, 187]<\/td>\n                    <td>\u6e10\u8fd1\u6536\u655b\u4e8e\u5468\u671f\u5438\u5f15\u5b50 (Periodic Attractor) [cite: 187]<\/td>\n                <\/tr>\n                <tr>\n                    <td>$\\alpha = 0.95$ [cite: 188]<\/td>\n                    <td>\u5206\u88c2\u51fa 3 \u4e2a\u5b9e\u5e73\u8861\u70b9\uff0c\u4e2d\u592e\u7ba1\u9053\u6536\u7a84 [cite: 174, 181, 189]<\/td>\n                    <td>\u5178\u578b\u7684\u6df7\u6c8c\u5438\u5f15\u5b50 (Chaotic Attractor) [cite: 189]<\/td>\n                <\/tr>\n                <tr>\n                    <td>$\\alpha = 0.97$ [cite: 190]<\/td>\n                    <td>\u7ed3\u6784\u8fc5\u901f\u9760\u62e2\uff0c\u5f62\u6210\u51e0\u4e4e\u91cd\u5408\u7684\u73af\u8f68\u9053 [cite: 191]<\/td>\n                    <td>\u51c6\u5468\u671f\u884c\u4e3a (Quasi-Periodic) [cite: 178, 191]<\/td>\n                <\/tr>\n                <tr>\n                    <td>$\\alpha = 1.061$ [cite: 195]<\/td>\n                    <td>\u4e2d\u592e\u7ba1\u9053\u6781\u5ea6\u53d8\u7ec6\u5e76\u6d88\u5931 [cite: 181]<\/td>\n                    <td>\u7531\u6df7\u6c8c\u8f6c\u5316\u4e3a\u9010\u6e10\u6536\u655b\u81f3\u5e73\u8861\u70b9 [cite: 195, 197]<\/td>\n                <\/tr>\n                <tr>\n                    <td>$\\alpha = 1.0617$ [cite: 198]<\/td>\n                    <td>\u4e0d\u518d\u5f62\u6210\u7403\u72b6\u6da1\u6d41\u5438\u5f15\u5b50\u7ed3\u6784 [cite: 181, 198]<\/td>\n                    <td>\u8f68\u8ff9\u8fc5\u901f\u76f4\u63a5\u6536\u655b\u81f3\u5e73\u8861\u70b9 (Convergent) [cite: 198]<\/td>\n                <\/tr>\n            <\/tbody>\n        <\/table>\n    <\/div>\n\n    <p class=\"no-indent-p\">\u6a21\u62df\u7a0b\u5e8f\u91c7\u7528\u521d\u503c $\\mathbf{x}_0 = (0.1, 0, 0)$ [cite: 171, 183]\uff0c\u5728\u56db\u9636 Runge-Kutta \u6b65\u957f $\\Delta t = 0.005$ \u4e0b\u79bb\u6563\u63a8\u8fdb\uff1a<\/p>\n    <p class=\"no-indent-p\">$\\mathbf{x}_{n+1} = \\mathbf{x}_n + \\frac{\\Delta t}{6} (k_1 + 2k_2 + 2k_3 + k_4)$<\/p>\n    \n    <p class=\"no-indent-p\">\u8bfb\u8005\u53ef\u4ee5\u901a\u8fc7\u4e0a\u65b9\u63a7\u5236\u53f0\u5fae\u8c03 $\\alpha$ \u53c2\u6570\uff0c\u4eb2\u773c\u89c2\u5bdf\u7403\u72b6\u6da1\u6d41\u4e2d\u592e\u7ba1\u9053\u53d8\u7ec6\u76f4\u81f3\u6d88\u5931\u3001\u4ee5\u53ca\u7cfb\u7edf\u5728\u5468\u671f\u4e0e\u6df7\u6c8c\u72b6\u6001\u95f4\u5207\u6362\u7684\u5947\u5999\u8fc7\u7a0b [cite: 180, 181]\u3002<\/p>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/three.js\/r128\/three.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/three@0.128.0\/examples\/js\/controls\/OrbitControls.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n\n<script>\n(function() {\n    \/\/ 1. \u7cfb\u7edf\u53c2\u6570\u914d\u7f6e (\u6839\u636e\u8bba\u6587\u8bbe\u7f6e\u9ed8\u8ba4\u503c)\n    let params = { \n        a: 0.95,   \/\/ alpha\n        b: 0.70,   \/\/ beta\n        c: 0.60,   \/\/ gamma\n        d: 3.50,   \/\/ delta\n        e: 0.25,   \/\/ epsilon\n        f: 0.10,   \/\/ zeta\n        speed: 1.0, \n        dt: 0.005, \n        maxPoints: 200000 \n    };\n    let state = { x: 0.1, y: 0.0, z: 0.0 }; \/\/ \u8bba\u6587\u521d\u59cb\u6761\u4ef6 (0.1, 0, 0)\n    let isPaused = false;\n\n    \/\/ DOM \u5143\u7d20\u7ed1\u5b9a\n    const sliderA = document.getElementById('slider-a');\n    const sliderB = document.getElementById('slider-b');\n    const sliderC = document.getElementById('slider-c');\n    const sliderD = document.getElementById('slider-d');\n    const sliderE = document.getElementById('slider-e');\n    const sliderF = document.getElementById('slider-f');\n    const sliderSpeed = document.getElementById('slider-speed');\n    const sliderZoom = document.getElementById('slider-zoom');\n\n    const valA = document.getElementById('val-a');\n    const valB = document.getElementById('val-b');\n    const valC = document.getElementById('val-c');\n    const valD = document.getElementById('val-d');\n    const valE = document.getElementById('val-e');\n    const valF = document.getElementById('val-f');\n    const valSpeed = document.getElementById('val-speed');\n    const valZoom = document.getElementById('val-zoom');\n\n    sliderA.oninput = (e) => { params.a = parseFloat(e.target.value); valA.textContent = params.a.toFixed(3); };\n    sliderB.oninput = (e) => { params.b = parseFloat(e.target.value); valB.textContent = params.b.toFixed(2); };\n    sliderC.oninput = (e) => { params.c = parseFloat(e.target.value); valC.textContent = params.c.toFixed(2); };\n    sliderD.oninput = (e) => { params.d = parseFloat(e.target.value); valD.textContent = params.d.toFixed(2); };\n    sliderE.oninput = (e) => { params.e = parseFloat(e.target.value); valE.textContent = params.e.toFixed(2); };\n    sliderF.oninput = (e) => { params.f = parseFloat(e.target.value); valF.textContent = params.f.toFixed(2); };\n    sliderSpeed.oninput = (e) => { params.speed = parseFloat(e.target.value); valSpeed.textContent = params.speed.toFixed(1); };\n\n    \/\/ 2. Chart.js \u65f6\u95f4\u5e8f\u5217\u56fe\u8868\u914d\u7f6e\n    const chartCtx = document.getElementById('aizawa-timeseries-chart').getContext('2d');\n    const maxChartPoints = 250;\n    \n    const timeChart = new Chart(chartCtx, {\n        type: 'line',\n        data: {\n            labels: Array(maxChartPoints).fill(''),\n            datasets: [\n                { label: 'x(t)', data: [], borderColor: '#f43f5e', borderWidth: 1.5, pointRadius: 0, tension: 0.2 },\n                { label: 'y(t)', data: [], borderColor: '#10b981', borderWidth: 1.5, pointRadius: 0, tension: 0.2 },\n                { label: 'z(t)', data: [], borderColor: '#38bdf8', borderWidth: 1.5, pointRadius: 0, tension: 0.2 }\n            ]\n        },\n        options: {\n            responsive: true,\n            maintainAspectRatio: false,\n            animation: false,\n            scales: {\n                x: { display: false },\n                y: { \n                    grid: { color: 'rgba(255, 255, 255, 0.05)' },\n                    ticks: { color: '#64748b', font: { size: 10 } }\n                }\n            },\n            plugins: {\n                legend: { labels: { color: '#cbd5e1', font: { size: 11 }, boxWidth: 12 } }\n            }\n        }\n    });\n\n    function updateChart(x, y, z) {\n        const datasets = timeChart.data.datasets;\n        datasets[0].data.push(x);\n        datasets[1].data.push(y);\n        datasets[2].data.push(z);\n\n        if (datasets[0].data.length > maxChartPoints) {\n            datasets[0].data.shift();\n            datasets[1].data.shift();\n            datasets[2].data.shift();\n        }\n        timeChart.update('none');\n    }\n\n    \/\/ 3. Three.js 3D \u573a\u666f\u4e0e\u5bb9\u5668\u81ea\u9002\u5e94\u8bbe\u7f6e\n    const container = document.getElementById('aizawa-canvas-container');\n    const scene = new THREE.Scene();\n    const camera = new THREE.PerspectiveCamera(45, container.clientWidth \/ container.clientHeight, 0.1, 1000);\n    camera.position.set(0, 0, 80);\n\n    const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });\n    renderer.setSize(container.clientWidth, container.clientHeight);\n    renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n    container.appendChild(renderer.domElement);\n\n    const controls = new THREE.OrbitControls(camera, renderer.domElement);\n    controls.enableDamping = true;\n    controls.target.set(0, 0, 0);\n\n    \/\/ Zoom \u6ed1\u5757\u4ea4\u4e92\n    sliderZoom.oninput = (e) => {\n        const dist = parseFloat(e.target.value);\n        valZoom.textContent = dist;\n        const dir = new THREE.Vector3().subVectors(camera.position, controls.target).normalize();\n        camera.position.copy(controls.target).addScaledVector(dir, dist);\n    };\n\n    controls.addEventListener('change', () => {\n        const dist = camera.position.distanceTo(controls.target);\n        sliderZoom.value = dist.toFixed(0);\n        valZoom.textContent = dist.toFixed(0);\n    });\n\n    \/\/ \u7a97\u53e3\u5c3a\u5bf8\u81ea\u9002\u5e94\n    window.addEventListener('resize', () => {\n        const width = container.clientWidth;\n        const height = container.clientHeight;\n        camera.aspect = width \/ height;\n        camera.updateProjectionMatrix();\n        renderer.setSize(width, height);\n    });\n\n    \/\/ 4. \u8f68\u8ff9 Geometry \u62d3\u5bbd (\u652f\u6301 Aizawa \u5438\u5f15\u5b50\u8d85\u957f\u76f8\u8f68)\n    let positions = new Float32Array(params.maxPoints * 3);\n    let colors = new Float32Array(params.maxPoints * 3);\n    const geometry = new THREE.BufferGeometry();\n    geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));\n    geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3));\n\n    const material = new THREE.LineBasicMaterial({ vertexColors: true, transparent: true, opacity: 0.85 });\n    const line = new THREE.Line(geometry, material);\n    scene.add(line);\n\n    \/\/ \u5934\u90e8\u7c92\u5b50\n    const headGeom = new THREE.SphereGeometry(0.08, 16, 16);\n    const headMat = new THREE.MeshBasicMaterial({ color: 0x38bdf8 });\n    const head = new THREE.Mesh(headGeom, headMat);\n    scene.add(head);\n\n    let count = 0;\n    const tempColor = new THREE.Color();\n\n    \/\/ 5. Aizawa \u7cfb\u7edf RK4 \u6c42\u89e3\u5668\n    function stepRK4() {\n        const { a, b, c, d, e, f, dt } = params;\n        let { x, y, z } = state;\n\n        \/\/ Aizawa \u5fae\u5206\u65b9\u7a0b\u7ec4\n        const deriv = (x, y, z) => ({\n            dx: (z - b) * x - d * y,\n            dy: (z - b) * y + d * x,\n            dz: c + a * z - (z * z * z) \/ 3.0 - (x * x + y * y) * (1.0 + e * z) + f * z * (x * x * x)\n        });\n\n        let k1 = deriv(x, y, z);\n        let k2 = deriv(x + 0.5*dt*k1.dx, y + 0.5*dt*k1.dy, z + 0.5*dt*k1.dz);\n        let k3 = deriv(x + 0.5*dt*k2.dx, y + 0.5*dt*k2.dy, z + 0.5*dt*k2.dz);\n        let k4 = deriv(x + dt*k3.dx, y + dt*k3.dy, z + dt*k3.dz);\n\n        state.x += (dt \/ 6.0) * (k1.dx + 2*k2.dx + 2*k3.dx + k4.dx);\n        state.y += (dt \/ 6.0) * (k1.dy + 2*k2.dy + 2*k3.dy + k4.dy);\n        state.z += (dt \/ 6.0) * (k1.dz + 2*k2.dz + 2*k3.dz + k4.dz);\n    }\n\n    \/\/ \u7f29\u653e\u653e\u5927\u56e0\u5b50 (Aizawa \u5438\u5f15\u5b50\u5750\u6807\u8303\u56f4\u5927\u7ea6\u5728 [-2, 2]\uff0c\u653e\u5927\u4ee5\u4fbf\u4e8e 3D \u89c2\u5bdf)\n    const scaleFactor = 15.0;\n\n    function addPoint(x, y, z) {\n        const posArr = geometry.attributes.position.array;\n        const colArr = geometry.attributes.color.array;\n\n        const sx = x * scaleFactor;\n        const sy = y * scaleFactor;\n        const sz = z * scaleFactor;\n\n        tempColor.setHSL((count * 0.00025) % 1.0, 0.9, 0.6);\n\n        if (count < params.maxPoints) {\n            posArr[count * 3] = sx; posArr[count * 3 + 1] = sy; posArr[count * 3 + 2] = sz;\n            colArr[count * 3] = tempColor.r; colArr[count * 3 + 1] = tempColor.g; colArr[count * 3 + 2] = tempColor.b;\n            count++;\n        } else {\n            positions.copyWithin(0, 3, params.maxPoints * 3);\n            colors.copyWithin(0, 3, params.maxPoints * 3);\n            const idx = params.maxPoints - 1;\n            posArr[idx * 3] = sx; posArr[idx * 3 + 1] = sy; posArr[idx * 3 + 2] = sz;\n            colArr[idx * 3] = tempColor.r; colArr[idx * 3 + 1] = tempColor.g; colArr[idx * 3 + 2] = tempColor.b;\n        }\n\n        geometry.attributes.position.needsUpdate = true;\n        geometry.attributes.color.needsUpdate = true;\n        geometry.setDrawRange(0, count);\n        head.position.set(sx, sy, sz);\n    }\n\n    \/\/ \u6e05\u7a7a\u4e0e\u91cd\u7f6e\u4e8b\u4ef6\n    function clearChartData() {\n        timeChart.data.datasets.forEach(ds => ds.data = []);\n        timeChart.update();\n    }\n\n    document.getElementById('btn-reset').onclick = () => {\n        state = { x: 0.1, y: 0.0, z: 0.0 };\n        count = 0;\n        geometry.setDrawRange(0, 0);\n        clearChartData();\n    };\n\n    document.getElementById('btn-clear').onclick = () => {\n        count = 0;\n        geometry.setDrawRange(0, 0);\n        clearChartData();\n    };\n\n    document.getElementById('btn-pause').onclick = () => { isPaused = !isPaused; };\n\n    \/\/ 6. \u4e3b\u6e32\u67d3\u5faa\u73af\n    function animate() {\n        requestAnimationFrame(animate);\n        if (!isPaused) {\n            const steps = Math.round(15 * params.speed);\n            for (let i = 0; i < steps; i++) {\n                stepRK4();\n                addPoint(state.x, state.y, state.z);\n            }\n            updateChart(state.x, state.y, state.z);\n        }\n        controls.update();\n        renderer.render(scene, camera);\n    }\n\n    animate();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Aizawa Chaotic Dynamics and Attractor Topology \u7231\u6cfd\u5438\u5f15\u5b50\uff08Ai &hellip; <a href=\"https:\/\/arkdoc.cc\/index.php\/2026\/10\/03\/624\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\"><\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37],"tags":[],"class_list":["post-624","post","type-post","status-publish","format-standard","hentry","category-chaotic-simulations"],"_links":{"self":[{"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/posts\/624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/comments?post=624"}],"version-history":[{"count":2,"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/posts\/624\/revisions"}],"predecessor-version":[{"id":626,"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/posts\/624\/revisions\/626"}],"wp:attachment":[{"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/media?parent=624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/categories?post=624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arkdoc.cc\/index.php\/wp-json\/wp\/v2\/tags?post=624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}