【问题标题】:Integration, "shifted" integrand, Matlab积分,“移位”被积函数,Matlab
【发布时间】:2014-05-04 00:55:48
【问题描述】:

我有一个积分方程,我需要用 Matlab 进行数值求解,但我目前陷入困境。 我只需要一些关于如何用 Matlab 处理这些问题的关键思想的帮助,所以我将把它从大多数数学中剥离出来。

在我的代码中,Zg 和 omega:w 是相同大小的向量,因此 Z(1) 对应于 w(1) 等,而 f 是一个函数。

如何以最好的方式对待“转变”w-w_prime?当w-w_prime 对应于Zg 之外的参数时,我没有很好的方法来处理这种情况。我一直在想我可以使用Zgf,在我的问题中,对应于偶函数,但我不太清楚如何。

【问题讨论】:

  • 不太清楚您的问题是什么 - 请说明您要使用的积分公式,特别是您所说的 w 以及为什么要在 @ 域之外对其进行评估987654336@。您可能会发现值的线性插值会给您正在寻找的“中点”;或者您可以查看像 convn 这样的函数,它允许您进行卷积(使用 'same' 可选参数,它会为您处理转换)。
  • 抱歉,尝试发布图片但没有成功...我添加了一个链接。
  • 这看起来很像fgZ 的卷积。我理解正确吗?但是 Z 在等式的两边,这有点吓人——我想这就是为什么你说你需要“解决”等式(而不是“评估”积分,这只是它的一半)。你在求解 Z、g、f 吗?
  • 是的,我一直在尝试对这个问题使用卷积,但我没有得到正确的解决方案。但是我可能会做错事。我想知道是否有办法用数值积分计算实际积分。但我可能应该再试一次卷积。
  • 所有数值积分都需要对一系列点进行评估。您是否考虑过函数的属性以及最佳的集成方法?整本书都写过这个——如果你关心准确性,你就不能“仅仅集成”(特别是如果你的函数有不连续性或其他“奇怪”行为)。这不是 Matlab 的问题——这要大得多。所以我建议你写出你想要计算的表达式——离散求和,而不是积分——我们会帮你转换成 Matlab。

标签: matlab numerical-integration


【解决方案1】:

帮助您入门的一些想法:

  1. 您可能应该定义您希望 Z 存在的域;你应该在这个域之外设置Z=0。这将帮助您处理您的表达式正在为所有可能的 ω 值评估 Z 的事实
  2. convn 函数可能对评估“积分”很有帮助 - 尽管它实际上只是执行 sum-shift-add 类型的运算,因此不是真正正确的数值积分。
  3. matlab 的优化工具箱中内置了各种非线性求解器 - 当我需要求解此类棘手的方程时,我发现使用这些求解器非常方便。
  4. 你的生活变得更加复杂,因为(我想你会说)你在对应于 ω 的点上列出了 Z 的值 - 因此这些点可能不是等距的。对于像convn 这样的函数,您需要相等的间距,并且您可能想要进行插值:

    Zequal = interp1(w, Z, 1:maxW);

将为您提供等距的 Z 值(基于在点 (w, Z(w)) 处观察到的值。您可以使用高阶插值(例如 interp1(w, Z, 1:maxW, 'cubic');)来获得更平滑的函数。

这些只是让你(和其他阅读这篇文章的人)开始的一些想法......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-23
    • 2012-06-08
    • 2018-04-24
    • 2023-03-08
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多