qq_59719275 2022-05-10 13:43 采纳率: 100%
浏览 120
已结题

matlab解微分方程

微分方程组是这样的
dx/dt=v
dv/dt=1/m(F1-F2)
我用的是doe45
现在遇到的问题是我的m是常数,但F1和F2不是,他们是我之前算出来31x1的矩阵,而且跟t没有直接的关系
但实际上t和F1,F2是一个一个对应的
要怎么解决啊

  • 写回答

2条回答 默认 最新

  • slandarer MATLAB领域优质创作者 2022-05-10 15:21
    关注

    在要求解的函数里插值就行,

    xv=ode45(@(t,y)func1(t,y),[0,0.004013],[0;0]);
    plot(xv.x,xv.y(2,:))
    
    function dy=func1(t,y)
    % y=[x v]
    % dy=[dx dv]=[v 1/m*(F1-F2)]
    m=100;
    tLim=[0,0.004013];
    F1Set=[3656.74454469459,67869.1787495316,121550.188665648,165211.718529302,...
    199585.117249431,225401.733734974,243612.321567554,255240.769219682,...
    261091.560491194,262042.314072814,259043.783546165,252754.182929290,...
    243831.726240235,233007.762387939,220647.965826871,207337.415684183,...
    193441.786414344,179253.617580929,165065.448747514,151096.684586780,...
    137566.729771410,124475.584301404,112115.787740336,100414.205197313,...
    89517.1064541235,79351.3566198726,57557.1591334928,44612.2834452740,...
    36055.5012106887,30131.5750482834,25743.4815946499];
    F2Set=[1868.40000000000,4686.49743271077,5594.02041651004,6066.11580697016,...
    6539.72567084899,6817.55253876499,7187.35759550376,7398.44149538618,...
    7722.71343453855,7909.41426199502,8219.80527493458,8402.88277865549,...
    8709.68898453318,8899.37904618435,9217.70035272794,9423.95576442877,...
    9774.61460552958,10012.3343222345,10404.4855391109,10688.5019910836,...
    11136.6530965049,11496.6588798446,12025.4367216906,12480.2336854345,...
    13128.6033182773,13716.7940745684,15230.8672340156,16576.0061521937,...
    18009.1267201830,19301.7652683768,20699.1784023863];
    
    tSet=linspace(tLim(1),tLim(2),length(F1Set));
    
    F1=interp1(tSet,F1Set,t);
    F2=interp1(tSet,F2Set,t);
    
    
    dy=[y(2);1./m.*(F1-F2)];
    end

    不过有几个小问题哈

    1)不知道原文中给的意思是(1/m) * (F1-F1)还是(1/m)/(F1-F1),因为CSDN会把乘号当成加粗字符,怀疑这里是乘号被吞了,于是按照乘法算了,要是理解错了请自行更改代码最后一行

    2)初始值不明确,这里就设置了[0;0]

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月18日
  • 已采纳回答 5月10日
  • 创建了问题 5月10日

悬赏问题

  • ¥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