[請教] 關於符號運算

看板MATLAB作者 (dirty bit !!)時間14年前 (2011/11/06 11:24), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
大家好...小弟我是個新手... 在寫程式時有個問題真的不知該如何解決...>O< 所以寫信想請教大家... 以下是我的m-file function a=fun(m) a=zeros(m+1); for i=0:m for j=0:m if i > j a(i+1,j+1) = 3 / (i-0.4*j)^3; end if i == j a(i+1,j+1) = -sum(a(i+1,1:j)); end end end 其實我想寫出一個函數矩陣,此函數矩陣是由 m+1 跟 x 決定 m+1 是我要設立的方陣大小 x 也就是函數的變數 上面的程式碼是我寫出計算的係數(以m=4為例) fun(4) 結果 [ 0 0 0 0 0 ] [ 3 -3 0 0 0 ] [0.3750 0.7324 -1.1074 0 0 ] [0.1111 0.1707 0.2817 -0.5635 0 ] [0.0469 0.0643 0.0916 0.1367 -0.3394 ] 但我最終是希望寫出的結果是這樣 [ 0 0 0 0 0 ] [ 3x^2 -3x^2 0 0 0 ] [0.3750x^2 0.7324x^2 -1.1074x^2 0 0 ] [0.1111x^2 0.1707x^2 0.2817x^2 -0.5635x^2 0 ] [0.0469x^2 0.0643x^2 0.0916x^2 0.1367x^2 -0.3394x^2 ] 等於是個 x的函數矩陣 也就是上面程式碼中第6行應該是 a(i+1,j+1) = 3* (x^2) / (i-0.4*j)^3; 但是我改成這樣 甚至前面有多 x=sym('x') 或是 syms x 都沒有辦法計算出來... 因此希望好心的大大能幫忙解答... 真的由衷感謝...^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.106.66 ※ 編輯: nago 來自: 118.168.106.66 (11/06 11:24)

11/06 11:55, , 1F
你那0矩陣也必須是symbolic才行,不然symbolic放不進去
11/06 11:55, 1F

11/06 11:55, , 2F
改成a=sym(zeros(m+1))即可
11/06 11:55, 2F

11/07 04:44, , 3F
OK了!! 由衷感謝大大的幫忙~~~!! ^^"
11/07 04:44, 3F
文章代碼(AID): #1EjVtVDo (MATLAB)