Re: [問題]請問如何轉換二元多次式如y=f(x)變x=f(y)

看板MATLAB作者 (外派越南工作者)時間10年前 (2015/01/04 22:33), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《qweeqwee (安安)》之銘言: : 不好意思麻煩了!! : 如題,小弟最近在做方程式的轉換, : 要把 : y = 8.4626*(10.^-10)*(x.^4)-3.4021*(10.^-7)*(x.^3) : +4.5715*(10.^-5)*(x.^2)-0.00163*(x)+0.0203 : 這個方程式做改變, : 目的是從輸入x值對應到y轉換成輸入y值對應成x : y = f(x) =====> x = f(y); : 遇到的困難點是如果輸入指令solve('y=一長串','x') : 就會出現error,測試後頂多只能解2次方的函數, : 不知道該怎麼辦,這問題已經困擾第五天了.... : 網路上也找不到function或是做法, : 麻煩各位高手教導小弟該如何解! : 謝謝各位!! y = f(x) =====> x = f(y) 其實是反函數的定義 f^(-1)(f(x)) = x ===> f^(-1)(y) = x 這個題目沒有想像中簡單,求出來的解我也有點看不大懂 ------------------------------------------------------------ >> syms x >> f(x) = 8.4626*(10.^-10)*(x.^4)-3.4021*(10.^-7)*(x.^3) + 4.5715*(10.^-5)*(x.^2)-0.00163*(x)+0.0203; >> g = finverse(f) g(x) = RootOf(z^4 - (3290309224728743936*z^3)/8184524512856609 + (442128350749462167552*z^2)/8184524512856609 - (49263727149296138869276672*z)/25576639102676903125 - (9671406556917033397649408*x)/8184524512856609 + 122705970690884861232676864/5115327820535380625, z) ------------------------------------------------------------- 以上供您參考 -- 1.MATLAB programming 2.ASPEN process simulation package 3.FORTRN programming 4.Advance Engineering Mathematics 5.Process Control Theory 6.Chemical Engineering Basic Theory(Kinetic.thermodynamics.transport) 7.Numerical Method and Analysis 8.MATLAB Toolbox.Simulink system basic design -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 113.175.144.126 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1420382028.A.590.html

01/05 20:13, , 1F
感謝z大您的解惑,我之前有試過finverse,但出現ERROR,
01/05 20:13, 1F

01/05 20:14, , 2F
原來是我沒定義x 才出現問題,那還有個問題想請教您,
01/05 20:14, 2F

01/05 20:15, , 3F
可以把sym x 的範圍設定在0~100之類的值嗎?
01/05 20:15, 3F
文章代碼(AID): #1KgKzCMG (MATLAB)
文章代碼(AID): #1KgKzCMG (MATLAB)