[討論] 求神人幫忙把這串mathematica的程式改寫!

看板MATLAB作者 (阿泰斯)時間13年前 (2013/03/14 16:52), 編輯推噓0(0013)
留言13則, 2人參與, 最新討論串1/1
http://truth.bahamut.com.tw/s01/201303/f5e24b73446d22a515c98713daf72881.JPG
以上是mathematica的程式碼 網址是巴哈姆特的圖片上傳空間 '西格馬'大家應該看的懂@@(symsum) if大家應該也看的懂 重點是c(i,j,k,l)、ci(n)、sd(k,l)都是函數,英文字姆部分都只是個代號 解釋一下圖片程式在寫啥: k=l時是c(i,j,k,l)*ci(n)*sd(k,l),l>k的時候是c(i,j,k,l)*ci(n)*(sd(k,l)+sd(l,k)),k>l時為0 故最後加起來的解是: c(i,j,1,1)*ci(n)*sd(1,1)+c(i,j,2,2)*ci(n)*sd(2,2)+c(i,j,3,3)*ci(n)*sd(3,3)+c(i,j,1,2)*ci(n)*(sd(1,2)+sd(2,1))+c(i,j,1,3)*ci(n)*(sd(1,3)+sd(3,1))+c(i,j,2,3)*ci(n)*(sd(2,3)+sd(3,2)) 現在困難點是c()、ci()、sd()都是函數,但是又不想定義他是啥麼,想讓他直接以未知函數的形式來表示 就像上面的解那樣顯示 一直想都想不出來怎寫... 求高手救救我這個剛來matlab的新手! 感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.1

03/14 20:40, , 1F
c(), ci(), sd() 你可以用匿名函數定義
03/14 20:40, 1F

03/14 20:41, , 2F
eg. sd = @(s,t) 2*s + sin(t)
03/14 20:41, 2F

03/14 20:50, , 3F
但是這樣有2個問題...
03/14 20:50, 3F

03/14 20:51, , 4F
1. 我的c( ) 、ci( ) 、sd( )是個有假設的函數
03/14 20:51, 4F

03/14 20:52, , 5F
也就是IF ??? > ???,值會是多少的那種,但是不想先代
03/14 20:52, 5F

03/14 20:52, , 6F
函數進去看,想先看代號的形式(c()、ci()、sd())來檢查
03/14 20:52, 6F

03/14 20:53, , 7F
算式有沒有正確。
03/14 20:53, 7F

03/14 20:54, , 8F
2. 用匿名函數的話,不就等於代進去了? 這樣沒達到我
03/14 20:54, 8F

03/14 20:54, , 9F
說要以代號來顯示達案這個目的阿@@
03/14 20:54, 9F

03/14 20:55, , 10F
回到第一個問題,用匿名函數的話,好像沒辦法用IF...?
03/14 20:55, 10F

03/14 21:00, , 11F
還是說...在matlab要用代號來推導理論是非常難的!?
03/14 21:00, 11F

03/15 13:01, , 12F
是可以辨到 help symfun 但符號計算還是交給 mathematica
03/15 13:01, 12F

03/15 14:33, , 13F
感謝! 這指令好像辦的到!
03/15 14:33, 13F
文章代碼(AID): #1HGO_JX7 (MATLAB)