- · 《计算机产品与流通》栏[06/28]
- · 《计算机产品与流通》收[06/28]
- · 《计算机产品与流通》投[06/28]
- · 《计算机产品与流通》征[06/28]
- · 《计算机产品与流通》刊[06/28]
一种求解代数环问题的仿真实现方法
作者:网站采编关键词:
摘要:计算机仿真技术的应用随着当代科技的发展变得更加广泛,然而在仿真过程中经常会出现代数环问题,解决代数环问题已是当代仿真设计中极其重要的内容。本文针对代数环与非线性方
计算机仿真技术的应用随着当代科技的发展变得更加广泛,然而在仿真过程中经常会出现代数环问题,解决代数环问题已是当代仿真设计中极其重要的内容。本文针对代数环与非线性方程组的关系,设计了一种基于牛顿拉夫逊法的python仿真实现方法,求出非线性方程组的解,即解决了仿真中的代数环问题。
随着仿真技术的发展,许多工业产品都会在设计过程中使用计算机仿真来模拟实现实际产品的功能,为了使仿真结果更准确,必须解决仿真过程中的代数环问题。
代数环是指系统仿真的时序性造成模型之间产生输出影响输入、输入也影响输出的闭环,仿真无法正常进行。所谓模型,究其根本是内部含有隐性函数的数学模型,模型的耦合其实就是几个方程的联立,故代数环可看作多个方程联立成一个非线性方程组。因此只要求出非线性方程组的解,就可以打破这个闭环,使仿真正常运行。
非线性方程组没有具体求解公式,因此要利用迭代法,即多次计算,直至所求解满足误差要求。牛顿拉夫逊法将非线性方程组线性化,通过逐次迭代线性方程组最终将解求出,它能保证结果二阶收敛,收敛速度快。
1 基于python的牛顿拉夫逊法仿真方法设计
(1)设计Fun( )函数,用来存储非线性方程组,函数中包括定义n个未知数;设定初值及写入方程式;
(2)设计dFun( )函数,用来设计矩阵,其中包含求第k次迭代的函数值和雅克比矩阵;
图1 牛顿拉夫逊法仿真方法流程图
(3)设计Newton( )函数,用来实现迭代公式,其中包含当前迭代次数k、最大迭代次数、误差值a、b;调用dFun( )函数,求第k次迭代结果、第k次与第k-1次迭代结果的差值;设计三个判决条件:当函数值小于误差a,或小于误差b,或当前迭代次数k达到最大迭代次数N时,结束迭代并输出结果;
(4)设计输出结果形式为图形显示,直观观察迭代结果是否符合要求以及是否正确。
仿真方法流程如图1所示。
2 实际计算与结果分析
本节以实际代数环内部的非线性方程组为例,使用上节设计的牛顿拉夫逊法仿真方法进行求解并分析。举代数环实例如图2所示,从三个模型输出输入的耦合关系可以看出它们构成了一个代数环结构。
图2 代数环实例
如公式1所示,三个模型的内部函数组成一个非线性方程组,共包含三个未知数。
公式(1) 代数环模型内部方程。
在S p y d e r平台上实现上节的仿真方法设计,其中设,进行仿真获得如图3所示。坐标系的横轴、纵轴分别代表迭代次数time和计算结果。可以明显看出逐次收敛。当time=5时迭代结束,得到最终结果为。
图3 方程组求解结果图
我们将所求解代回公式1,三个方程近似成立,误差分别为0.595×10-8、0.234×10-8、2.327×10-8,故可以证明该仿真方法所求结果是正确的。
3 结语
本文简要介绍仿真过程中代数环的形成及原理,将其转换为求解非线性方程组问题,通过对牛顿拉夫逊法进行仿真方法设计,使用python语言设计函数,实现牛顿拉夫逊法的求解过程,并通过结果图展现出该方法解决代数环问题的正
冷丰汐(1996—),女,满族,辽宁清原人,硕士研究生,研究方向:无线网络信息传输与控制技术。
陈永恒(1992—),男,满族,河北秦皇岛人,硕士研究生,研究方向:无线通信与应用。
计算机仿真技术的应用随着当代科技的发展变得更加广泛,然而在仿真过程中经常会出现代数环问题,解决代数环问题已是当代仿真设计中极其重要的内容。本文针对代数环与非线性方程组的关系,设计了一种基于牛顿拉夫逊法的python仿真实现方法,求出非线性方程组的解,即解决了仿真中的代数环问题。随着仿真技术的发展,许多工业产品都会在设计过程中使用计算机仿真来模拟实现实际产品的功能,为了使仿真结果更准确,必须解决仿真过程中的代数环问题。代数环是指系统仿真的时序性造成模型之间产生输出影响输入、输入也影响输出的闭环,仿真无法正常进行。所谓模型,究其根本是内部含有隐性函数的数学模型,模型的耦合其实就是几个方程的联立,故代数环可看作多个方程联立成一个非线性方程组。因此只要求出非线性方程组的解,就可以打破这个闭环,使仿真正常运行。非线性方程组没有具体求解公式,因此要利用迭代法,即多次计算,直至所求解满足误差要求。牛顿拉夫逊法将非线性方程组线性化,通过逐次迭代线性方程组最终将解求出,它能保证结果二阶收敛,收敛速度快。1 基于python的牛顿拉夫逊法仿真方法设计(1)设计Fun( )函数,用来存储非线性方程组,函数中包括定义n个未知数;设定初值及写入方程式;(2)设计dFun( )函数,用来设计矩阵,其中包含求第k次迭代的函数值和雅克比矩阵;图1 牛顿拉夫逊法仿真方法流程图(3)设计Newton( )函数,用来实现迭代公式,其中包含当前迭代次数k、最大迭代次数、误差值a、b;调用dFun( )函数,求第k次迭代结果、第k次与第k-1次迭代结果的差值;设计三个判决条件:当函数值小于误差a,或小于误差b,或当前迭代次数k达到最大迭代次数N时,结束迭代并输出结果;(4)设计输出结果形式为图形显示,直观观察迭代结果是否符合要求以及是否正确。仿真方法流程如图1所示。2 实际计算与结果分析本节以实际代数环内部的非线性方程组为例,使用上节设计的牛顿拉夫逊法仿真方法进行求解并分析。举代数环实例如图2所示,从三个模型输出输入的耦合关系可以看出它们构成了一个代数环结构。图2 代数环实例如公式1所示,三个模型的内部函数组成一个非线性方程组,共包含三个未知数。公式(1) 代数环模型内部方程。在S p y d e r平台上实现上节的仿真方法设计,其中设,进行仿真获得如图3所示。坐标系的横轴、纵轴分别代表迭代次数time和计算结果。可以明显看出逐次收敛。当time=5时迭代结束,得到最终结果为。图3 方程组求解结果图我们将所求解代回公式1,三个方程近似成立,误差分别为0.595×10-8、0.234×10-8、2.327×10-8,故可以证明该仿真方法所求结果是正确的。3 结语本文简要介绍仿真过程中代数环的形成及原理,将其转换为求解非线性方程组问题,通过对牛顿拉夫逊法进行仿真方法设计,使用python语言设计函数,实现牛顿拉夫逊法的求解过程,并通过结果图展现出该方法解决代数环问题的正
文章来源:《计算机产品与流通》 网址: http://www.jsjcpylt.cn/qikandaodu/2021/0320/987.html
上一篇:基于飞机产品结构更改的装配工装变型设计
下一篇:任意组分体系萃取过程的动态平衡研究