matlab求方程数值解
的有关信息介绍如下:fun=@(x,y)y.*log10(y)-x创建关于x,y的匿名函数log10(x)由于Matlab中自然对数的符号是log(与我们数学上的不同),以10为底的对数符号是log10,同理有log2,但是没有log3等哦vpa将得到的符号解转化为指定精度的小数,比如vpa('sqrt(2)',10)将sqrt(2)表示10位精度的小数fzero是Matlab求解一元函数零点的内置函数fsolve是Matlab中求解方程组解(可以求解复数)的内置函数,功能强于fzerofval是返回fun(x)的值,也就是说fzero和fsolve返回方程的解x,那么此时的fun(x)就是fval这个方法比较多 可以数值也可以解析求解 1.解析求解 >> solve('y*log10(y)=3','y') ans = 3*log(10)/lambertw(3*log(10)) >> vpa(ans) ans = 4.5555357051951280236911974082484 2.数值解法这个可以使用fsolve和fzero,前者的功能更加强大,但是对于这个问题fzero就可以了 >>x=3; >>fun=@(y)y*log10(y)-x; %使用fsolve >> [x,fval]=fsolve(fun,rand) Optimization terminated: first-order optimality is less than options.TolFun. x = 4.5555 fval = 3.9620e-008 %使用fzero >> [x,fval]=fzero(fun,5) x = 4.5555 fval = -8.8818e-016