在 MATLAB 中实现显式欧拉方法(适用于 ODE)

2024-02-11

我到处都找过了,但什么也没找到。

首先,我想说我从未使用过 Mat Lab,所以我不知道我在做什么。

我尝试了一些方法,但没有任何效果。显然 y(0)=2 试图创建一个包含 0 个值为 2 的单位的列表?

无论如何,有人可以帮助我吗? 我需要在 Mat Lab 中编写一个灵活的欧拉方法方程来求解这样的几个方程。

1) y' = 5-3sqrt(y) ; y(0)=2

其中 h= .1 , .05 , .025, .01 && t =.5 ,1 , 1.5 , 2 , 2.5 ,3

我不知道我在做什么。


让我们假设以恒定的时间步长实现该方法,例如dt>0。 如果我们想将方程积分到某个时间T>0,我们考虑时间离散化

tt = 0:dt:T;

为了速度目的,我们最好预先分配我们的解向量,即

yy=zeros(1,length(tt));

yy将包含我们将产生的解决方案的第一个按时间顺序的近似值(即,很少滥用符号,

yy(1)==y_r(t=0)

and

yy(end)==y_r(t=T) + global error,

其中函数y_r=y_r(t)是我们真正的解决方案)。

假设我们有一个正规形式的一阶 ODE,即

 dy_r / dt = f(y_r;t)

和一个初始数据

 y_r(t=0)=y_0

(即我们有一个柯西问题)。因此,我们应该首先初始化我们的解向量

  yy(1) = y_0;

然后,我们可以找到未来时代的解决方案,即

  N = length(tt);
  for t = 2 : N        // we should look at future times, thus we start from 2
                       // NOTE: this is first order explicit Euler scheme.
       yy(t) = yy(t-1) + dt*f(yy(t-1),t);
  end

我们完成了。我们现在可以绘制解决方案。

  plot(tt,yy);

现在的重点是:你是使满意 with 一阶时间精度?

想想如果你使用这个方案来解决例如哈密​​顿量问题(例如简谐振子),它会给你的系统提供人工激励(正确地,你可以看到偏离正确的哈密顿轨道的漂移)。简而言之,过了一会儿你的解决方案是完全人造的.

事实上,当您解决实际问题时,您必须仔细考虑您的问题和物理原理,然后选择合适的数值方案来求解方程。很快,您可能会被要求实施更准确的方案,例如龙格·库塔(你可以更好地信任它,但只是一点点,至少以其原始形式)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MATLAB 中实现显式欧拉方法(适用于 ODE) 的相关文章

  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 将向量(或弧)绘制到玫瑰图上。 MATLAB

    我有两个数据集 其中详细列出了angles 我正在绘制玫瑰图 angles 0 8481065519 0 0367932161 2 6273740453 n 另一个 从这组角度详细说明方向统计 angle error 0 848106563
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 从 1 到 20 亿,像 (23,29) 这样相差 6 的连续素数对的数量

    如何在考虑时间复杂度的情况下从 1 到 20 亿 使用任何编程语言且不使用任何外部库 找到像 23 29 这样相差 6 的连续素数对的数量 尝试过埃拉托色尼筛 但获得连续素数是一个挑战 使用了生成器 但时间复杂度非常高 代码是 def ge
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 帮助我理解FFT函数(Matlab)

    1 除了负频率之外 FFT 函数提供的最小频率是多少 是零吗 2 如果它为零 我们如何在对数刻度上绘制零 3 结果总是对称的 或者只是看起来是对称的 4 如果我使用abs fft y 来比较2个信号 我是否会失去一些准确性 1 除了负频率之
  • Matlab:2行10列的子图

    如何在 matlab 中绘制 20 幅图像 2 行 10 列 我知道我必须使用 子图 功能 但我对给出的参数感到困惑 我尝试给予 子图 2 10 行索引 列索引 但它似乎不起作用 请帮忙 的前两个参数subplot函数分别给出图中子图的总行
  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • MATLAB parfor 和 C++ 类 mex 包装器(需要复制构造函数?)

    我正在尝试使用概述的方法将 C 类包装在 matlab mex 包装器中here http www mathworks com matlabcentral newsreader view thread 278243 基本上 我有一个初始化
  • MATLAB问题:在图块中引用变量的值[重复]

    这个问题在这里已经有答案了 可能的重复 matlab 绘图标题中的变量 https stackoverflow com questions 5629458 matlab variable in plot title 我想在图中引用 m 文件
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 图像处理方面的空间和时间表征有什么区别?

    我是学习图像处理的初学者 我对空间和时间表征的概念有点困惑 那么 对于空间表征来说 是不是像一张二维地图 包含了一些关于地图的统计信息呢 就时间特征而言 值是相对于时间的吗 这意味着什么以及我们为何关心 谢谢 当您在不同时间拍摄一系列图像时
  • 在 Python 上显示 Matlab mat 文件中的图像

    我目前正在尝试显示从此下载的 Mat 文件中的图像site http www rctn org bruno sparsenet 这是一个 mat 文件 所以我尝试使用 scipy io loadmat 函数加载它 但我似乎无法绘制图像 我究
  • 计算给出数组中最小标准差的子集

    让我们有一个大小的向量N 例如 x rand N 1 我想计算长度子集的最小标准差K在向量中 When N and K很小 很容易找到最好的子集 因为我可以使用nchoosek N K 枚举所有可能的子集 但是当值N and K比我们说的要
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255

