牛顿-拉弗逊法求解非线性问题迭代过程的简单程序例子.docVIP

牛顿-拉弗逊法求解非线性问题迭代过程的简单程序例子.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
牛顿-拉弗逊法求解非线性问题迭代过程的简单程序例子.doc

牛顿-拉弗逊法求解非线性问题迭代过程的简单程序例子 C 一个牛顿-拉弗逊法求解非线性问题迭代过程的简单程序例子 可以进行荷载步长自动调整 读者可参考该模块加入相应的子程序编制自己的非线性计算程序 module Main_Iteration use TypeDef ! 数据结构定义模块 use Data_Input ! 数据输入模块 use Data_Output ! 数据输出模块 use Elem_Prop ! 单元属性模块 use MatSolve ! 矩阵求解模块 implicit none contains subroutine RC2D_Main() type(typ_GValue) :: GValue !总体控制变量数据结构数组 type(typ_Node),pointer :: Node(:) !节点数据结构数组 type(typ_Elem),pointer :: Elem(:) !混凝土单元数据结构数组 type(typ_Rebar),pointer :: Rebar(:) !钢筋单元数据结构数组 type(typ_Load),pointer :: Load(:) !荷载数据结构数组 type(typ_Load),pointer :: Initial_Load(:) !初始荷载 type(typ_Material),pointer :: Material(:) !材料数据结构数组 type(typ_Support),pointer :: Support(:) !支座数据结构数组 call DataInput(GValue,Node,Elem,Rebar,Material,Load,Support, Initial_Load) !读入数据 call Iteration(GValue,Node,Elem,Rebar,Load,Support,Initial_Load) !迭代核心程序 call DataOutput(GValue,Node,Elem,Rebar,Material,Load,Support) !输出数据 write(*,*) 计算成功结束 read(*,*) deallocate(node) deallocate(Elem) deallocate(Rebar) deallocate(Load) deallocate(Support) return end subroutine subroutine Iteration(GValue0,Node0,Elem0,Rebar0,Load0,Support0,Initial_Load0) type(typ_GValue) :: GValue0 type(typ_Node) :: Node0(:) type(typ_Elem) :: Elem0(:) type(typ_Rebar) :: Rebar0(:) type(typ_Load):: Load0(:) type(typ_Load):: Initial_Load0(:) type(typ_Support) :: Support0(:) type(typ_GValue) :: GValue type(typ_Node) :: Node(GValue0%NNode) type(typ_Elem) :: Elem(GValue0%NElem) type(typ_Rebar) :: Rebar(GValue0%NRebar) type(typ_Load):: Load(GValue0%NLoad) type(typ_Load):: Initial_Load(GValue0%NInitial_Load) type(typ_Support) :: Support(GValue0%NSupport) Integer(ikind) :: I,J,II,III GValue=GValue0 GValue%FinishedStep=0 II=1 !开始计算加载步数 LOOP_A: do write(*,*) ======================================================= write(*,*) Step,II,总加载步数,GValue%NStep write(*,*) 完成,(GValue%FinishedStep)/real(GValue%NStep)*100.0,% !对数据进行备份,在荷载步调整操作时恢复上一步的参数 do I=1,GValue%NNode; Node(I)=Node0(I); end do do I=1,GValue%NElem; Elem(I)=Elem0(I); end do do I=1,GValue%NRebar; Rebar(I)=Rebar

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档