my312318 2021-10-02 19:49 采纳率: 50%
浏览 57
已结题

Matlab解微分方程组

img

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-10-02 22:33
    关注

    你好,答案仅供参考,一般符号求解和数值计算均可以这样做

    syms x1(t) x2(t) 
    syms a b real
    eq = [diff(x1)==a*x1+b*x2; diff(x2)==-b*x1+a*x2];
    conds = [x1(0)==1; x2(0)==1];
    [x1,x2] = dsolve(eq,conds);
    % (1) 四个解析解
    x1_sol1 = subs(x1, [a,b], [0.1,1])
    x2_sol1 = subs(x2, [a,b], [0.1,1])
    x1_sol2 = subs(x1, [a,b], [0.1,-1])
    x2_sol2 = subs(x2, [a,b], [0.1,-1])
    x1_sol3 = subs(x1, [a,b], [-0.1,1])
    x2_sol3 = subs(x2, [a,b], [-0.1,1])
    x1_sol4 = subs(x1, [a,b], [-0.1,-1])
    x2_sol4 = subs(x2, [a,b], [-0.1,-1])
    % (2)数值解:
    a_arr = [0.1, -0.1];
    b_arr = [1,-1];
    count = 0;
    figure(1);clf;
    for i = 1:1:numel(a_arr)
        for j = 1:1:numel(b_arr)
            a = a_arr(i); b = b_arr(j);
            count = count + 1;
            subplot(2,2, count)
            odefun = @(t,x) [a*x(1)+b*x(2); -b*x(1)+a*x(2)];
            [t,x] = ode45(odefun, [0, 10*pi], [1;1]);
            plot(x(:,1),x(:,2));%画相图
            title(['a=',num2str(a),',b=',num2str(b)])
        end
    end
    
    

    最后表达式

    x1_sol1 =
     
    exp(t/10)*cos(t) + exp(t/10)*sin(t)
     
     
    x2_sol1 =
     
    exp(t/10)*cos(t) - exp(t/10)*sin(t)
     
     
    x1_sol2 =
     
    exp(t/10)*cos(t) - exp(t/10)*sin(t)
     
     
    x2_sol2 =
     
    exp(t/10)*cos(t) + exp(t/10)*sin(t)
     
     
    x1_sol3 =
     
    exp(-t/10)*cos(t) + exp(-t/10)*sin(t)
     
     
    x2_sol3 =
     
    exp(-t/10)*cos(t) - exp(-t/10)*sin(t)
     
     
    x1_sol4 =
     
    exp(-t/10)*cos(t) - exp(-t/10)*sin(t)
     
     
    x2_sol4 =
     
    exp(-t/10)*cos(t) + exp(-t/10)*sin(t)
    
    

    相图

    img

    可知
    最终相图都是螺旋进入原点,且ab的正负决定了相图螺旋的方向

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月11日
  • 已采纳回答 10月3日
  • 创建了问题 10月2日

悬赏问题

  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow