调用IMSL后输出窗口什么都没,也没结果文件
program rbfInclude 'link_fnl_shared.h'
use numerical_libraries
!use imsl
implicit none
!***************************************参数说明
integer NumSam, NumVar !NumSam采样点个数,NumVar变量个数
parameter(NumSam = 30, NumVar = 3) !!!!!需要修改
real Bound(NumVar,2) !max和min 用于正规化
real ParaIn(NumSam,NumVar), ParaOut(NumSam) !采样数据(输入和输出)
real ParaIn2(NumSam,NumVar), r(NumSam,NumSam), h(NumSam,NumSam), w(NumSam), c, temp
real p(NumSam), ParaNew(NumVar), rNew(NumSam), hNew(NumSam), pNew, ap(NumSam),f(NumSam)
integer i, j, k
open (1, file = 'dem01.txt', status = 'old')!采样数据 !!!!!需要修改文件名
i = 0
do while(.not.eof(1))
i = i + 1
read(1,*) ParaIn(i,1), ParaIn(i,2),ParaIn(i,3),f(i),ap(i),ParaOut(i)!!!!!需要修改
enddo
close(1)
!*找max和min
do i = 1, NumVar
Bound(i,1) = ParaIn(1,i)
Bound(i,2) = ParaIn(1,i)
enddo
do i = 2, NumSam
do j = 1, NumVar
if (ParaIn(i,j) < Bound(j,1)) then
Bound(j,1) = ParaIn(i,j)
endif
if (ParaIn(i,j) > Bound(j,2)) then
Bound(j,2) = ParaIn(i,j)
endif
enddo
enddo
!**中心化数据到[-1,+1]
do i = 1, NumSam
do j = 1, NumVar
ParaIn2(i,j) = (2*ParaIn(i,j)-Bound(j,1)-Bound(j,2)) / (Bound(j,2)-Bound(j,1))
enddo
enddo
!***
c = 0 !高斯径向基的系数c=正规化距离的平均值
do i = 1, NumSam
do j = 1, NumSam
temp = 0
do k = 1, NumVar
temp = temp + (ParaIn2(i,k) - ParaIn2(j,k))**2
enddo
r(i,j) = sqrt(temp)
c = c + r(i,j)
enddo
enddo
c = c / NumSam**2
do i = 1, NumSam
do j = 1, NumSam
h(i,j) = exp(-r(i,j)**2 / c**2)
enddo
enddo
call LSARG(NumSam, h, NumSam, ParaOut, 1, w) !得到系数w
!****代入原样本检验
do i = 1, NumSam
p(i) = 0
do j = 1, NumSam
p(i) = p(i) + h(i,j) * w(j)
enddo
write(*,*) ParaOut(i), p(i)
enddo
open(2, file = 'outdem003.txt', status = 'unknown')
do i = 1, NumVar
write(2, "(2f15.5)") Bound(i,1), Bound(i,2)
enddo
write(2, "(f15.5)") c
do i = 1, NumSam
write(2, "(30f15.5)") (ParaIn2(i,j), j = 1, NumVar) !NumVar<30
enddo
do i = 1, NumSam
write(2, "(f15.5)") w(i)
enddo
end program
然后就是结果黑色窗口一闪而过,结果输出也不显示成功或者错误。 和运行方式有关系吧
试试下面方法之一
1.运行不调试
2.在程序尾加一句read(*,*) Jackdaw 发表于 2018-4-20 10:43
和运行方式有关系吧
试试下面方法之一
您好 十分感谢您的回答但是两个方法都试过了结果还是一样。没有输出文件且输出窗口不显示成功或者错误! 我没有修改任何代码,在我这里的屏幕输出为
119.8400 119.8400
112.8700 112.8700
108.2400 108.2400
128.7700 128.7698
113.7600 113.7600
139.7800 139.7800
127.9800 127.9800
138.4000 138.3999
141.1700 141.1698
154.3800 154.3800
132.2100 132.2099
155.3500 155.3499
129.2500 129.2501
142.9800 142.9801
113.3500 113.3502
129.4200 129.4199
119.0800 119.0800
147.8700 147.8700
151.9900 151.9899
120.5400 120.5401
118.0200 118.0203
113.2700 113.2700
136.8900 136.8901
124.6800 124.6799
117.1600 117.1600
123.6300 123.6300
135.6200 135.6202
115.5100 115.5102
147.2300 147.2300
120.0700 120.0700
OutDem003.txt 文件输出结果为:
20.03000 29.81000
1.02000 2.99000
30.11000 39.75000
1.35034
-1.00000 0.89848 0.66805
0.22086 0.82741 -0.16805
0.87117 0.69543 -0.85270
0.60123 -0.54315 -0.51867
-0.69734 0.18782 -0.78216
-0.24131 -1.00000 -0.46888
0.06339 -0.08629 -0.07054
0.91820 -0.42132 0.14523
-0.76483 -0.65482 0.00622
0.83231 -0.57360 0.90871
0.55010 -0.16751 0.05602
-0.16973 -0.79695 0.95228
-0.62986 0.21827 0.26556
0.00614 -0.02538 1.00000
0.12883 0.49239 -0.65145
-0.84254 0.57360 0.51452
0.41309 0.34010 -0.39627
-0.57873 -0.93909 0.36307
-0.06748 -0.83756 0.62448
0.22699 -0.38071 -0.89419
-0.47853 0.02538 -0.58714
-0.37628 0.43147 -0.68257
0.48057 -0.26904 0.32365
-0.41309 0.78680 0.80705
0.76074 0.65482 -0.32158
1.00000 1.00000 0.74274
0.65235 0.06599 0.47095
-0.29448 -0.31980 -1.00000
0.32720 -0.71574 0.17012
-0.91411 0.28934 -0.22822
58.86483
35.64080
168.60979
-213.02975
482.84708
1.14506
832.45135
250.25693
206.93732
201.54350
183.15138
437.63736
-214.97588
62.41412
-98.66692
110.69569
-75.31155
-23.54513
-549.66577
93.36781
-1022.24377
154.78653
-1478.49731
-31.09103
-131.95718
69.51846
351.78543
120.82651
572.92511
75.13556
fcode 发表于 2018-4-21 08:16
我没有修改任何代码,在我这里的屏幕输出为
119.8400 119.8400
112.8700 112.8700
您好,目前我在这个网盘链接下重装了软件IMSL也重装了现在还是黑色窗口一闪而过不出结果!! 单步调试一下,看运行到哪一步了。 本帖最后由 wy123 于 2018-4-25 10:33 编辑
fcode 发表于 2018-4-24 10:58
单步调试一下,看运行到哪一步了。
单步调试 总是出现这个图片D:\Documents\调试 然后就是结果那个样子 D:\Documents\结果 请使用 debug 方式编译并调试 额,换成Debug,结果如下所示。
页:
[1]
2