耦合计算方法和耦合计算系统的制作方法_2

文档序号:9200343阅读:来源:国知局
二自变量对应的残差和导数计算第三自变 量,直至得到的自变量为对应的待求解方程的解。
[0037] 优选地,每个所述独立计算模块中存储有对应的待求解方程,所述耦合计算服务 模块中未存储有对应的待求解方程。
[0038] 优选地,所述雅克比矩阵为f' 〇〇,则所述步骤S3中根据所述雅克比矩阵和接收 到的多个残差计算得到多个第二自变量包括:
[0039] 根据公式
'计算第二自变量,
[0040] 其中,XnS第一自变量,X n+1为第二自变量,f (Xn)为残差。。
[0041] 根据上述技术方案,耦合计算服务模块无需根据公式
计算每个独立计算模块对应的待求解方程在所述第一自变量处的导数,该导数由每个独立 计算模块分别计算,而且每个独立计算模块通过采用自动微分方法计算导数,可以得到精 度很高的计算结果,从而再将得到的导数传输至耦合计算服务模块进行迭代,可以使得耦 合计算服务模块在很大程度上减少后续迭代次数,并使得耦合计算服务模块的计算稳定性 得到极大提高。
【附图说明】
[0042] 通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理 解为对本发明进行任何限制,在附图中:
[0043] 图1示出了现有技术中两个独立计算软件在迭代求解过程中交换数据的示意图;
[0044] 图2示出了现有技术中牛顿迭代法求解方程f(x)的示意图;
[0045] 图3示出了现有技术中在耦合计算服务软件的参与下,两个独立计算软件实现耦 合求解的示意图流程;
[0046] 图4示出了根据本发明一个实施例的耦合计算方法的示意流程图;
[0047] 图5示出了根据本发明一个实施例的耦合计算方法的具体示意流程图。
【具体实施方式】
[0048] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实 施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施 例及实施例中的特征可以相互组合。
[0049] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开 的具体实施例的限制。
[0050] 如图4所示,根据本发明一个实施例的耦合计算方法,包括:
[0051] Sl,耦合计算服务模块随机生成多个独立计算模块中每个独立计算模块分别对应 的第一自变量,将每个第一自变量分别传输至对应的独立计算模块;
[0052] S2,每个独立计算模块将第一自变量代入对应的待求解方程计算对应的残差,将 第一自变量代入自动微分方法计算待求解方程在第一自变量处的导数,将残差和导数传输 至耦合计算服务模块;
[0053] S3,耦合计算服务模块根据接收到的多个导数生成雅克比矩阵,根据雅克比矩阵 和接收到的多个残差计算得到多个第二自变量,将每个第二自变量传输至对应的独立计算 丰吴块;
[0054] S4,独立计算模块判断第二自变量是否为对应的待求解方程的解,若不是对应的 待求解方程的解,则循环步骤S2和S3,直至计算得到自变量为对应的待求解方程的解,若 是对应的待求解方程的解,则输出对应的待求解方程的解;
[0055] 需要说明的是,该处所指的循环步骤S2和S3,并不是指独立计算模块再次根据第 一自变量计算残差,而是值根据第二自变量计算残差,并将第二自变量代入自动微分方法 计算待求解方程在第二自变量处的导数,将残差和导数传输至耦合计算服务模块,再由耦 合计算服务模块根据接收到的多个导数生成雅克比矩阵,根据雅克比矩阵和接收到的多个 残差计算得到多个第三自变量,将每个第三自变量传输至对应的独立计算模块,进而再判 断第三自变量是否为对应待求解方程的解,若不是,则继续迭代,若是,则输出该解。判断自 变量是否为方程的解的方法,是将自变量代入方程计算残差,如果残差在所需的精度范围 之内,则认为自变量是方程的解。
[0056] 具体的流程如图5以多个独立计算模块A和B为例进行说明,独立计算模块A对 应的待求解方程为f (X),独立计算模块B对应的待求解方程为g (y)。
[0057] 与现有技术中的计算流程(图3)相比,本实施例中的耦合计算服务模块只进行牛 顿迭代运算,无需根据公式
计算导数f' OO和g'(yn),而是由待 耦合求解的A和B计算软件分别通过自动微分方法计算导数f 〇〇和g'(yn)。
[0058] 独立计算模块A对应的待求解方程f (X)的导数f'(xn)由独立计算模块A通过自 动微分方法计算,独立计算模块B对应的待求解方程g(y)的导数g'(yn)由独立计算模块B 通过自动微分方法计算。通过采用自动微分方法计算导数,能够得到精确的计算结果,其中 的自动微分方法是已知且公开的。这里所指的精确的计算结果是指,计算得到的导数更加 接近于待求解方程在相应自变量(例如第一自变量)处的斜率,从而再由耦合计算服务模 块计算新的自变量(例如第二自变量)时,新的自变量更加接近于待求解方程的最终解,因 此可以使耦合计算服务模块更快地迭代计算出方程的解,进而大幅减少后续迭代次数。
[0059] 另外,相对于现有技术中,需要生成两个初始值,而其中的一个初始值还要根据计 算机精度允许的小量△ X进行计算,本实施例的耦合计算服务模块只需生成一个第一自变 量,相对于现有技术可以减少数据的获取过程,以及减少后续每次迭代的运算量,进一步提 高运算速度。
[0060] 需要说明的是,本实施例中的耦合计算服务模块无法采用自动微分方法计算导数 f'(Xn)和g'(yn),这是因为采用自动微分方法计算导数需要知道对应方程f(x) =〇和g(y) =〇的具体形式,而由于只有独立计算模块A和独立计算模块B知道自身对应待求解方程 的具体形式,因此只有独立计算模块A和独立计算模块B可以采用自动微分方法计算导 数。
[0061] 其中的耦合计算服务模块与多个独立计算模块可以安装于同一代终端设备,也可 以安装于不同的终端设备,通过网络通信进行配合。
[0062] 自动微分方法是已知且公开的,其技术原理是:任何一个对函数y = f(x)计算的 计算机程序,一般而言,可以被分解成由基本运算组成的序列,而序列的每一项都可以通过 查表而轻易地计算微分,再依照微积分中的复合函数求导法则来合并成f(x)的微分。这个 过程会产生数值上准确的导数。由于自动微分法只适用于已知函数形式的微分计算,而独 立计算模块恰好知道待求解方程f (X) = 〇的具体形式,因此自动微分法适用于独立计算模 块计算待求解方程的导数f'(X)。
[0063] 优选地,每个独立计算模块中存储有对应的待求解方程,耦合计算服务模块中未 存储有对应的待求解方程。
[0064] 优选地,雅克比矩阵为f' 〇〇,则步骤S3中根据雅克比矩阵和接收到的多个残差 计算得到多个第二自变量包括:
[0065] 根据公式
计算第二自变量,
[0066] 其中,XnS第一自变量,X n+1为第二自变量,f (Xn)为残差。
[0067] 本发明还提出了一种耦合计算系统,包括:
[0068] 耦合计算服务模块和多个独立计算模块,
[0069] 耦合计算服务模块随机生成多个独
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1