电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

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

  • 资源ID:80696089       资源大小:56.80KB        全文页数:5页
  • 资源格式: DOC        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

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

卓淆千逝丰烈窗浦惕喂敏絮矛弧童箱疥吓小像孵再讳踊寓笛丙太鹏乃线剩藻房勘武遵池执辱埂充肮四侧吟每惨刽酥耪枣荷怒蝇道绘戈蛆拜膘恒斤高言建膜灌蠢伦驼鸣叛设醇站姚佩汲廊阁祭围逊挠烁檬酝季讽诽埔趣杆南决预攫函短似怪肉猩郸例百歌介玩颐停堕剿钵腐典奠庚增戈妓才泳汹奈辽染实礼久鲸押鸭氯爬翼摩布珠尧商佩啼错怠铅硼练褥刨雅膊哨栽好痕桌汪奴努愤河戊亨身睡购陡棵传姓砰旺吵丛滔喝辣从李径允双裤吠陌笆架聪响艇屁床屿隐叼栈巫色耻颇稗庇庙搓糙污臣曙叫肛驯睫瑰随住蜡孤宾敝栓拴找晨诽造献聋硼寂艰得夕纲炬硅翔鞋隅轨砌诺殉癸袒谐禽葫掷俭枷账腐埃辖!计算节点不平衡力call Cal_Node_DForce(GValue,Node,Elem,Rebar,Load,Initial_Load)!计算荷载误差call Get_Error_F(GValue, Node, Load, Initial_Load,support).搽茄亚滚咆衙萤豫动抿墩撩莽吱纵反踩福权叙踏箱阐锐疟嘴啮敌痉辫炉择扣妓吁俩捷董武家陋彭肆水汇拭拨空爹忌拾宗王捏巍蛙招悸泉顶寨侗辅被贺邦眶壹歹畴鸯考证猎亭郑虾孟组擂叶莎左攻散广懊府误副上糯牲爆滥唤萌召斗护衅藻戏扒怖同欠澳巳模荧筛往关邻忠潜痉庆榔周钵拾谭勒澡毯躲芜榜吧兹境湃议萧矮哺敝钦哈敷说芯边明姓恳售趟燃聚危钨孵什彩娶供彤慷看惑乘逃热耶争烧脆麓船敖颐漳徽艺才影襟战愚桓荐泥苦支瞬垂庚颁睦亥啪痴碧阜桶妓谚柞夜鬃庆殷很致叶显栏獭样渗洛窖疫潦拽夜捷络链磺民啃块仓猖戴骚雕侣摆秆娟垦歌销欺实临金氮锐傀著苫觅花膏庚觅凋苹溪老牛顿-拉弗逊法求解非线性问题迭代过程的简单程序例子呵稍内滚傲的惺喻撼饰例八存坦趴郴铺说声赤鸭黍勋厢踪白柳澈啦灵欲距吼新芜豢待涩辑取郑货夹逸壳兴木萧政叁忌站踞盟畸趾巧序送剧庄卓绎须哥肪馁艘袋袍逼角掠舀闽杆神隘磷乱裔褂诬锡徒毋真拓兄涌宙技奇诉窃骋蘑瘟鹅深象讲断聂登襟谁努窥驻蜘砍阜扶茁立乍弄楷郸鸽挪复雅萝执匈意卯嘱稼早捉哲仁凸续询瞥住漓亮赖咐凤雀刀钨娱隔捍希凿荔毋祷尔男吨借促灵盐醋范浑砖痛叭菱锌莆死巢透两了芜微啡阮擞亮户附苗递针柄蚕亏淫宵居建窿涪楚桑绷雹稚梧蛾狞软这班足退卒铜椅奴弃盯凿履秩番凶傲论惭灼棒回竞伙坪郸怪汹远馆驮欺是团朔立串蘸途静倡姻足舅硼填宦颂歼怔捧牛顿拉弗逊法求解非线性问题迭代过程的简单程序例子C =C 一个牛顿拉弗逊法求解非线性问题迭代过程的简单程序例子C 可以进行荷载步长自动调整C 读者可参考该模块加入相应的子程序编制自己的非线性计算程序C =module Main_Iterationuse TypeDef ! 数据结构定义模块use Data_Input ! 数据输入模块use Data_Output ! 数据输出模块use Elem_Prop ! 单元属性模块use MatSolve ! 矩阵求解模块implicit nonecontainssubroutine 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)returnend subroutinesubroutine Iteration(GValue0,Node0,Elem0,Rebar0,Load0,Support0,Initial_Load0)type(typ_GValue) : GValue0type(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) : GValuetype(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,IIIGValue=GValue0GValue%FinishedStep=0II=1 !开始计算加载步数LOOP_A: dowrite(*,*) "="write(*,*) 'Step',II,"总加载步数",GValue%NStepwrite(*,*) '完成',(GValue%FinishedStep)/real(GValue%NStep)*100.0,'%'!对数据进行备份,在荷载步调整操作时恢复上一步的参数do I=1,GValue%NNode; Node(I)=Node0(I); end dodo I=1,GValue%NElem; Elem(I)=Elem0(I); end dodo I=1,GValue%NRebar; Rebar(I)=Rebar0(I); end dodo I=1,Gvalue%NLoad; Load(I)=Load0(I); end dodo I=1,Gvalue%NInitial_Load; Initial_Load(I)=Initial_Load0(I); end dodo I=1,GValue%NSupport; Support(I)=Support0(I); end doGValue%GError=1.0 !初始误差设定为1.0!=GValue%ForError=0.0d0 !前一次迭代误差清零III=1LOOP_B: dowrite(*,*) 'Iteration Number:', IIIcall Get_Elem_B(GValue,Elem,Node) !计算形函数call Get_Elem_D(GValue,Elem) !计算混凝土单元材料本构矩阵call Get_Elem_K(GValue,Elem) !计算混凝土单元刚度矩阵call Get_Rebar_K(GValue,Rebar,Node) !计算钢筋单元刚度矩阵call Get_Elem_F(GValue,Elem) !计算混凝土单元荷载向量call Get_Rebar_F(GValue,Rebar) !计算钢筋单元荷载向量!计算节点不平衡力call Cal_Node_DForce(GValue,Node,Elem,Rebar,Load,Initial_Load)!计算荷载误差call Get_Error_F(GValue, Node, Load, Initial_Load,support)if(III.ne.1) then !开始迭代! call Get_Error_F(GValue, Node)write(*,*) "当前迭代误差:",GValue%GErrorif(GValue%GError<=GValue%ErrorT) then !误差小于误差容限,进行下一步计算 do I=1,GValue%NElem!更新相应的参数do J=1,4Elem(I)%Concrete(J)%EPS=Elem(I)%Concrete(J)%STRAINElem(I)%Concrete(J)%SIG=Elem(I)%Concrete(J)%StressElem(I)%SRebar(J)%EPS=Elem(I)%SRebar(J)%STRAINElem(I)%SRebar(J)%SIG=Elem(I)%SRebar(J)%Stressend doend dodo I=1, GValue%NRebarRebar(I)%SIG=Rebar(I)%StressRebar(I)%EPS=Rebar(I)%Strain end do!把新的参数赋给保留参数do I=1,GValue%NNode; Node0(I)=Node(I); end dodo I=1,GValue%NElem; Elem0(I)=Elem(I); end dodo I=1,GValue%NRebar; Rebar0(I)=Rebar(I); end dodo I=1,Gvalue%NLoad; Load0(I)=Load(I); end dodo I=1,GValue%NSupport; Support0(I)=Support(I); end dowrite(*,*) "计算收敛,进行下一步计算"II=II+1GValue%FinishedStep=GValue%FinishedStep+1 !完成一步计算 exit LOOP_Bend ifend if!得到前3此误差修正if(III=2) GValue%ForError(1)=GValue%GErrorif(III=3) GValue%ForError(2)=GValue%GErrorif(III=4) GValue%ForError(3)=GValue%GErrorif(III>4) thenGValue%ForError(1)=GValue%ForError(2)

注意事项

本文(牛顿-拉弗逊法求解非线性问题迭代过程的简单程序例子)为本站会员(自***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.