24小时热门版块排行榜    

查看: 2681  |  回复: 17

宇天旅梦

铜虫 (小有名气)

引用回帖:
9楼: Originally posted by 宇天旅梦 at 2013-08-25 17:02:44
这个循环现在差不多了。
还有几个小问题:
1、还是不明白为什么要输入4个数呢?
2、real*8 x1,x2,y1,y2
        complex*16 z,x(n),y(n),i,f 中,这里的8和16是什么意思?规定这样吗?
3、open语句中为何要有 ...

我改写了一下,把x,y的虚数形式改没了。

运行没检查出错,可是运行结果什么都没有,不知道怎么回事,
代码是这样的:
      program xcx
        real*8 x(5),y(5),n
        integer k
        complex*16 i,f
        open(10,file='xcx.dat',status='unknown')
        i=(0,1)
      do 1 k=1,5
         x(1)=0
           y(1)=0
           do 3 n=0.1,0.5
              x(n+1)=x(n)+0.1
            y(n+1)=y(n)+0.1
3           continue
           read*,x,y
1     continue
      do 2 k=1,5
        z=(3*y(k)-1)*(x(k)+2)
      f=((5*x(k)+6*z)*zexp(2*i))/(2*x(k)-z)
        write(*,*)x(k),y(k),f
        write(*,*)x(k),y(k),f
2     continue
      stop
        end
11楼2013-08-25 19:12:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

宇天旅梦

铜虫 (小有名气)

