解微分方程+ode求解器

该命令中可以用D表示微分符号,其中D2表示二阶微分,D3表示三阶微分,以此类推。

求精确解

1.微分方程

r=dsolve(‘eqn1‘,‘eqn2‘,...,‘cond1‘,‘cond2‘,...,‘var‘).

解释如下:eqni表示第i个微分方程,condi表示第i个初始条件,var表示微分方程中的自变量,默认为t。

>> dsolve(‘Dy=3*x^2‘,‘y(0)=2‘,‘x‘)

ans = 

x^3 + 2

2.微分方程组

>> [x,y]=dsolve(‘Dx=y‘,‘D2y-Dy=0‘,‘x(0)=2‘,‘y(0)=1‘,‘Dy(0)=1‘)

x =

exp(t) + 1

y =

exp(t)

3.求解微分方程组在初始条件x (= 0)= 1, y (=0 )= 0 下的特解,并画出解函数的图像。

>> [x,y]=dsolve(‘Dx+5*x+y=exp(t)‘,‘Dy-x-3*y=0‘,‘x(0)=1‘,‘y(0)=0‘,‘t‘)

x =

exp(t*(15^(1/2) - 1))*(15^(1/2) - 4)*((13*15^(1/2))/330 - exp(2*t - 15^(1/2)*t)*(15^(1/2)/165 + 1/22) + 1/22) - exp(-t*(15^(1/2) + 1))*(exp(2*t + 15^(1/2)*t)*(15^(1/2)/165 - 1/22) + (15^(1/2)*(15^(1/2) - 13))/330)*(15^(1/2) + 4)

y =

exp(-t*(15^(1/2) + 1))*(exp(2*t + 15^(1/2)*t)*(15^(1/2)/165 - 1/22) + (15^(1/2)*(15^(1/2) - 13))/330) + exp(t*(15^(1/2) - 1))*((13*15^(1/2))/330 - exp(2*t - 15^(1/2)*t)*(15^(1/2)/165 + 1/22) + 1/22)

>> ezplot(x,y)

ezplot与plot的区别

plot(x,y)以x为横坐标,y为纵坐标绘制曲线

plot(x,y1,x,y2,...)以x为横坐标值,以y1,y2...元素为纵坐标值绘制多条曲线

plot中x,y的表达式是已知的或者是形如y=f(x)的表达式

而ezplot是画出隐函数图形,是形如f(x,y)=0这种不能写出像y=f(x)这种函数的图形,explot无需数据准备,直接画出函数图形

求近似解

ode求解器

求解器 问题类型 精度 何时使用
ode45 非刚性
大多数情况下,您应当首先尝试求解器 ode45

ode23
对于容差较宽松的问题或在刚度适中的情况下,ode23 可能比 ode45 更加高效。

ode113 低到高
对于具有严格误差容限的问题或在 ODE 函数需要大量计算开销的情况下,ode113 可能比 ode45 更加高效。

ode15s 刚性 低到中
ode45 失败或效率低下并且您怀疑面临刚性问题,请尝试 ode15s。此外,当解算微分代数方程 (DAE) 时,请使用 ode15s

ode23s
对于误差容限较宽松的问题,ode23s 可能比 ode15s 更加高效。它可以解算一些刚性问题,而使用 ode15s 解算这些问题的效率不高。

ode23s 会在每一步计算 Jacobian,因此通过 odeset 提供 Jacobian 有利于最大限度地提高效率和精度。

如果存在质量矩阵,则它必须为常量矩阵。

ode23t
对于仅仅是刚度适中的问题,并且您需要没有数值阻尼的解,请使用 ode23t

ode23t 可解算微分代数方程 (DAE)。

ode23tb
ode23s 一样,对于误差容限较宽松的问题,ode23tb 求解器可能比 ode15s 更加高效。

ode15i 完全隐式
对于完全隐式问题 f(t,y,y’) = 0 和微分指数为 1 的微分代数方程 (DAE),请使用 ode15i

1. 求解微分方程初值问题的数值解,求解范围为区间 [0,0.5] 。

inline()通俗的来说就是用于定义函数,使用inline定义一个函数

给a,b,x赋值即可得到y

>> f=inline(‘a*x+b‘,‘a‘,‘b‘,‘x‘);
>> f(1,2,3)

ans =

     5

研究Runge-Kutta原理中。。待更

原文地址:https://www.cnblogs.com/zuiaimiusi/p/11329549.html

时间: 2024-10-08 23:43:16

解微分方程+ode求解器的相关文章

F-Chart.Engineering.Equation.Solver.Pro.v9.478-3D工程方程求解器

F-Chart.Engineering.Equation.Solver.Pro.v9.478-3D工程方程求解器 FunctionBay.RecurDyn.V8R4.SP1.1.Win64 Engineering Equation Solver的一 个主要特征是其高精确度的热力学和传输性质的数据库,提供了数百物质的方式来增强求解能力. Engineering Equation Solver是一款通用的方程求解程序,它可以数值化求解数千连接的非线性代数 和微分方程.该程序还可以用来解决微分和积分方

