关于imsl的DNEQNJ函数求非线性方程组-编程工具交流-专业Fortran论坛 -

Fortran Coder

查看: 140|回复: 4

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

[复制链接]

21

帖子

4

主题

0

精华

入门

F 币
87 元
贡献
50 点
发表于 2018-5-31 11:30:34 | 显示全部楼层 |阅读模式

我的

我的

文档中的

文档中的
在使用这个函数的时候,我的方程组的个数需要主程序决定,而且随着计算的循环,个数在不断的增大,这个时候就需要传递除了文档中的(x,f,n)之外的另外数组,这个时候该怎么去传递数组去调用DNEQNJ?谢谢。

回复

使用道具 举报

1258

帖子

12

主题

5

精华

论坛跑堂

Fcode跑堂伙计

F 币
274 元
贡献
56 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 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,我记得三四天以前群里就给过你答案。

屏幕快照 2018-05-31 16.55.35.png 屏幕快照 2018-05-31 16.54.46.png
非常抱歉再次打扰您。我总是搞不清楚当把子程序当作参数传递时的用法。这是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 点
 楼主| 发表于 2018-5-31 20:41:28 | 显示全部楼层
fcode 发表于 2018-5-31 12:50
module或common,我记得三四天以前群里就给过你答案。

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

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2018-8-17 17:52

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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