matlab解微分方程

1.匿名函数

1.1创建

f=@(变量) 表达式;

f=@(x1,x2) x1.^2+x2;

1.2 求解

x1为2 3 4 5;x2为3 4 5 6的情况下求解函数f的值

f=@(x1,x2) x1.^2+x2;
y=f(2:5,3:6);
subplot(121);%选择子图位置
plot(y)%画图

在这里插入图片描述

2.一阶微分方程

用“dsolve”

2.1例 y.-y=0

step1: 申明自变量和因变量

  • syms y(x)

step2:编程

clear all;
syms y(x)
ode=diff(y,x)-y==0;				%注意是==
cond=[];
dsolve(ode,cond);

得到:

ans =
 
C1*exp(x)

2.2例 y.-y=x

step1: 申明自变量和因变量

  • syms y(x)

step2:编程

clear all;
syms y(x)
ode=diff(y,x)-y==x;				%注意是==
cond=[];
dsolve(ode,cond);

得到

ans =
 
C1*exp(x) - x - 1

2.3例dy/dx=sinx

step1.写函数文件

function dy = ST1(x,y)
dy= sin(x);
end

step2.主函数

clear all;
[X,Y]=ode45('ST1',[2*pi],[1]);
plot(X,Y(:,1))

在这里插入图片描述

3.二阶微分方程

相当于定义了一个新向量y,然后列匿名函数,方程的左边都是一阶导数,如y(1).;y(2).等等,右边直接打公式。

3.1例,x… = -x,x初值0,x.初值2

step1:改写

  • y(1)=x;
  • y(2)=x.

step2:得y的导数

  • y(1).=x.=y(2)
  • y(2).=x…=-x=-y(1)

step3:编程

clear;
F=@(t,y) [0,1;-1,0]*y;
ode45(F,[0,10],[0,2])%[0,10]表示t的范围,02表示积分初值

3.2例 ax…+bsin(x)=0

step1:改写

  • y(1)=x;
  • y(2)=x.;

step2:得y的导数

  • y(1).=x.=y(2) ;
  • y(2).=x…=-bsin(x)/a;

step3:编程

clear;
F=@(t,y)[y(2);-9.8*sin(y(1))];
[t,y]=ode45(F,[0,20],[9.5*pi/10,0]);%注意这里加了[t,y]
plot(y(:,1),y(:,2));%这样才能输出y的值

3.3例洛伦兹方程

在这里插入图片描述
step1:改写

  • y(1)=x
  • y(2)=y
  • y(3)=z

step2:得y的导数

  • y(1).=-ay(1)+ay(2);
  • y(2).=b*y(1)-y(2)-y(1)*y(3);
  • y(3).=y(1)y(2)-cy(3);

step3:编程

clear;
a=10;
b=35;
c=8/3;
F=@(t,y)[-a*y(1)+a*y(2);
    b*y(1)-y(2)-y(1)*y(3);
    y(1)*y(2)-c*y(3)];
[t,y]=ode45(F,[0,20],[-0.01,0.0,0.001]);
plot3(y(:,1),y(:,2),y(:,3));

在这里插入图片描述

3.4 耦合

在这里插入图片描述
step1:改写

  • y(1)=r
  • y(2)=r.
  • y(3)=xita
  • y(4)=xita.

step2:得y的导数

  • y(1).=y(2)
  • y(2).=-a/y(1)2+y(1) y(4)2
  • y(3).=y(4)
  • y(4).=-b*y(2)*y(4)/y(1)

step3:编程

clear;
a=5.965*6.67295;
b=2;
F=@(t,y)[y(2);
    -a/(y(1)^2)+y(1)*y(4)^2;
    y(4);
    -b*y(2)*y(4)/y(1)];
[t,y]=ode45(F,[0,1500],[63.71,0.0,0.001,0.79/63]);
[x,y]=pol2cart(y(:,3),y(:,1));%极坐标转化为直角坐标
plot(x,y)

在这里插入图片描述

4.混合求导的耦合微分方程

这个叫法肯定不太专业,主要是求导变量换了。

4.1例1

在这里插入图片描述
step1.写函数文件

function dy = ST1(x,y)
dy=zeros(2,1);%一定要写!!!!,声明列向量的维度!!!!
dy(1)= y(1)+y(2)/x;
dy(2)= sin(y(1))+x;
end

step2:主程序ode求解

clear all;
[X,Y]=ode45('ST1',[2*pi,3*pi],[1,1]);
plot(X,Y(:,1),X,Y(:,2))

4.2例

在这里插入图片描述

step1:改写

  • y(1)=x
  • y(2)=y

step2:得y的导数

  • y(1).=r1 y(1) (1-y(1)/n1-s1*y(2)/n2)
  • y(2).=r2 y(2) (1-y(2)/n2-s2*y(1)/n1)

step3:编程

clear;
r1=1;
r2=0.2;
n1=100;
n2=100;
s1=0.5;
s2=2;
F=@(t,y)[r1*y(1)*(1-(y(1)/n1)-s1*(y(2)/n2));
    r2*y(2)*(1-(y(2)/n2)-s2*(y(1)/n1))];
[t,y]=ode45(F,[0,20],[10,10]);
plot(t,y(:,1),t,y(:,2))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/35784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch基础学习(SpringBoot集成ES)

一、概述 什么是ElasticSearch? ElasticSearch,简称为ES, ES是一个开源的高扩展的分布式全文搜索引擎。 它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 ES也…

最新版Flink CDC MySQL同步MySQL(一)

