码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • duffing方程matlab绘制


    duffing混沌振子形式如下:

    \ddot{x}+k\dot{x}-ax+cx^{3}=fcos(\omega t)

    k,a,c,f为自定义系数,将初值设为[x,\dot{x}]=[0,1],k=0.5,a=c=1

    此时可通过更改f的值从0到1来改变duffing混沌系统状态,从固定点状态,小周期状态,混沌状态到大周期状态。例如f=0.6时处于混沌状态,如下:

    上图横坐标x,纵坐标x的一阶导数

    上图横坐标为时间t,纵坐标x

    1. clc;clear;
    2. [x,y]=ode113(@duffingFunc,[0:0.05:200],[0;1]);
    3. figure(1);
    4. plot(x,y(:,1));
    5. grid on;
    6. figure(2);
    7. plot(y(:,1),y(:,2));
    8. grid on;
    9. function res=duffingFunc(x,y)
    10. k=0.5;
    11. a=1;
    12. c=1;
    13. f=0.75;
    14. res=zeros(2,1);
    15. res(1)=y(2);
    16. res(2)=a*y(1)-c*y(1)^3-k*y(2)+f*cos(x);
    17. end

    求解利用matlab中的ode113函数,duff ingFunc函数步骤为

    x1=x; x2=\dot{x};->\dot{x1}=x2;\dot{x2}=-(k\dot{x}-ax+cx^{3})+fcos(\omega t)

    利用四阶龙格库塔绘制,y3=t先转化三阶自治系统

    1. clc;clear;format long;
    2. h=0.005;%步长
    3. iters=50000;%迭代次数
    4. ys=zeros(3,iters);
    5. y1=1;y2=1;y3=0;
    6. for i=1:iters
    7. [y1n,y2n,y3n]=myfunc(y1,y2,y3,h);
    8. y1=y1n;
    9. y2=y2n;
    10. y3=y3n;
    11. ys(1,i)=y1;
    12. ys(2,i)=y2;
    13. ys(3,i)=y3;
    14. end
    15. figure();
    16. plot(1:iters,ys(1,:));
    17. hold on;
    18. plot(1:iters,ys(2,:));
    19. legend("y1","y2");
    20. figure();
    21. plot(ys(3,:),ys(1,:));
    22. figure();
    23. plot(ys(1,:),ys(2,:));
    24. function [y1n,y2n,y3n]=myfunc(y1,y2,y3,h)
    25. f=0.9;
    26. ky1_1=y2;
    27. ky2_1=-0.5*y2+y1-y1^3+0.6*sin(y3);
    28. ky3_1=1;
    29. ky1_2=y2+ky1_1*h/2;
    30. ky2_2=-0.5*(y2+ky2_1*h/2)+(y1+ky1_1*h/2)-(y1+ky1_1*h/2)^3+f*sin(y3+ky3_1*h/2);
    31. ky3_2=1;
    32. ky1_3=y2+ky1_2*h/2;
    33. ky2_3=-0.5*(y2+ky2_2*h/2)+(y1+ky1_2*h/2)-(y1+ky1_2*h/2)^3+f*sin(y3+ky3_2*h/2);
    34. ky3_3=1;
    35. ky1_4=y2+ky1_3*h;
    36. ky2_4=-0.5*(y2+ky2_3*h)+(y1+ky1_3*h)-(y1+ky1_3*h)^3+f*sin(y3+ky3_1*h/2);
    37. ky3_4=1;
    38. y1n=y1+h*(ky1_1+2*ky1_2+2*ky1_3+ky1_4)/6;
    39. y2n=y2+h*(ky2_1+2*ky2_2+2*ky2_3+ky2_4)/6;
    40. y3n=y3+h*(ky3_1+2*ky3_2+2*ky3_3+ky3_4)/6;
    41. end

  • 相关阅读:
    CAN总线协议的理解以及移植stm32代码并使用
    【代码精读】optee的异常向量表
    DingoDB多模向量数据库,大模型时代的数据觉醒
    基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现
    Unity 2022 每次打开项目都会弹出“Unity is running as administrator“
    Redis双写一致性、持久化机制、分布式锁
    JVM性能调优
    Redis 学习笔记
    Roson的Qt之旅#104 QML Image控件
    2021年SpringBoot面试题30道
  • 原文地址:https://blog.csdn.net/K_ZhJ18/article/details/132752047
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号