编程之美之数独求解器的C++实现方法

编程之美的第一章的第15节,讲的是构造数独,一开始拿到这个问题的确没有思路, 不过看了书中的介绍之后, 发现原来这个的求解思路和N皇后问题是一致的, 但是不知道为啥,反正一开始确实没有想到这个回溯法,知道是用回溯法求解之后,问题就变得容易了很多. 这里我们不打算实现数独的构造,相反的,我们实现一个数独求解器,以后妈妈再也不用担心我的数独了. 当然求解器的思路和构造数独的思路一样,都是回溯法搜索,这里不再过多说明. 程序运行说明: 1.把待求解的数独数据放到in.txt文件中, 程序会自动读取他,

人工智能包括约束求解器吗?

以下是翻译Optaplanner创始人Geoffrey De Smet的一篇文章<Does A.I. include constraint solvers?>. 因为英语及中文表达习惯的差异,以该博文发表示Optaplanner官网,其描述的问题及概念具有一定的上下文关联性:因此,为了认还不太熟悉Optaplanner的同学更容易理解,令文章更符合中文母语读者的阅读习惯,我并没有完全按字面生硬直译.其中添加了一些扩展性的意译,基本上能在脱离Optaplanner官网上下文情况下,一定程序上表达

QuantLib 金融计算——数学工具之求解器

目录 QuantLib 金融计算--数学工具之求解器 概述 调用方式 非 Newton 算法(不需要导数) Newton 算法(需要导数) 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之求解器 载入模块 import QuantLib as ql import scipy from scipy.stats import norm print(ql.__version__) 1.12 概述 QuantLib 提供了多种类型的一维求解器,用以求解单

TRAC-IK机器人运动学求解器

TRAC-IK和Orocos KDL类似,也是一种基于数值解的机器人运动学求解器,但是在算法层面上进行了很多改进,相比KDL求解效率(成功率和计算时间)高了很多.下面在Ubuntu16.04中安装TRAC-IK(之前已经安装过ROS Kinetic): sudo apt-get install ros-kinetic-trac-ik 按照ROS教程新建一个名为ik_test的Package,并创建urdf文件夹用于存放机器人URDF描述文件,创建launch文件夹存放launch文件: 参考tr

Runge-Kutta法解微分方程

连续问题,微分方程或偏微分方程一定能表示.比如疾病传染.新闻传播等. 离散问题,可以用差分方程或者类似于差分的算法. 方程 $y'=cos t$ 代码 123456789 clear,clc; f = @(t,y) cos(t); tspan = [0,2*pi]; % 时间t范围y0 = 2; % y的初值,用来处理积分得到的C[t,y] = ode23(f,tspan,y0); % 注意调用格式plot(t,y);xlabel('t');ylabel('y'); @表示句柄,当把一个函数作为

SAT求解器快速入门

从事组合优化或信息安全方向的研究人员,基于SMT研究,需要快速学习SAT求解器的基本原理和方法.以下是快速入门的几点体会: 1.理清需要——是完备求解器还是不完备求解器 完备求解器 能给出SAT.UNSAT.unknow三种确定的答案,尤其是UNSAT结论能给出证明推导过程,指出导致矛盾的关键路径.   不完备求解器能给出SAT.unknow两种结论.SAT结论给出一组可满足解即完成求解任务.可能会存在其他一组或多组可满足解.如果问题本身不知一组解,那么不同的求解器得出的可满足解可能不同. 2.

Maxwell顺态求解器电磁力分析

文源:技术邻 问题描述:求解一段通有正弦交流电的直导线在某一稳态磁场中的受力情况,并简单验证仿真结果. 模型介绍: 如上几何模型中10mm边长立方体代表永磁体,材料属性为材料库中的NdFe35,修改磁化方向为X方向,其他属性不变,如下图所示.其中黄色圆柱体代表铜导线,红色框线代表求解区域(真空).导线端面与求解域重合,电流不会泄漏以便顺利计算. Maxwell求解树如下: Solution type: Transient瞬态求解器 Boundaries:未指定,系统选取默认求解边界. Excit

在redhat6.4上编译z3求解器

因为项目需要,我们使用到了微软的z3求解器求约束,但是z3求解器在红帽平台上并没有发布编译好的二进制版本,而我们的运行环境是红帽的企业版6.4,因此需要自己编译相应的二进制. z3是由微软公司开发的一个优秀的SMT求解器(也就定理证明器),它能够检查逻辑表达式的可满足性.目前的最新版本是4.4.1,github主页. 从z3主页上面下载最新的代码 git clone [email protected]:Z3Prover/z3.git 切换工作目录到z3下执行 python ./scripts/m