1.概述 Flink CDC 是Apache Flink 的一组源连接器,使用变更数据捕获 (CDC) 从不同数据库中获取变更。Apache Flink 的 CDC Connectors集成 Debezium 作为捕获数据更改的引擎。所以它可以充分发挥 Debezium 的能力。 2.支持的连接器 连接器数据库驱动mongodb-cdc…

支持跨语言、人声狗吠互换,仅利用最近邻的简单语音转换模型有多神奇

AI 语音转换真的越复杂越好吗?本文就提出了一个方法简单但同样强大的语言转换模型,与基线方法相比自然度和清晰度毫不逊色,相似度更是大大提升。 AI 参与的语音世界真神奇,既可以将一个人的语音换成任何其他人的语音,…

【VsCode远程开发】Windows SSH远程连接Linux服务器 - 无公网IP内网穿透

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…

使用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

前言 人口大国通常在全球人口排名中位居前列,其人口数量远远超过其他国家。而印度和中国这两个国家的人口数量均已经超过14亿,而当前全球的人口总数也不过刚刚突破80亿而已,妥妥的天花板级别存在。或许是中国和印度在人口方面的表现太过“耀…

【Python】Python基础知识总结

🎉欢迎来到Python专栏~Python基础知识总结 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文中出现错误,希望…

MySQL基本查询与内置函数

目录 聚合函数 分组查询 内置函数 日期函数 字符串函数 数学函数 聚合函数 COUNT:返回查询到的数据的数量 SUM:返回查询到的数据的总和(数字) AVG:返回数据的平均值 MAX:返回查询到的数据的最大值 MIN&a…

微软MFC技术中消息的分类

我是荔园微风,作为一名在IT界整整25年的老兵,今天来聊聊MFC技术中消息的分类。 微软Windows中的消息虽然很多,但是种类并不繁杂,大体上有3种:窗口消息、命令消息和控件通知消息。 窗口消息 窗口消息是系统中最为常见…

离线环境下安装微软Visual Studio 2022 生成工具

1. 前言 最近,在学习cython的时候,需要安装windows下的C/C编译、链接工具。开始觉得传统的msvc太大了,想要尝试Mingw,但是都是编译错误。无奈之下,还是要安装msvc。 微软提供了Visual Studio 2022 Build Tools &…

12.JavaWeb-Node.js+创建Vue项目

1.Node.js的概念 传统的Web服务器中,每个请求都会创建一个线程,这会导致线程数的增加,从而影响服务器的性能和扩展性,Ryan Dahl借助Chrome的V8引擎提供的能力实现了Node.js——可以在服务端运行的JavaScript(可以把Nod…

高数(下) 第九章:多元函数微分学 及其应用

文章目录 Ch9. 多元函数微分学 及其应用(一) 二重极限(二元函数的极限)(二) 多元函数的连续性(三) 偏导数1.偏导数的定义2.二阶混合偏导数相等3.变限积分求偏导 (四) 二元可微:全增量、全微分(五) 多元复合函数 求导法则(六) 多元隐函数 的求…

Mac如何在终端使用diskutil命令装载和卸载推出外接硬盘

最近用 macOS 装载外接硬盘的时候,使用mount死活装不上,很多文章也没详细的讲各种情况,所以就写一篇博客来记录一下。 如何装载和卸载硬盘(或者说分区) mount和umount是在 macOS 上是不能用的,如果使用会…

R语言——字符串处理

paste(abc, def, gh, sep ) #粘贴字符串 substr(abcdefg, 2, 3) # 取特定字符串 gsub(abc, , c(abc, abcc, abcbc)) # 将字符串中abc替换为空 strsplit(a;b;c, ;, fixed T) # 按照;切分字符串 strsplit(a222b2.2c, 2.2, fixed F) # 按照正则表达式分隔,这里的.是…

解放运营人员:钡铼技术S475物联网网关实现养殖环境的远程监控与告警

在养殖行业中,对环境参数的精确监测与控制至关重要。然而,传统的监测方法往往存在诸多痛点,如数据采集不准确、传输速度慢、可视化效果差等。为了解决这些问题,钡铼技术公司推出了其旗舰产品——S475多功能RTU,该产品在…

外包干了2个月,技术退步明显...

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

云原生之深入解析K8S的请求和限制

一、Kubernetes 限制和请求 在 Kubernetes 中使用容器时,了解涉及的资源是什么以及为何需要它们很重要。有些进程比其它进程需要更多的 CPU 或内存,这很关键,永远不应该让进程饥饿,知道了这一点,那么应该正确配置容器…

Visual Studio 2017下的C++开发环境搭建

Visual Studio 是Microsoft旗下的开发工具包系列产品,是一个基本完整的开发工具集,它包括整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等,是最流行的Windows平台应用程序的集成开发环境。…

【Springboot集成Neo4j完整版教程】

🚀 Neo4j 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,C…

低代码平台的价格范围及购买成本分析

Zoho Creator是一款强大而灵活的低代码应用程序开发平台,可帮助企业快速、高效地创建各种应用程序。但是,很多人可能会担心它的价格问题。在这篇文章中,我们将深入探讨Zoho Creator的定价策略和计划,以帮助您更好地理解其价格结构…

vue+elementui实现联想购物商城,样式美观大方

目录 一、首页效果图对比 1.联想商城首页截图: 2.作者项目效果图: 二、商品详情效果图对比 1.联想官方截图: 2.作者项目截图: 三、项目实现 1.数据分离维护 2.首页推荐列表数据处理 3.商品详情数据动态获取完成交互 4.商品详…