Matlab函数判断一个函数是否连续?

Matlab function to determine if a function is continous or not?

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

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

是的,您可以通过 MuPAD's discont function, which lists the discontinuities of a function. MuPAD functions can be called from within Matlab 的方式完成此操作。例如:

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

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

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

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

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

其中 returns 1。显然,如果域上的不连续点列表不为空(参见 isempty),则函数不连续(即不连续)。

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