作者candy88257 (阿泰斯)
看板MATLAB
標題[討論] 求神人幫忙把這串mathematica的程式改寫!
時間Thu Mar 14 16:52:33 2013
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
1F:→ math99:c(), ci(), sd() 你可以用匿名函數定義 03/14 20:40
2F:→ math99:eg. sd = @(s,t) 2*s + sin(t) 03/14 20:41
3F:→ candy88257:但是這樣有2個問題... 03/14 20:50
4F:→ candy88257:1. 我的c( ) 、ci( ) 、sd( )是個有假設的函數 03/14 20:51
5F:→ candy88257:也就是IF ??? > ???,值會是多少的那種,但是不想先代 03/14 20:52
6F:→ candy88257:函數進去看,想先看代號的形式(c()、ci()、sd())來檢查 03/14 20:52
7F:→ candy88257:算式有沒有正確。 03/14 20:53
8F:→ candy88257:2. 用匿名函數的話,不就等於代進去了? 這樣沒達到我 03/14 20:54
9F:→ candy88257:說要以代號來顯示達案這個目的阿@@ 03/14 20:54
10F:→ candy88257:回到第一個問題,用匿名函數的話,好像沒辦法用IF...? 03/14 20:55
11F:→ candy88257:還是說...在matlab要用代號來推導理論是非常難的!? 03/14 21:00
12F:→ math99:是可以辨到 help symfun 但符號計算還是交給 mathematica 03/15 13:01
13F:→ candy88257:感謝! 這指令好像辦的到! 03/15 14:33