Re: [討論] 請問線性回歸曲線的語法如何寫???

看板MATLAB作者 (eji)時間13年前 (2012/09/11 13:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《iammyfriend (先承認你就是你朋友)》之銘言: : x = 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3.0 : y = 10.2 9.8 12.5 13.6 13.1 16.4 17.3 17.1 18.5 19.5 : 回歸曲線 y = a + b*sin(x) + c*x^2 : 我要求的是a,b,c的矩陣(3x1矩陣) : 要怎麼寫的原理我是懂 : 先化成矩陣 然後以反矩陣的方法求出{a,b,c} : 只是語法每次寫都失敗 而且書上只有教概念 沒教語法的寫法 : 想請各位高手教一下 語法的寫法 : 唉 小妹想剛學matlab .. 我的語感太差了 基本上這已經不是線性回歸了 不過原理還是一樣用Least Squares Method 語法的問題可以找一本中文書慢慢摸 以這題其實主要只會用到.* .^對向量作元素的*與次方運算 以及sum把向量加總 A=[10 sum(sin(x)) sum(x.^2) sum(sin(x)) sum(sin(x).^2) sum(x.^2.*sin(x)) sum(x.^2) sum(sin(x).*x.^2) sum(x.^4)]; B=[sum(y) sum(y.*sin(x)) sum(y.*x.^2)]; coeff=inv(A)*B 其中coeff的三個分量分別對應a,b,c 而這行又可以換成 coeff=A\B 因為inv(A)會真的把反矩陣求出 而A\B只是求解線性代數方程 效率和精度都比較高 另外matlab其實有toolbox可以用 如果妳不想自己寫語法可以使用 cftool(x,y) 叫出GUI介面 然後點 Fitting -> New fit -> Type of fit 選 Custom Equations -> New equation -> General Equations =右邊輸入 a+b*sin(x)+c*x^2 -> ok -> Apply 就可以看到fitting完的結果 剩下的妳可以自己摸索 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.146.175
文章代碼(AID): #1GJjBQFo (MATLAB)
文章代碼(AID): #1GJjBQFo (MATLAB)