当前位置: 首页 > news >正文

40.利用欧拉法求解微分方程组(matlab程序)

1.简述

      

求解微分方程的时候,如果不能将求出结果的表达式,则可以对利用数值积分对微分方程求解,获取数值解。欧拉方法是最简单的一种数值解法。前面介绍过MATLAB实例讲解欧拉法求解微分方程,今天实例讲解欧拉法求解一阶微分方程组。


本文理论部分来自知乎作者云端之下的文章“常微分方程——数值解——欧拉方法”

微分方程的求解方法有解析解法和数值解法,解析法是求出因变量关于时间 �的具体函数式,表达 ;数值法是解出因变量  关于时间 �的离散序列,通常表达离散数据对。绝大多数的非线性常微分方程,不存在或难以求出解析解,大多数情况下只能求取微分方程的数值解。

2.代码

%%  学习目标:欧拉法求解微分方程组
clear;clc
c=2/3;  %设置c的值
x(1)=0.1;  %设置x初值为0.1
y(1)=0.3;  %设置y初值为0.3
h=0.05;    %设置步长为0.05

%for循环:根据Euler法,求解微分方程组
for i=1:1000
    x(i+1)=x(i)+h*(x(i)*(c-x(i)/y(i)));
    y(i+1)=y(i)+h*(y(i)*(1-y(i))-x(i)*y(i));
end

t=0:h:1000*h;   %计算时间
plot(t,x)       %绘制x曲线
hold on       
plot(t,y,'r')   %绘制y曲线
xlabel('time')  %设置x轴的标签
ylabel('value') %设置y轴的标签
legend({'x','y'})  %设置图例
title('time evolution plot')  %设置图形的标题
figure   
plot(x,y)   %绘制phase图
title('phase plane plot')  %设置标题
xlabel('x')   %设置x轴的标签
ylabel('y')   %设置y轴的标签

3.运行结果

 

 

http://www.lryc.cn/news/117128.html

相关文章:

  • OpenAI-Translator 实战总结
  • 【工业机器人】用于轨迹规划和执行器分析的机械手和移动机器人模型(MatlabSimulink)
  • 开源在线文档服务OnlyOffice
  • 汽车基本常识
  • 百度资深PMO阚洁受邀为第十二届中国PMO大会演讲嘉宾
  • 为什么C++有多种整型?
  • 玩一玩通义千问Qwen开源版,Win11 RTX3060本地安装记录!
  • oracle积累增量和差异增量
  • 利用C++nlohmann库解析json文件
  • OpenCV 中的光流 (C++/Python)
  • 第9集丨Vue 江湖 —— 监测数据原理
  • 【YOLO】替换骨干网络为轻量级网络MobileNet3
  • 如何识别手机是否有灵动岛(dynamic island)
  • Linux设备树简介
  • Ubuntu类IOS主题设置
  • RabbitMQ学习——发布订阅/fanout模式 topic模式 rabbitmq回调确认 延迟队列(死信)设计
  • Leetcode算法递归类—合并两个有序链表
  • YOLOv5可视化界面
  • C语言使用库函数实现大小写字母转换
  • Redis简单学习
  • 《Python入门到精通》函数详解
  • PHP流浪动物招领网站mysql数据库web结构apache计算机软件工程网页wamp
  • android—ktor-client封装使用,请求网络
  • GD32F103VE侵入事件
  • 将tp5项目、fastadmin项目部署到服务器宝塔面板
  • Jenkins+Docker+SpringCloud微服务持续集成
  • 系统架构设计师-系统可靠性分析与设计
  • Linux(CentOS7)搭建达梦数据库
  • [杂谈]-国产MCU竞争力浅析
  • 4.1、Flink任务怎样读取集合中的数据