目录

一. 微分代数方程求解

例题1

二. 全隐式微分方程

三. 延迟微分方程求解

例题2


一. 微分代数方程求解

例题1

初始条件:

求数值解:

解:

①方法1求解

矩阵形式表示该微分代数方程:

(1)函数文件

function dx=c7eqdae(t,x)
dx=[-0.2*x(1)+x(2)*x(3)+0.3*x(1)*x(2);2*x(1)*x(2)-5*x(2)*x(3)-...2*x(2)*x(2);x(1)+x(2)+x(3)-1];

(2)主运行文件

clc;clear;
M=[1 0 0;0 1 0; 0 0 0];
options=odeset;
options.Mass=M; %Mass微分代数方程中的质量矩阵(控制参数)
x0=[0.8;0.1;0.1];
[t,x]=ode15s(@c7eqdae,[0,20],x0,options);
plot(t,x)

运行结果:

②方法2:转换成常微分方程求解

从约束式子可得:

代入原式子可得:

(1)函数文件

function dx=c7eqdae1(t,x)
dx=[-0.2*x(1)+x(2)*(1-x(1)-x(2))+0.3*x(1)*x(2);...2*x(1)*x(2)-5*x(2)*(1-x(1)-x(2))-2*x(2)*x(2)];

(2)主运行文件

