【问题标题】:Matlab function to determine if a function is continous or not?Matlab函数确定函数是否连续?
【发布时间】:2015-09-02 23:35:24
【问题描述】:

我希望使用 MATLAB 的符号数学工具箱为 Riemann Stieltjes 积分编写代码。定理成立的必要条件是函数的导数必须是连续的。我正在使用diff 函数来查找符号导数。该函数的域是一个包含无限多点的封闭实数区间,因此我无法检查每个点。我想知道 MATLAB 中是否有任何内置函数可以确定函数是否连续。

有什么方法可以检查我输入函数微分得到的函数是否连续?

【问题讨论】:

  • 这是基本的微积分。如果函数被认为是连续的,则需要满足三个标准:dummies.com/how-to/content/…。该链接仅显示一点。如果要说明函数是连续的,则必须在函数的整个域上测试上述三个标准。顺便说一句,这是题外话。考虑在数学 StackExchange 上提问:math.stackexchange.com
  • 函数的域是一个包含无限多点的闭实区间,所以我无法检查每个点。我只想知道MATLAB中是否有任何内置函数可以确定函数是否连续。
  • @rayryeng:查看更新后的问题。我不认为 OP 是在询问关于确定函数是否连续的数学题的题外话。 MuPAD 中有一个内置功能可以帮助您做到这一点。
  • @horchler - 现在我看到了更新,你是对的。有了这个,我将撤回我的投票。

标签: matlab symbolic-math


【解决方案1】:

是的,您可以通过MuPADdiscont 函数以某种方式做到这一点,该函数列出了函数的不连续性。 MuPAD 功能可以是called from within Matlab。例如:

syms x;
f = 1/(x*(x-1));
feval(symengine,'discont',f,x)

返回[ 1, 0]f 的两个极点。如果您想绑定您的搜索域,一种方法是通过assumptions。现在:

syms x;
assume(x>=0);
assumeAlso(x<1/2);
f = 1/(x*(x-1));
feval(symengine,'discont',f,x)

只返回0。或者,您可以使用 MuPAD 的字符串表示法:

syms x;
f = 1/(x*(x-1));
feval(symengine,'discont',f,[char(x) '=0.5..2'])

返回1。显然,如果域中的不连续性列表不为空(参见isempty),则该函数不连续(即不连续)。

我建议阅读discont 的文档。我不知道它有多可靠,也不知道它是否会遇到更复杂的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多