| 查看: 698 | 回复: 4 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
astringent铜虫 (著名写手)
|
[交流]
【求助】为什么两种写法得到的值不一样? 已有3人参与
|
||
|
有两个点A(x1,y1,z1),B(x2,y2,z2),现在以由点A和B确定的直线为基准轴,我想求的是当以物体由点C(x3,y3,z3)运动到点 D(x4,y4,z4)时,沿AB基准轴方向的位移以及沿垂直于AB基准轴方向的位移。我用两种方法写了程序,一种是用数组,另一种是直接写,可是在试算的时候,两种方法得到的结果有很大差别,请问问什么会有差别呢?哪一种是正确的? program test implicit none real :: x1=1.0,y1=1.0,z1=2.0 real :: x2=1.0,y2=1.0,z2=3.0 real :: x3=1.0,y3=2.0,z3=3.0 real :: x4=2.0,y4=1.0,z4=5.0 real dx1,dx2,dy1,dy2,dz1,dz2 real :: px1,px2,py1,py2,pz1,pz2 real r1,r2,r3,r real theta,pp dx1=x2-x1 dy1=y2-y1 dz1=z2-z1 dx2=x4-x3 dy2=y4-y3 dz2=z4-z3 r1=dx1**2+dy1**2+dz1**2 r2=dx2**2+dy2**2+dz2**2 r3=dx1*dx2+dy1*dy2+dz1*dz2 r=r3/(sqrt(r1)*sqrt(r2)) theta=acos(r) px1=dx2*cos(theta) py1=dy2*cos(theta) pz1=dz2*cos(theta) px2=dx2*sin(theta) py2=dy2*sin(theta) pz2=dz2*sin(theta) write (*,"(f7.5)" dx1write(*,*) 'dy1',dy1 write(*,*) 'dz1',dz1 write (*,*) 'dx2',dx2 write(*,*) 'dy2',dy2 write(*,*) 'dz2',dz2 write (*,"(f7.5)" px1write(*,"(f7.5)" py1write(*,"(f7.5)" pz1write (*,*) 'px2',px2 write(*,*) 'py2',py2 write(*,*) 'pz2',pz2 end !采用数组 program test implicit none real :: a(3)=(/1.0,1.0,2.0/) !A点坐标 real :: b(3)=(/1.0,1.0,3.0/) !B点坐标 real :: c(3)=(/1.0,2.0,3.0/) !C点坐标 real :: d(3)=(/2.0,1.0,5.0/) !D点坐标 real :: ab(3) !矢量AB real :: cd(3) 矢量CD real :: p1(3),p2(3) !投影 ab=b-a cd=d-c p1=dot_product(ab,cd)/sqrt(dot_product(ab,ab)) p2=cd-p1 write (*,*) 'ab',ab write (*,*) 'cd',cd write(*,*) 'p1',p1 write (*,*) 'p2',p2 end |
» 猜你喜欢
自荐读博
已经有5人回复
求个博导看看
已经有16人回复
上海工程技术大学张培磊教授团队招收博士生
已经有4人回复
上海工程技术大学【激光智能制造】课题组招收硕士
已经有5人回复
求助院士们,这个如何合成呀
已经有4人回复
临港实验室与上科大联培博士招生1名
已经有9人回复
需要合成515-64-0,50g,能接单的留言
已经有4人回复
写了一篇“相变储能技术在冷库中应用”的论文,论文内容以实验为主,投什么期刊合适?
已经有6人回复
带资进组求博导收留
已经有10人回复
最近几年招的学生写论文不引自己组发的文章
已经有11人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】为什么两种写法得到的值不一样?
已经有2人回复
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
4楼2011-01-24 11:44:36
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
2楼2011-01-23 22:14:25
astringent
铜虫 (著名写手)
- 应助: 16 (小学生)
- 金币: 2210.7
- 散金: 1233
- 红花: 4
- 帖子: 1180
- 在线: 354.8小时
- 虫号: 900839
- 注册: 2009-11-12
- 专业: 理论和计算化学
|
我的两个程序都错了,我改了一下用数组的写法,这个程序应该是正确的吧?? program test implicit none real :: a(3)=(/1.0,1.0,2.0/) !A点坐标 real :: b(3)=(/1.0,1.0,3.0/) !B点坐标 real :: c(3)=(/1.0,2.0,3.0/) !C点坐标 real :: d(3)=(/2.0,1.0,5.0/) !D点坐标 real :: ab(3) !矢量AB real :: cd(3) 矢量CD real :: p1(3),p2(3) !投影 ab=b-a cd=d-c p1=dot_product(ab,cd)*ab/dot_product(ab,ab) p2=cd-p1 write (*,*) 'ab',ab write (*,*) 'cd',cd write(*,*) 'p1',p1 write (*,*) 'p2',p2 end |
3楼2011-01-23 22:33:57
wangbiniocas
金虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1159.9
- 红花: 1
- 帖子: 66
- 在线: 8.8小时
- 虫号: 871851
- 注册: 2009-10-14
- 性别: MM
- 专业: 物理海洋学

5楼2011-02-01 08:53:39







dx1
回复此楼