Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab求解digamma函数_Matlab_Symbolic Math - Fatal编程技术网

Matlab求解digamma函数

Matlab求解digamma函数,matlab,symbolic-math,Matlab,Symbolic Math,我试图在Matlab中求解一个函数:digamma(x)-log(x/5)=0 我尝试了sol=solve(psi(x)-log(x/5),x),但是digamma函数psi与solve函数不兼容 有什么方法可以解决这个问题吗?在Matlab版本R2011b中,符号数学工具箱的函数,因此在R2011a中无法使用它并不奇怪 如果你不能升级,这里有两件事可以尝试。首先,虽然不能调用符号输入的psi,但R2011a中的符号引擎可能仍然知道此函数。我不能保证它会起作用,但你可以试试这个: x = eva

我试图在Matlab中求解一个函数:
digamma(x)-log(x/5)=0

我尝试了
sol=solve(psi(x)-log(x/5),x)
,但是digamma函数
psi
solve
函数不兼容

有什么方法可以解决这个问题吗?

在Matlab版本R2011b中,符号数学工具箱的函数,因此在R2011a中无法使用它并不奇怪

如果你不能升级,这里有两件事可以尝试。首先,虽然不能调用符号输入的
psi
,但R2011a中的符号引擎可能仍然知道此函数。我不能保证它会起作用,但你可以试试这个:

x = evalin(symengine,'float(solve(psi(x)-log(x/5),x))')
顺便说一下,您可能希望考虑设置<代码>假设< /代码> -<代码> x>代码>如果指定“代码> SysX Reals//Cord>”,则返回不同,因为方程具有多个根。如果上述方法有效,则可以使用以下方法调用符号式psi的矢量化版本:

psisym = @(x)evalin(symengine,['map(' char(sym(x)) ',psi)'])
否则,你就必须用数字来解这个方程(
solve
用数字给出答案)。只要您假设
x
是真实的和积极的,这就不是一个坏的选择。使用和数字版本的:

返回

x =

0.407621610906987

我使用了
max(x,realmin)
来确保
x
不会变得太小(只要
fzero
的初始猜测足够大,就可能不需要)。接近零的
x
psi(0)-log(0)
,这是
NaN
,会导致
fzero
的错误信息是什么?在R2013a中对我有效。在调用
solve
之前,您是否使用
syms x
定义了
x
?你使用的是什么版本的Matlab?
哪个sym/psi
返回什么?@anjruu
???使用==>psi输入时出错必须是单输入或双输入。
@horchler抱歉,我忘了提及。我的Matlab版本是R2011a。在调用
solve
x =

0.407621610906987