当前位置: 首页 > 专利查询>清华大学专利>正文

耦合计算方法和耦合计算系统技术方案

技术编号:12068018 阅读:118 留言:0更新日期:2015-09-18 02:02
本发明专利技术涉及一种耦合计算方法和系统,该方法包括:耦合计算服务模块随机生成多个第一自变量,将每个第一自变量分别传输至对应的独立计算模块;独立计算模块计算对应的残差,根据自动微分方法计算待求解方程在第一自变量处的导数;耦合计算服务模块计算得到多个第二自变量;独立计算模块判断第二自变量是否为对应的待求解方程的解,若不是,则循环计算,直至计算得到自变量为对应的待求解方程的解,若是,则输出该解。其中每个待求解方程在第一自变量处的导数,由每个独立计算模块根据自动微分方法分别计算,可以得到精度很高的计算结果,在很大程度上减少耦合计算服务模块的后续迭代次数,使得耦合计算服务模块的计算稳定性得到极大提高。

【技术实现步骤摘要】

本专利技术涉及耦合计算
,具体而言,涉及一种耦合计算方法和一种耦合计 算系统。
技术介绍
多个计算软件的耦合求解,是指两个或多个独立的计算软件,在迭代求解的过程 中,需要彼此提供部分信息才能实现求解。例如A计算软件的待求解方程f (X) = 0, B计算 软件的待求解方程g(y) =0。这两个计算软件都不能独立完成求解,因为A计算软件需要 B计算软件提供关X的信息,而B计算软件需要A计算软件提供关于y的信息,因此需要在 迭代求解的过程中交换数据,如图1所示,需要交换第η次迭代的数据。 实现多个数值计算软件之间的耦合求解,可以采用牛顿迭代法。下面简单介绍牛 顿迭代法: 牛顿迭代法(Newton's method)又称为牛顿-拉弗森方法(Newton-Raphson method),它是牛顿提出的一种在实数域和复数域上近似求解方程的方法。牛顿迭代法 及其延伸算法,例如非精确牛顿迭代法(Inexact Newton' method),或拟牛顿迭代法 (Quasi-Newton' s method),都属于牛顿迭代法的范畴。 例如采用牛顿迭代法求解方程f(x) = 0,如图2所示,其中曲线为f(x),曲线与X 轴的交点即为待求解的X值。 首先,选择一个接近f (X)零点的Xci,计算相应的f (Xci)和切线斜率(或者f (X)在 X。的导数)f'(Χ〇),然后计算穿过点(x〇,f(x〇))并且斜率为f'(?)的直线和X轴的交点坐 标,也就是求如下方程的解: f (X0) = (X0-X) · f'(X0) (1) 将新求得的点的X坐标命名为X1,通常X1比X C1更接近方程f (X) = 0的解,从而可 以利用^开始下一轮迭代。迭代公式可化简为如下所示:( 2 ) 而在牛顿迭代法的中,f'(Xn)可以由方程f (X) = 0的残差来近似,如下所示:(3) 其中Δχ表示计算机精度允许的小量,关于Λ X的选取方法,是已知且公开的。所 谓方程f (X) = 0的残差,就是指把X的具体数值,例如Xn,代入f (X)计算得到的数值f (Xn)。 如果是多个方程组的牛顿迭代求解,那么f'(Xn)将是一个矩阵,称作雅克比矩阵J。 采用现有技术实现多个数值计算软件的耦合求解,需要有一个基于牛顿迭代法的 软件,一般称作"耦合计算服务软件",该软件与待耦合求解的多个计算软件相配合才能实 现耦合求解,而"耦合计算服务软件"不需要知道待耦合求解的方程的具体形式,所以其中 并不存储有待耦合求解的方程。 如图3所示,在"耦合计算服务软件"的配合下,A计算软件和B计算软件才能实现 耦合求解。其中迭代过程主要包括三个步骤: 第一步,"親合计算服务软件"随机生成初值Xp Xci+ Δ X、yp Ytl+ Δ y,并将Xp Xci+ Δ X 传输至A计算软件,将yp yf Δ y传输至B计算软件。 第二步,A计算软件将Xd、Xtl+ Δ X代入f (X),计算得到残差f (Xtl)和f (Xtl+ Δ X) ;B 计算软件将yci、yci+ Δ y代入g (X),计算得到残差g (yj和g (y# Δ y)。A和B计算软件分别 将计算得到的残差传给"耦合计算服务软件"。 第三步,"耦合计算服务软件"根据公式(3),由f(X(l)和f(X(l+Ax)计算得到导数 f'(X。),并由g(yQ)和g(yQ+Ay)计算得到导数g'(yQ),并由f'(X。)和g'(y Q)构造雅克比 矩阵J,再根据公式(2)计算得到Xp X1+AxAy^y1+Ay,并进入下一次迭代。 在现有技术中,"耦合计算服务软件"实现牛顿迭代法的所有步骤包括:根据公式 (3)计算导数f'(Xn)和g'(yn),以及根据公式⑵计算下一次迭代所需的χη、χ η+Δχ、yjPl yn+Ay〇 由于根据公式(3)计算得到的导数f' OO的精度非常低,因此"耦合计算服务软 件"需要经过很多次牛顿迭代才能实现耦合求解,甚至经常出现无法完成求解的情况。
技术实现思路
本专利技术所要解决的技术问题是,如何提高对多个数值进行耦合求解的效率和精确 度以及稳定性。 为此目的,本专利技术提出了一种耦合计算方法,包括: Sl,耦合计算服务模块随机生成多个独立计算模块中每个独立计算模块分别对应 的第一自变量,将每个第一自变量分别传输至对应的独立计算模块; S2,每个所述独立计算模块将所述第一自变量代入对应的待求解方程计算对应的 残差,将所述第一自变量代入自动微分方法计算所述待求解方程在所述第一自变量处的导 数,将所述残差和所述导数传输至所述耦合计算服务模块; S3,所述耦合计算服务模块根据接收到的多个导数生成雅克比矩阵,根据所述雅 克比矩阵和接收到的多个残差计算得到多个第二自变量,将每个第二自变量传输至对应的 独立计算模块; S4,所述独立计算模块判断所述第二自变量是否为对应的待求解方程的解,若不 是对应的待求解方程的解,则循环所述步骤S2和S3,直至计算得到自变量为对应的待求解 方程的解,若是对应的待求解方程的解,则输出对应的待求解方程的解。 优选地,每个所述独立计算模块中存储有对应的待求解方程,所述耦合计算服务 模块中未存储有对应的待求解方程。 优选地,所述雅克比矩阵为f' 〇〇,则所述步骤S3中根据所述雅克比矩阵和接收 到的多个残差计算得到多个第二自变量包括: 根据公式··计算第二自变量, 其中,X1^第一自变量,X n+1为第二自变量,f (Xn)为残差。 本专利技术还提出了一种耦合计算系统,包括: 耦合计算服务模块和多个独立计算模块, 所述耦合计算服务模块随机生成多个独立计算模块中每个独立计算模块分别对 应的第一自变量,将每个第一自变量分别传输至对应的独立计算模块; 所述多个独立计算模块中的每个独立计算模块将所述第一自变量代入对应的待 求解方程计算对应的残差,将所述第一自变量代入自动微分方法计算所述待求解方程在所 述第一自变量处的导数,将所述残差和所述导数传输至所述耦合计算服务模块; 所述耦合计算服务模块还用于根据接收到的多个导数生成雅克比矩阵,根据所述 雅克比矩阵和接收到的多个残差计算得到多个第二自变量,将每个第二自变量传输至对应 的独立计算模块; 所述独立计算模块还用于判断所述第二自变量是否为对应的待求解方程的解,若 是对应的待求解方程的解,则输出对应的待求解方程的解,若不是对应的待求解方程的解, 则根据第二自变量计算残差和相应导数, 其中,所述耦合计算服务模块根据第当前第1页1 2 3 本文档来自技高网
...

【技术保护点】
一种耦合计算方法,其特征在于,包括:S1,耦合计算服务模块随机生成多个独立计算模块中每个独立计算模块分别对应的第一自变量,将每个第一自变量分别传输至对应的独立计算模块;S2,每个所述独立计算模块将所述第一自变量代入对应的待求解方程计算对应的残差,将所述第一自变量代入自动微分方法计算所述待求解方程在所述第一自变量处的导数,将所述残差和所述导数传输至所述耦合计算服务模块;S3,所述耦合计算服务模块根据接收到的多个导数生成雅克比矩阵,根据所述雅克比矩阵和接收到的多个残差计算得到多个第二自变量,将每个第二自变量传输至对应的独立计算模块;S4,所述独立计算模块判断所述第二自变量是否为对应的待求解方程的解,若不是对应的待求解方程的解,则循环所述步骤S2和S3,直至计算得到自变量为对应的待求解方程的解,若是对应的待求解方程的解,则输出对应的待求解方程的解。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙喜明石磊董玉杰李富马远乐
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1