Re: [問題] 關於微分的寫法

看板Fortran作者 (kicala)時間15年前 (2009/06/03 21:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
※ 引述《agody (講不聽)》之銘言: : ※ 引述《latinboy (暱稱)》之銘言: : : 你這樣寫當然不行...... : : 有些語言能夠直接作微分 可惜 fortran沒有.... : : 自己寫也很簡單 就是自己微阿 : : 隨便舉個例子 假設 y = x^3 + x^2 - x + 3 : : fortran寫法 y = x**3 + x**2 - x + 3 : : dy = 3*(x**2) + 2*x - 1 : : d2y = 6*x + 2 : 隨手寫的,不知道有沒有錯 : program main : external y : call diff_1st(y,1,f)<---後面(y,l,f) 為什麼和下面附程式名子的不一樣? 是有其他的意釋嗎? : print *,f : end : subroutine diff_1st(fun,x,f) : external fun : dx = 1 : k=1 : f_old = (fun(x+dx)-fun(x-dx))/(2*dx) : dx = dx/2 : do while(k) <--K是? 是 do while( K>0 )作回圈的意釋嗎? : f_new = (fun(x+dx)-fun(x-dx))/(2*dx) : dx = dx/2 : if(f_new.eq.f_old) k = 0 : f_old = f_new : end do : f = f_new : return : end : function y(x) <---哪一個步驟是將值帶入? : y = x**3 + x**2 - x + 3 : return : end 因為我不太懂陣列的運用 ,所以有很多問題..請各位板大指點!! orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.142.243
文章代碼(AID): #1A9dZndK (Fortran)
文章代碼(AID): #1A9dZndK (Fortran)