matlab solve解符號函數問題
題目:
matlab solve解符號函數問題
爲什麼用solve函數可以解出【log(x)=c'】,解不出【b*(a+x)*log(x)=c】的x值?如何解
>> solve('5*(60+x)*log(x)=10')
ans =1.0333118065736867150074014102319
>> solve('b*(a+x)*log(x)=c')
Error using ==> solve
Unable to find closed form solution.
解答:
錯誤的意思是找不到解析解,即一個通用的關於a,b,c的可以用來計算x值的表達式.注意一定是通用的.
這說明這個方程沒有一般意義上的解析解,但是當a,b,c取某些值時它又存在解,其實這種解區別於解析解,算是數值解.只有當a,b,c滿足某些條件時才存在.
事實上工程上很多實用方程都只有數值解,還有很多偏微分方程都是沒有解析解的,真正有解析解的方程是相對很少的.
因此,這種錯誤與軟體無關,與方程本身固有的一些特性有關.想深入了解的話建議你看一些相關的書籍.
添加新評論