matlab 对数方程如何求解

solve('-0.51435*x+log10(x)=-1.74727','x')

把等号变成双等号即可:(下见代码)
>> syms x
>> solve(-0.51435*x+log10(x)==-1.74727,x)

ans =

-(20000*lambertw(0, -(10287*10^(1138194733825345/4503599627370496)*log(10))/2000000))/(10287*log(10))
---------------------------
(因为 [单等号] 只用来赋值,[双等号] 用来表达“相等”)追问

solve('-0.51435*x+log10(x)==-1.74727','x')
??? Error using ==> solve at 77
' -0.51435*x+log10(x)==-1.74727 ' is not a valid expression or equation.
报错,这种写法不正确。

追答

你把引号去掉试试~
solve(-0.51435*x+log10(x)==-1.74727,x)

前后都不要加引号

追问

syms x
>> solve(-0.51435*x+log10(x)==-1.74727,x)
??? Error using ==> char
Conversion to char from logical is not possible.

Error in ==> sym.solve at 46
S{k} = char(varargin{k});
这是不用引号的结果

温馨提示:答案为网友推荐,仅供参考
相似回答