→ Cypresslin:call inver那有問題,請看看副程式,看看要傳入副程式 05/20 22:15
→ Cypresslin:的是什麼,然後副程式又會傳什麼回來 05/20 22:15
→ joelife:副程式 SS是矩陣 所以主程式用KK矩陣過去應該沒問題阿.. 05/20 22:22
→ joelife:但是N的部分應該是指N*N個矩陣 我把主程式的a改成2也是錯 05/20 22:23
→ joelife:傳回來的應該是SS(i,i) <-反矩陣 (抱歉 還是不太懂ˊ ˋ" 05/20 22:24
推 terryys:錯誤是說你呼叫副程式的時候用了錯誤的資料形態 05/20 22:49
→ terryys:所以你就要看看哪一個參數的資料形態錯了 05/20 22:50
→ terryys:那個錯誤連它需要的和你嘗試傳入的資料形態都寫出來了 05/20 22:51
→ terryys:應該很容易發現錯在哪裡 05/20 22:51
→ Cypresslin:你已經很接近讓他可以正常執行的這一步囉~你想想看要 05/20 22:56
→ Cypresslin:讓副程式算的值要怎麼送進去 05/20 22:57
→ joelife:2傳到副程式 變成2*2矩陣應該沒錯 KK的部分我實在想不透 05/20 23:02
→ joelife:要用哪種型態傳到副程式.. 05/20 23:02
推 terryys:你有傳2到副程式嗎? 05/20 23:07
把呼叫副程式改成 call inver(2,kk)
應該就會把2傳到 subroutine inver(n,ss) 的n吧..
→ Cypresslin:那換個說法,你說副程式會丟回inv完的陣列ss,那他在運 05/20 23:09
→ Cypresslin:算時是用什麼值來算呢?又,這些用於運算的值要怎麼來? 05/20 23:09
我把主程式改成
implicit none
real kk(2,2)
data kk/1,3,2,4/
call inver(2,kk)
write(*,*)kk
pause
end
宣告丟過去的kk是矩陣 資料是 1 3 2 4
還是錯在主程式的第四排 call過去的資料..
※ 編輯: joelife 來自: 111.252.47.251 (05/20 23:20)
推 terryys:你有重新編譯嗎?我抄你的程式做你說的修改結果可以運行 05/20 23:43
→ terryys:但是輸出數值不對 05/20 23:44
有.. 我是ftn95
但是執行之後依然跳出錯誤 http://ppt.cc/ahtR <- 執行畫面..
※ 編輯: joelife 來自: 111.252.47.251 (05/20 23:50)
→ gilocustom:錯誤訊息說很清楚是精度不符。 05/21 01:19
→ gilocustom:還有例圖麻煩大點,這樣看起來有些吃力= = 05/21 01:20
推 terryys:問題已經解決,謝謝大家幫忙(咦怎麼怪怪的XD) 05/21 10:33
真的已經解決了 感謝大家的幫忙Q_Q
晚點挑戰20*20矩陣 還要CALL TIME ˋ(′_‵||)ˊ
※ 編輯: joelife 來自: 111.252.43.122 (05/21 11:38)
推 zx212012:如何用imsl直接求反矩陣?? 05/25 15:00
→ charlesdc:樓上是認真回文嘛!? 05/25 18:48
→ joelife:就use IMSL 直接.ix.吧 05/26 20:35