clc;clear;
x0=[0.8;0.1];
[t1,x1]=ode45('c7eqdae1',[0,20],x0);
plot(t1,x1,t1,1-sum(x1'))

运行结果:

二. 全隐式微分方程

ode15i可解算全隐式微风方程。格式:

%格式1
[t,y]=ode15i(odefun,tspan,y0,yp0,options)%格式2
[y0_new,yp0_new]=decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0,options)
%decic 为ode15i计算一致的初始条件

可以使用以下命令看具体函数细节:

edit hbldae.medit ihbldae.m

三. 延迟微分方程求解

延迟微分方程组的一般形式如下:

隐式Runge-Kutta算法dde23()格式如下:

sol=dde23(f1,τ,f2,[t0,tf])
%sol为结构体数据,sol.x为时间向量,sol.y为状态向量
%f1为延迟微分方程
%τ=[τ1,···,τn]
%f2为t≤t0时的状态变量值函数

例题2

求延迟微分方程组的数值解:

解:

选择状态变量:

得出一阶微分方程组:

定义两个时间常数:

(1)编写函数

function dx=c7exdde(t,x,z)
xlag1=z(:,1); %第一列表示提取x(τ1)
xlag2=z(:,2);
dx=[1-3*x(1)-xlag1(2)-0.2*xlag2(1)^3-xlag2(1);...x(3);4*x(1)-2*x(2)-3*x(3)];

(2)主运行文件

clc;clear;
lags=[1 0.5];
tx=dde23('c7exdde',lags,zeros(3,1),[0,10]);
plot(tx.x,tx.y(2,:)) %与ode45()等返回的x矩阵不一样,这是按行排列的

运行结果:

也可以调用以下命令来查看函数的具体信息:

edit ddex1
%具体的例子,编辑器的代码

另外边值问题的也可以利用计算机来求解

二阶微分方程的边值问题的数学描述如下:

给定区间[a;b]上研究该方程的解,且在这两个边界条件下,满足:

基于MATLAB的微分代数方程解法(附完整代码)相关推荐

  1. 基于MATLAB的求解线性方程组(附完整代码和例题)

    目录 前言 一. 直接求解:矩阵除法 例题1 例题2 例题3 二. 直接求解:判断求解 2.1 m=n且rank(A)=rank(C)=n 2.2 rank(A)=rank(C)=r<> ...

  2. 【通信】基于Matlab实现延时波束形成附完整代码

    1 内容介绍 现代社会发展要求通信系统功能越来越强,性能越来越高,构成越来越复杂;另一方面,要求通信系统技术研究和产品开发缩短周期,降低成本,提高水平.这样尖锐对立的两个方面的要求,只有通过使用强大的 ...

  3. 基于MATLAB计算MIMO信道容量(附完整代码与分析)

    目录 一.介绍 二. 代码 三. 运行结果及分析 3.1  MIMO信道容量:固定发射天线数为4 3.2 MIMO信道容量:固定接收天线数为4 3.3 AWGN信道与瑞利信道容量 四. 总结 一.介绍 ...

  4. Matlab深度学习入门实例:基于AlexNet的红绿灯识别(附完整代码)

    AlexNet于2012年出现在ImageNet的图像分类比赛中,并取得了当年冠军,从此卷积神经网络开始受到人们的强烈关注.AlexNet是深度卷积神经网络研究热潮的开端,也是研究热点从传统视觉方法过 ...

  5. 基于matlab模拟心电信号,附赠代码

    matlab官方链接:https://www.mathworks.com/matlabcentral/fileexchange/10858-ecg-simulation-using-matlab 心电 ...

  6. 基于Opencv的虚拟键盘(附完整代码及报告)

    用到的库:opencv.cvzone.pynput 一.从Opencv到计算机视觉领域: Opencv是传统计算机视觉库,OpenCV用C++语言编写,它具有C ++,Python,Java和MATL ...

  7. 基于Opencv-python人脸口罩检测(附完整代码)

    目录 一.开发环境 二.设计要求 三.设计原理 四.程序代码 五.结果展示 六.结论 一.开发环境 python 3.6.6 opencv-python 4.5.1 二.设计要求 · 1.使用open ...

  8. 还发愁项目经验吗?基于Netty实现分布式RPC框架[附完整代码]

    写给大家的话 最近我收到很多读者的来信,对如何学习分布式.如何进行项目实践和提高编程能力,存在很多疑问. 分布式那么难,怎么学?为什么看了那么多书还是掌握不了? 开源的框架比如Dubbo代码太多了,完 ...

  9. 基于MATLAB的三维数据插值拟合与三次样条拟合算法(附完整代码)

    目录 一. 三维插值 例题1 二. 高维度插值拟合 格式一 格式二 格式三 格式四 格式五 例题2 三. 单变量三次样条插值 例题3 例题4 四. 多变量三次样条插值 例题6 一. 三维插值 首先三维 ...

最新文章

  1. python画出心形图-python画出心形图
  2. 多种语言《九九乘法表》荟萃:C、C++、C#、JavaScript、SQL、VB、VBA、Python
  3. uC/GUI 在Cortex-M3 内核上的移植
  4. golang mysql封装_自己封装的golang 操作数据库方法
  5. c++《VS2008 快捷键大全》
  6. python找第二大的数索引_python – 在numpy数组中查找多个值的行索引
  7. 基于Haproxy的高可用实战
  8. C++ tbb::atomic<bool> 声明、读取load、重新赋值store
  9. c语言进程调度报告,操作系统C进程调度算法实验报告
  10. 通过经纬度获取地理位置
  11. 一款强大的网站在线客服聊天系统:whisper搭建教程
  12. 《怦然心动》(Flipped) 观后感
  13. Mac系统一键下载网页图片
  14. 如何使用计算机还原魔方?
  15. java学生成绩统计
  16. 快速排序: 使用快速排序算法对数组进行排序
  17. Android 轻松连接 Usb Device —— UsbConnector
  18. python制作购物网站_django搭建简单购物网站(功能不完整)
  19. 服务器中毒重装系统,电脑中毒如何重装系统 轻松解决有诀窍
  20. 可自动调节OpenCV弹出窗口大小

热门文章

  1. CAJ免费转PDF,不限页数和大小
  2. leetcode先刷_Unique Paths II
  3. IBM MQ监控方法
  4. JSP和HTML关闭页面
  5. 小程序数据可视化图表绘制wxcharts
  6. 【技术干货】缓存随谈系列之一:数据库缓存
  7. Django 缓存----数据库缓存
  8. 51单片机配合振动传感器实现振动计数
  9. gprof和oprofile
  10. vue组件封装npm包