hcj 发表于 2018-11-15 10:51:56

积分方法中传递变量的问题

在调用积分方法子程序时(例如,拉盖尔高斯积分方法),如果积分里有另一个无关的变量,并且需要传递到之后的计算中,那么这个变量在子程序中该如何处理

li913 发表于 2018-11-15 13:48:27

fortran 不能做 带参数的积分,只能是数值积分。也就是积分结果是一个数,而不是一个含有变量的函数。

hcj 发表于 2018-11-19 14:42:41

li913 发表于 2018-11-15 13:48
fortran 不能做 带参数的积分,只能是数值积分。也就是积分结果是一个数,而不是一个含有变量的函数。 ...

子函数里有一个无关变量一个自变量,是要将那个无关变量传递到下一个子函数把它积掉

li913 发表于 2018-11-22 10:05:46

你直接给出积分公式吧。写清楚要求。

hcj 发表于 2018-11-24 10:19:21

li913 发表于 2018-11-22 10:05
你直接给出积分公式吧。写清楚要求。

多个积分变量之间传递,如图所示该用什么方法?
http://bbs.fcode.cn/forum.php?mod=viewthread&tid=1781&fromuid=3598
(出处: Fortran Coder)
就是这个

liudy02 发表于 2018-11-25 11:08:36

li913 发表于 2018-11-15 13:48
fortran 不能做 带参数的积分,只能是数值积分。也就是积分结果是一个数,而不是一个含有变量的函数。 ...

Fortran确实不可能做参数运算,但是积分结果是一个函数确是没有问题的
无非是对于结果函数来说,每次求值时都要算一次积分而已
楼主那个问题不好搞的问题不在此,而在于积分区间无限,
这个是Fortran无法直接处理的,需要找其他办法

hcj 发表于 2018-11-25 16:55:27

liudy02 发表于 2018-11-25 11:08
Fortran确实不可能做参数运算,但是积分结果是一个函数确是没有问题的
无非是对于结果函数来说,每次求值 ...

好的,谢谢

hcj 发表于 2018-12-5 09:07:11

liudy02 发表于 2018-11-25 11:08
Fortran确实不可能做参数运算,但是积分结果是一个函数确是没有问题的
无非是对于结果函数来说,每次求值 ...

如果积分上下限改为有限值,这个嵌套的积分该用什么积分方法呢?

liudy02 发表于 2018-12-7 09:38:13

hcj 发表于 2018-12-5 09:07
如果积分上下限改为有限值,这个嵌套的积分该用什么积分方法呢?

这有何难呢,比如本来你对某一个函数写个积分的子程序是integrf(ans,a,b)表示f在a,b上的积分
现在你的f不止有积分变量x了,还有参数c1,c2,c3……cn
那改写这个积分子程序,写成integrf_paras(ans,a,b,c1,c2,c3……cn)也不会有任何难处
这样的话积分结果参量ans就和输入参数c1,c2,c3……cn都有关系了,相当于一个关于这些参数的函数
只是你每次要求这个函数值都需要调用一次这个积分子程序
那么你再想继续把某个参量作为积分变量,只需要再继续下一层的积分子程序就行了
在下一层的积分子程序里,当想要求函数值的时候,就调用integrf_paras子程序进行计算呗
当然我这里只是写的最简单的形式,实际上完全可以把被积函数作为参量
不过也无所谓,反正对于特定的某个积分来说,能用也差不多,除非想做通用积分程序才需要那样
页: [1]
查看完整版本: 积分方法中传递变量的问题