引用回帖:
10楼: Originally posted by phy_yo at 2013-08-25 19:05:52
虚数可以看成两个实数组成 实部一个 虚部一个
real*8 x1,x2,y1,y2 就是定义四个精度为8位的实数 这样就可以组成两个虚数
complex*16 z,x(n),y(n),i,f   就好理解了 就是定义精度为8位的虚数(实质是两个精度为8的 ...

我把x,y的虚数形式换了,改了点东西,运行时没显示错误,可是运行结果没有,弹出来的就只有黑框,不知道怎么回事,代码如下:
      program xcx
        real*8 x(5),y(5),n
        integer k
        complex*16 i,f
        open(10,file='xcx.dat',status='unknown')
        i=(0,1)
      do 1 k=1,5
         do 3 n=0.1,0.5
              x(k+1)=x(k)+0.1
            y(k+1)=y(k)+0.1
3           continue
           read*,x,y
1     continue
      do 2 k=1,5
        z=(3*y(k)-1)*(x(k)+2)
      f=((5*x(k)+6*z)*zexp(2*i))/(2*x(k)-z)
        write(*,*)x(k),y(k),f
        write(*,*)x(k),y(k),f
2     continue
      stop
        end
12楼2013-08-25 19:16:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phy_yo

铁虫 (小有名气)

引用回帖:
12楼: Originally posted by 宇天旅梦 at 2013-08-25 19:16:10
我把x,y的虚数形式换了,改了点东西,运行时没显示错误,可是运行结果没有,弹出来的就只有黑框,不知道怎么回事,代码如下:
      program xcx
        real*8 x(5),y(5),n
        integer k
        complex*16 i,f
        open(10,f ...

我把x,y的虚数形式换了,改了点东西,运行时没显示错误,可是运行结果没有,弹出来的就只有黑框,不知道怎么回事,代码如下:
      program xcx
        real*8 x(5),y(5)
        integer k,n
        complex*16 i,f
        open(10,file='xcx.dat',status='unknown')
        i=(0,1)
        x(1)=0
        y(2)=0
         do 3 n=1,4               !/数组变量必须是整数才行 你可以想一下为什么这里是4/
            x(n+1)=x(n)+0.1
            y(n+1)=y(n)+0.1
3        continue

      do 2 k=1,5
        z=(3*y(k)-1)*(x(k)+2)
      f=((5*x(k)+6*z)*zexp(2*i))/(2*x(k)-z)
        write(*,*)x(k),y(k),f
        write(10,*)x(k),y(k),f     !/这样数据才会写入xcx.dat/
2     continue
       pause
        end
网络错误 无法获取数据
13楼2013-08-25 19:46:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

宇天旅梦

铜虫 (小有名气)

引用回帖:
13楼: Originally posted by phy_yo at 2013-08-25 19:46:30
我把x,y的虚数形式换了,改了点东西,运行时没显示错误,可是运行结果没有,弹出来的就只有黑框,不知道怎么回事,代码如下:
      program xcx
        real*8 x(5),y(5)
        integer k,n
        comp ...

显示啦
n=1,4是因为前面已经给出了x(1)=0, y(2)=0,而每个只容纳5个数。
这里改成了y(2)=0?  原来的y(1)=0不对吗?这是任意的吗?

write(10,*)x(k),y(k),f  这里的10 是什么含义?我见过    write(*,10)x,y,f
                                                                       10  format(......)

现在的输出结果怎么才可以弄成x一列,y一列,f一列呢?

DAT文件的打开方式设置为“origin",却没有一点反应,这又怎么导入?
14楼2013-08-25 20:12:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phy_yo

铁虫 (小有名气)

引用回帖:
14楼: Originally posted by 宇天旅梦 at 2013-08-25 20:12:50
显示啦
n=1,4是因为前面已经给出了x(1)=0, y(2)=0,而每个只容纳5个数。
这里改成了y(2)=0?  原来的y(1)=0不对吗?这是任意的吗?

write(10,*)x(k),y(k),f  这里的10 是什么含义?我见过    write ...

y(2)=0 是我打错了 应该是y(1)=0 不过在这里不影响  这里你即便不写 默认的x(1),y(1)都是0  改用其他数据的的话 要记得定义数组的首项
format的用法我就不细说了 这里用不到  你回头自己看书吧
dat文件可以用记事本打开 就像txt一样 复制 然后粘贴到oringin就行了
网络错误 无法获取数据
15楼2013-08-25 20:24:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

宇天旅梦

铜虫 (小有名气)

引用回帖:
15楼: Originally posted by phy_yo at 2013-08-25 20:24:55
y(2)=0 是我打错了 应该是y(1)=0 不过在这里不影响  这里你即便不写 默认的x(1),y(1)都是0  改用其他数据的的话 要记得定义数组的首项
format的用法我就不细说了 这里用不到  你回头自己看书吧
dat文件可以用记事 ...

这一部分明白了,可是自己写了一个和这大同小异的程序,出错了。

部分程序如下:
do 2 k=1,100
        m=(KY*50+i*SQRT(KX*KX+KY*KY))
     $/(SQRT(KX*KX+KY*KY+KY*KY*50*50)-50*50/(6.582122*10**28))
      
        n=(KY*50-i*SQRT(KX*KX+KY*KY))/
     $(SQRT(KX*KX+KY*KY+KY*KY*50*50)-50*50/(6.582122*10**28))
     
      w=(KY*50+i*SQRT(1+KY*KY))/
     $(SQRT(KX*KX+KY*KY+KY*KY*50*50))

      z=(KY*50-i*SQRT(1+KY*KY))/
     $(SQRT(KX*KX+KY*KY+KY*KY*50*50))
        f=((m-n)*(w-z)*EXP(-i*SQRT(1+KY*KY))/
     $((m-w)*(n-z)*e**(2*i*SQRT(KX*KX+KY*KY)-(m-z)(n-z))
其中关系是 m(KX,KY)    n(KX,KY)     w(KX,KY)  ,  z(KX,KY)

f(m(KX,KY), n(KX,KY), w(KX,KY), z(KX,KY))

给出的错误是:
--------------------Configuration: Text1 - Win32 Debug--------------------
Compiling Fortran...
C:\Program Files\DevStudio\MyProjects\Text1.for
C:\Program Files\DevStudio\MyProjects\Text1.for(28) : Error: Syntax error, found '(' when expecting one of: * :: , <END-OF-STATEMENT> ; : ) (/ [ + - . ] /) ** / > // .LT. < ...
     $(((m-w)*(n-z)*exp(2*i*SQRT(KX*KX+KY*KY))-(m-z)(n-z))
----------------------------------------------------^
C:\Program Files\DevStudio\MyProjects\Text1.for(28) : Error: Syntax error, found END-OF-STATEMENT when expecting one of: , )
     $(((m-w)*(n-z)*exp(2*i*SQRT(KX*KX+KY*KY))-(m-z)(n-z))
----------------------------------------------------------^
C:\Program Files\DevStudio\MyProjects\Text1.for(15) : Error: The shapes of the array expressions do not conform.   [M]
m=(KY*50+i*SQRT(KX*KX+KY*KY))/
--------^
C:\Program Files\DevStudio\MyProjects\Text1.for(18) : Error: The shapes of the array expressions do not conform.   [N]
n=(KY*50-i*SQRT(KX*KX+KY*KY))/
--------^
C:\Program Files\DevStudio\MyProjects\Text1.for(21) : Error: The shapes of the array expressions do not conform.   [W]
      w=(KY*50+i*SQRT(1+KY*KY))/
------^
C:\Program Files\DevStudio\MyProjects\Text1.for(24) : Error: The shapes of the array expressions do not conform.   [Z]
      z=(KY*50-i*SQRT(1+KY*KY))/
------^
Error executing df.exe.

Text1.exe - 6 error(s), 0 warning(s)
16楼2013-08-25 21:45:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phy_yo

铁虫 (小有名气)

引用回帖:
16楼: Originally posted by 宇天旅梦 at 2013-08-25 21:45:24
这一部分明白了,可是自己写了一个和这大同小异的程序,出错了。

部分程序如下:
do 2 k=1,100
        m=(KY*50+i*SQRT(KX*KX+KY*KY))
     $/(SQRT(KX*KX+KY*KY+KY*KY*50*50)-50*50/(6.582122*10**28))
      
...

你这部分有点部分过头了吧  循环变量k在循环体内根本没看到  你应该不是故意删的……所以你的这些表达式不会是直接复制粘贴的吧……还全是大写
KX,KY是是自变量 要做成数组形式 如KX(20),KY(20)之类的  再套入循环变量就行了  你自己慢慢琢磨吧  我感觉我前面写的那些代码够你做参考了~或者你可以考虑用matlab   作这种计算他比fortran方便

» 本帖已获得的红花(最新10朵)

网络错误 无法获取数据
17楼2013-08-25 22:20:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

宇天旅梦

铜虫 (小有名气)

送红花一朵
引用回帖:
17楼: Originally posted by phy_yo at 2013-08-25 22:20:40
你这部分有点部分过头了吧  循环变量k在循环体内根本没看到  你应该不是故意删的……所以你的这些表达式不会是直接复制粘贴的吧……还全是大写
KX,KY是是自变量 要做成数组形式 如KX(20),KY(20)之类的 ...

不是粘的啊,我一个一个敲进去的。。。。。敲了几次,大小写混了。。。

我琢磨琢磨吧。

非常非常感谢你的帮助啦,送一朵红花!
18楼2013-08-25 22:26:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 宇天旅梦 的主题更新
信息提示
请填处理意见