作者notebook5566 (笔记本之五六不能亡)
看板Fortran
标题[问题] 关於对变数微分的写法
时间Mon Apr 13 21:05:23 2015
大家好 打给贺!
我想写一条通式,让fortran可以自动对变数微分
变数[x]=x1,x2,...,xn [y]=y1,y2,...,yn
我大概的想法是这样:
__
do i=1,n
do j=1,n
do k=1,n
if (i/=j .and. i/=k .and. j<k) then
[x(j)-x(i)][x(j)-x(k)]+[y(j)-y(i)][y(j)-y(k)]
ceta(i,j,k)=acos(----------------------------------------------)
sqrt{[x(j)-x(i)]^2+[y(j)-y(i)]^2}*...
sqrt{[x(j)-x(k)]^2+[y(j)-y(k)]^2}
else
ceta(i,j,k)=(0)
end if
end do
end do
end do
dcetax=diff(ceta,x(i)) !将ceta对x(i)微分
dcetay=diff(ceta,y(i)) !将ceta对y(i)微分
__
注1:ceta(i,j,k)我用分数表示,希望能好看懂
注2:x(i) y(i)的数值我都有,希望可以直接得出数字
但是不知道如何正确的写成程式
还请各位前辈指教
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.155.140
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Fortran/M.1428930326.A.386.html
1F:→ notebook5566: 我有想过 DERIV(F,KORDER,X,BGSTEP,TOL) 这语法, 04/13 21:09
2F:→ notebook5566: 但我的电脑资料库好像没有这个函式@@ 04/13 21:10
3F:→ Cypresslin: 关於DERIV请搜寻IMSL library 04/19 15:23