Fortran Coder

查看: 7768|回复: 4
打印 上一主题 下一主题

[数学库] 关于imsl的DNEQNJ函数求非线性方程组

[复制链接]

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
跳转到指定楼层
楼主
发表于 2018-5-31 11:30:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在使用这个函数的时候,我的方程组的个数需要主程序决定,而且随着计算的循环,个数在不断的增大,这个时候就需要传递除了文档中的(x,f,n)之外的另外数组,这个时候该怎么去传递数组去调用DNEQNJ?谢谢。

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2018-5-31 12:50:48 | 只看该作者
module或common,我记得三四天以前群里就给过你答案。

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
板凳
 楼主| 发表于 2018-5-31 13:29:15 | 只看该作者
fcode 发表于 2018-5-31 12:50
module或common,我记得三四天以前群里就给过你答案。

谢谢回复,您确实在群里回答过这个问题。我写了module,疑惑的是,我的subroutine写成【subroutine fcn(imax,mmax,P1,P2,X,F,N)】,而文档中的是【subroutine fun(X,F,N)】,在调用imsl函数库 【call  DN2QNJ (FCN, LSJAC, ERRREL, N, ITMAX, XGUESS, X, FNORM, FVEC, FJAC, R, QTF, WK)】的时候,括号中数组个数不同,能不能成功调用?

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
地板
 楼主| 发表于 2018-5-31 16:03:50 | 只看该作者
fcode 发表于 2018-5-31 12:50
module或common,我记得三四天以前群里就给过你答案。


非常抱歉再次打扰您。我总是搞不清楚当把子程序当作参数传递时的用法。这是imsl文档中的内容,但是在例子主程序中并没有写【call fcn(x,f,n)】,【call lsjac(n,x,fjac)】,那么主程序中的【n】又是怎么传到子程序中的呢?如果我在主程序中写入【call fcn(imax,mmax,P1,P2,X,F,N)】,【call lsjac(imax,mmax,P1,P2,X,fjac,N)】,是不是就意味着可以将我想传入的【imax,mmax,P1,P2】传递到子程序中,并且在主程序中调用 【call  DN2QNJ (FCN, LSJAC, ERRREL, N, ITMAX, XGUESS, X, FNORM, FVEC, FJAC, R, QTF, WK)】,并对非线性方程组计算。
期待您的回复,谢谢。

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
5#
 楼主| 发表于 2018-5-31 20:41:28 | 只看该作者
fcode 发表于 2018-5-31 12:50
module或common,我记得三四天以前群里就给过你答案。

谢谢。是我module数组传递没学好,所以之前一直解决不了。现在弄好了。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 23:27

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表