随机推荐

  • 随着 AsyncTaskLoader 的存在,AsyncTask 是否已被弃用?

    尽我所知 AsyncTaskLoader不仅拥有所有的能力AsyncTask而且还结合了最佳实践 例如避免内置的重复线程和过早死亡 使用有任何理由吗AsyncTask不再 或者我应该一直使用AsyncTaskLoader盲目地 我问这个问题
  • 如何使用Java反射获取参数名称[重复]

    这个问题在这里已经有答案了 如何使用 Java 反射获取方法签名 EDIT 我实际上需要参数 NAMES 而不是方法的类型 要获取您调用的类 C 的方法 iC class getMethods i toString EDIT 获得参数名称
  • App Engine:NDB 和数据存储之间的区别

    我现在正在浏览 Google App Engine 文档 Python 发现了两种不同类型的存储 NDB 数据存储 数据库数据存储 两个配额限制 免费 似乎相同 它们的数据库设计也相同 然而NDB会自动将数据缓存在Memcache中 我实际
  • Quartz:不实现接口成员

    我正在使用 Quartz 并使用示例代码并收到错误 CS0738 EmailJob 未实现接口成员IJob Execute IJobExecutionContext EmailJob Execute IJobExecutionContext
  • 在 SignalR Hub 上使用通用方法

    我正在为我的 SignalR 服务器创建一个 Hub 类 并希望使用一种通用方法 这将使我免于编写大量代码 但是 当我尝试从 Xamarin iOS 客户端 也是 C 语言 调用下面的服务器代码时 SignalR 给了我错误 服务器代码 您
  • Java:ExecutorService 在达到一定队列大小后阻塞提交[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个解决方案 其中单个线程生成可以并行执行的 I O 密集型任务 每个任务都有重要的内存数据 所以我希望能够限制当前待处理的任务数量 如果我像这样创建 ThreadPoolExecutor Thre
  • 给定三角形顶点坐标,求 3D 三角形的旋转角度

    我尝试在 3D 中旋转和平移一个等边三角形 直到他的顶点到达某个坐标 顶点坐标F G H and F G H 已知 我能够找到新的质心c 坐标是这样的 c x F x G x H x 3 c y F y G y H y 3 c z F z
  • Android 外部库项目出现 NoClassDefFoundError

    我使用 eclipse 进行 Google Android 开发 我创建了一个图书馆项目 x Is Library在 Android 设置中 其中包括外部 jar 文件 参考库 该库项目在另一个项目 将使用该库项目的实际项目 中引用 这是通
  • 错误 - 未标记为可序列化

    我收到的错误是 Type OrgPermission in Assembly App Code ptjvczom Version 0 0 0 0 Culture neutral PublicKeyToken null is not mark
  • 根据父子数据绘制树形图或组织图

    我在带有 GroupID TreeID 的表中有父子信息 从这张表中我想得出这样的结果 画树的目的只是为了观看 该表有数千个组ID 树结构 我正在使用 NET 平台 我应该如何进行 create table parent child Gro
  • XXX_* 输入生成的 *.pb.go 文件

    我正在研究一个tutorial https ewanvalentine io microservices in golang part 1 关于 gRPC 当我生成 pb go文件 我得到一些XXX 输入我的结构 这是我的consignme
  • Eclipse > Javascript > 代码高亮不能使用对象表示法

    我在用Eclipse Helios 使用 PDT 以及当我使用默认值编辑 JavaScript 文件时JavaScript Editor JSDT 代码高亮 Mark Occurrences 不适用于 JSON style or Objec
  • 嵌套 vue.js 实例/元素

    这可能听起来像一个真正的菜鸟问题 但我对 MVVM 甚至 JS 中的 MVC 都很陌生 所以提前抱歉 我正在使用 vue js 并且到目前为止很喜欢它的简单性 但对于我想做的事情 我认为我需要以不同的方式去做 我想将 Vue 实例 元素嵌套
  • 从两个多态类继承

    给出以下代码 class T public virtual T virtual void foo 0 class U public U U void bar std cout lt lt bar lt lt std endl class A
  • 如何在 join linq 语法中比较 null

    处理 EF 4 C Face join 中的问题 SQL语法 Select a Code b Name from DepartmentMaster a Join DepartmentDetail b on isnull a ID 0 isn
  • 如何在 Snakemake 表格配置中使用列表,用于描述生物信息学管道的测序单元

    如何在 Snakemake 表格配置中使用列表 我使用 Snakemake Tabular 与 BWA mem 映射 配置来描述我的测序单元 在单独的行上测序的文库 在分析的下一阶段 我必须合并测序单元 映射的 bed 文件 并获取合并的
  • 使用 PORT=XXXX 启动节点永久脚本

    当通过特定端口运行节点命令时 我会这样启动应用程序 PORT 1234 node app js 我如何将端口传递给forever命令 无论我做什么 似乎都不想工作 我试过了 将端口作为参数传递 forever start app js 12
  • 循环浏览用户指定的根目录中的子文件夹和文件[重复]

    这个问题在这里已经有答案了 我通过各个文件的循环脚本工作正常 但我现在还需要它来查找多个目录 我被困住了 事情发生的顺序 提示用户选择他们需要的根目录 我需要脚本来查找该根目录中的任何文件夹 如果脚本找到一个 它将打开第一个 所有文件夹 因
  • 如何在Java中使用Graphics2D旋转文本?

    我想使用 Graphics2D 旋转 JPanel 上的文本 我的代码是这样的 double paso d width numeroBarras double alto datos i valor Font fBarras new Font
  • 在 MATLAB 中实现显式欧拉方法(适用于 ODE)

    我到处都找过了 但什么也没找到 首先 我想说我从未使用过 Mat Lab 所以我不知道我在做什么 我尝试了一些方法 但没有任何效果 显然 y 0 2 试图创建一个包含 0 个值为 2 的单位的列表 无论如何 有人可以帮助我吗 我需要在 Ma