[問題] 解方程式已回收

看板MATLAB作者 (Asterisk*)時間14年前 (2010/10/28 14:35), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串8/10 (看更多)
手上有四個未知數、四條方程式, 但是方程式中包含了要輸入的資料與要求的變數的兩兩乘積, 而且每一個資料值要乘的變數都不同 e.g. summation[ data(i)*i^(theta-2*lamda)] eq1: mu = --------------------------------------- summation i^2(theta-lamda) 我的想法是把要乘的變數每一項都先出symbol再放到方程式裡和資料運算, 把 eq1 中的 i ^(theta-2*lamda) 和 i^2(theta-almda)依照資料筆數數先建出矩陣, 這樣 eq1 就可以寫成 sum(data.*A) mu = -------------- sum(B) 但是這樣寫 eq1 會被判定為無效的表達式,是否這個寫法在 solve 是不可行的呢? 如果不可行的話,要用什麼樣的寫法或是其他合適的函式才能解這樣的方程式呢? 謝謝各位解惑! 以下是完整程式 data=[1:10]; %先暫時假設的資料10筆 syms mu sigma2 theta lamda for i =1:10 A(i) = i.^(theta-2*lamda); B(i) = i.^(2*theta-2*lamda); C(i) = i.^(-2*lamda); D(i) = log(i); end eq1= 'mu - ((sum(data.*A))/(sum(B)))'; eq2= 'sigma2 - (1/n)*(sum(data.*data.*C)-sum(2*data.*C)+mu*mu*sum(B))'; eq3= 'sum(data.*D.*A) - mu*sum(D.*B)'; eq4= 'sigma2*sum(D) - ( sum(D.*(data.*data).*C)-sum(D.*(2*data).*C+mu*mu*sum(D.*B) )'; [mu sigma2 theta lamda] = solve(eq1,eq2,eq3,eq4) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.235.135

10/28 19:52, , 1F
eq應該先算完再轉字串,不過這麼複雜應該沒辦法求解析了
10/28 19:52, 1F

10/28 19:52, , 2F
可能要用數值方法
10/28 19:52, 2F
文章代碼(AID): #1CoHdCvh (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1CoHdCvh (MATLAB)