回覆列表
  • 1 # Affgcff

    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

  • 中秋節和大豐收的關聯?
  • 為什麼我口腔內唾液很少?/?