Kat*_*ine 4 matlab symbolic-math
我希望使用MATLAB的Symbolic Math工具箱为Riemann Stieltjes积分编写代码.定理的一个必要条件是函数的导数必须是连续的.我正在使用该diff函数来查找符号派生词.函数的域是一个包含无限多个点的闭合实际区间,因此我无法检查每个点.我想知道MATLAB中是否有任何内置函数可以确定函数是否连续.
有什么方法可以检查通过区分我的输入函数获得的函数是否连续?
是的,您可以通过MuPAD的discont函数来实现这一点,该函数列出了函数的不连续性.可以从Matlab中调用 MuPAD函数.例如:
syms x;
f = 1/(x*(x-1));
feval(symengine,'discont',f,x)
Run Code Online (Sandbox Code Playgroud)
回归[ 1, 0],两极f.如果你想绑定你的搜索域,一种方法是通过assumptions.现在:
syms x;
assume(x>=0);
assumeAlso(x<1/2);
f = 1/(x*(x-1));
feval(symengine,'discont',f,x)
Run Code Online (Sandbox Code Playgroud)
回来0.或者,您可以使用MuPAD的字符串表示法:
syms x;
f = 1/(x*(x-1));
feval(symengine,'discont',f,[char(x) '=0.5..2'])
Run Code Online (Sandbox Code Playgroud)
返回1.显然,如果域上的不连续列表不为空(参见isempty),那么该函数不是连续的(即,不连续).
我建议阅读文档discont.我不知道它有多可靠,或者它是否会遇到更复杂的功能.