书签 分享 收藏 举报 版权申诉 / 61
上传文档赚钱

类型计算机辅助建筑设计-方程求解(ppt 61页).ppt

  • 上传人(卖家):欢乐马
  • 文档编号:268915
  • 上传时间:2020-02-22
  • 格式:PPT
  • 页数:61
  • 大小:523KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《计算机辅助建筑设计-方程求解(ppt 61页).ppt》由用户(欢乐马)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计算机辅助建筑设计-方程求解ppt 61页 计算机辅助 建筑设计 方程 求解 ppt 61
    资源描述:

    1、高次方程求解,1、 通用函数的程序编写,问题:如何求一个函数的解,而函数是可以随时替换的。 例如: F(x)=x3+4x2+5 F(x)=ex-5,实现步骤:,1在窗体上加一个Scriptcontrol控件 2 在工程中添加一个类模块class1. 类模块中的代码: Public K1 As Double,1、 通用函数的程序编写,Private Function Hanshu(X As Double, Str1 As String) As Double On Error Resume Next Dim shar As New Class1 ScriptControl1.AddObject “

    2、sh“, shar ScriptControl1.AddCode “Function F(x)“ & vbCrLf & “kk=“ & Str1 & vbCrLf & “sh.k1 = kk “ & vbCrLf & “End Function“ ScriptControl1.Run “F“, X Hanshu = shar.K1 ScriptControl1.Reset End Function,1、 通用函数的程序编写,作业1: 试设计一个工程,可以计算函数的值。 2 分别输出x1,2,310函数的值。 3 测试替换了函数表达式后,你编写的程序是否有效。,1、 通用函数的程序编写,课题2

    3、:高次方程求解:,在解决科学研究和工程领域中的实际问题时,往往涉及到高次方程。高次方程解的个数和方程的次数相对应,即使只在实数范围内考虑,大多也有几个解。但是,对于从解决土木工程问题归纳得到的高次方程,其有意义的解大多仅有一个,并且是正数解。,2.1 高次方程求解原理,计算机解高次方程的基本过程大致如下: 以x2-2=0为例,令y=x2-2 其函数图像如图。y=0时的x值(x=土20.5)即为原方程的解。在x =20.5附近y值由负变正。由于函数是连续的,所以必定存在y=0对应的点,该点即为原方程的一个解。其他方程也是如此,如果知道了一个解的区间,就可以通过代人不同的x值观察y的变化,从而逐次

    4、逼近该解。,高次方程求解常用方法,高次方程的常用解法有扫描法、对分法、优选法、迭代法、牛顿法等。,2.2 扫描法求解方程的根,扫描法的主要过程是: 1.寻找方程解所在的区域a,b。由初始点a出发,根据步长h逐次迭代找到b点,使f (a ) X (b) = 0 ,前一点即为a,f(a)与f(b)的值为一正一负。由于从实际土木问题中提炼出的函数f(x)在a,b连续,所以在a,b内必有一解x0,使f(x0)=0。该过程也可固定a点不变,单纯扩大区域找b点.,2.2 扫描法求解方程的根,2.缩小解所在的区域a,b。十等分a,b,逐点求f(xi)值,直至相邻两点的值符号相反,这两点即为新的区域a,b。

    5、3.重复上述过程直至收敛,达到一定精度为止。,2.2 扫描法求解方程的根,注意,求实际土木工程问题的解时,起始点a应取足够小(小于解)或干脆取a =0。由于其有意义的解是一个正数解,搜索方向只要向正向进行,甚至根据实际情况,直接选取适当区域a,b,然后从步骤2开始求解。而一般的高次方程则要复杂些,解不一定比a值大,因此解的区域也可能在初始点的另一边,搜索方向需先判别。,2.2 扫描法求解方程的根,扫描法程序流程图见图2-2,图中h为步长,e为要求的精度。 扫描法程序中,因为要判断的是两函数的符号,而不是它们的大小,利用符号函数可使计算量减少,即用msgn(f(a),n=sgn(f(b)替代原来

    6、的计算更合理。,扫描法求方程根的流程图,2.2 扫描法求解方程的根,用扫描法求方程x2-2=0的正数解,其计算结果见表2-1,2.2 扫描法求解方程的根,由计算结果知,方程x2-2=0的一个解在1. 414至1. 415之间,只要进一步缩小步长.重复上述过程,可获得更高精度。,2.2 扫描法求解方程的根,Dim M%, N%, i As Double Dim A#, B#, H#, E#, X#, Str2$ Dim Str1$ i = 1 Str1 = “计算次数 a= b= mn “ & vbCrLf A = Val(Text2)初始值 H = Val(Text3)求解步长 E = Val

    7、(Text4)求解精度 Str2 = Text1.Text函数表达式 M = Sgn(Hanshu(A, Str2),2.2 扫描法求解方程的根,Do B = A + H N = Sgn(Hanshu(B, Str2) Str1 = Str1 & i & Space(3) & A & Space(3) & B & Space(3) & M * N & vbCrLf If M * N 0 Then A = B M = N i = i + 1 ElseIf M = 0 Then X = A Exit Do ElseIf N = 0 Then X = B Exit Do,ElseIf H 5000

    8、Then GoTo err1: End If Loop Until H = E,2.2 扫描法求解方程的根,Text5 = “方程的解为:x=“ & X & vbCrLf & Str1 Exit Sub err1: MsgBox “找不到方程的根,计算次数已经超过了5000次,请确认输入的函数是否正确 ”, vbInformation, “找不到方程的根“,2.2 扫描法求解方程的根,2.2 作业2:,根据以上的基本步骤与程序流程图: (1)编写扫描法求解高次方程的根 (2)程序能够通用化,即扫描法要用过程或函数来完成,供VB调用。 (3)高次方程可以任意改变。,2.3 对分法求解,对分法 扫

    9、描法运算量大,为减少工作量可用对分法或优选法,其基本思想和扫描法相同,即逐次缩小解的区域范围。,2.3 对分法优选法求解,实际操作时,初始区域可取足够大,使解被包含在内,这在解与实际化学问题相关的方程时很容易确定。在缩小区域a,b时则有所不同:在a,b取中点c。 (即对分点),求f(c)值。并与f(a)或f(b)比较,舍弃符号相同的点,保留符号相反的点在新的区域内重复上述过程,直至达到要求的精度。 用对分法求一元高次方程解的程序流程图见图2-3,2.3.1 对分法,2.3.2对分法流程图,2.3 对分法优选法求解,2.3 对分法优选法求解,2.3.3 示例,2.3.4 对分法关键程序,Priv

    10、ate Sub Erfenfa(Str1 As String, A As Double, B As Double, Eps As Double) Dim Fx As Double, Fa As Double, Fb As Double, X As Double, i As Integer Dim Strtmp As String Fa = Hanshu(A, Str1): Fb = Hanshu(B, Str1) If Fa * Fb 0 Then Text4 = “方程根不在你规定的区间“ Exit Sub End If,If (Fa = 0 Or Fb = 0) Then 如果Fa,Fb0

    11、,则就是方程的根 If (Fa = 0) Then X = A GoTo 20 Else X = B GoTo 20结束程序 End If End If,2.3 对分法优选法求解,Strtmp = “计算次数I= A= B= 中点X= 函数值“ & vbCrLf i = 1 Do Until Abs(A - B) = Eps X = (A + B) / 2 If Abs(Hanshu(X, Str1) = 0 Then GoTo 20 如果Hanshu(X, Str1)=0,说明此时的x已经是方程的解 If Hanshu(X, Str1) * Hanshu(A, Str1) 0 Then B

    12、= (A + B) / 2 ElseIf Hanshu(X, Str1) * Hanshu(B, Str1) 0 Then A = (A + B) / 2 End If,Strtmp = Strtmp & i & Space(3) & A & Space(3) & B & Space(3) & (A + B) / 2 & Space(3) & Hanshu(X, Str1) & vbCrLf i = i + 1 If i 5000 Then Text4 =“达不到你所要求的精度,已经累加计算了5000次“ Exit Do End If Loop,2.3.4 对分法关键程序,2.3 对分法优选法

    13、求解,2.3.5 程序界面,2.3 对分法优选法求解,2.3.6 作业3:,本节已经给出了对分的调用程序,请编写程序界面,完成输入和输出。 要求求解时,列出每次求解时的中间过程。,2.3 对分法优选法求解,2.4 优选法,优选法又叫 0. 618法,与对分法流程基本相同,但每次插人点。不是区域的中点,而是在区域的0. 618处,即c=a+0.618(b-a)或c=b-0.618(b-a),一般收敛速率更快。 用对分法求解方程x2-2=0时的计算结果见表22,2.4.1 优选法计算表,2.4 优选法,2.4.2 作业,按照对分法求解方法,编写优化法求解方程根的程序, 要求:每一个循环中间步骤要输

    14、出。,2.4 优选法,2.5 迭代法,高次方程也可利用迭代方法求解。把原方程f(x)0。进行适当变换,建立迭代方程xi1=G(x)依次迭代,直至收敛。 例2-1求方程x3-x-1 =0在x=1.5附近的根。 方程由f(x)=0形式改写成迭代方程:,以1.5作x的初值x0,代入上式求出x11.3572,再以x1代入,进一步求出x2,直到 计算结果见下表(0.00001),2.5 迭代法(原理),2.5 迭代法(原理),2.5.1 注意事项,迭代法的关键在于选定合适的迭代方程,要求迭代方程收敛,否则,因发散而得不到方程的解。如上例,若用x=x3-1为迭代方程,同样取x0=1.5,则x1= 2. 3

    15、75,x2= 12.3965显然xk的值越来越大,即迭代方程发散,正因为迭代法有此缺陷而限制了它的使用。确定迭代方程是否收敛,可以用|G(x)|1进行判别,当x满足此式时一般收敛,否则发散。,2.6 牛顿法,牛顿法又称弦切法,也是迭代法的一种。 求f(x) = 0的解,即求曲线f(x)与横坐标的交点a(如图2-5所示),在a点附近x0处的斜率,所以,所以迭代方程为:,2.6牛顿法,结束条件: 直到f(xi)=0,即xi+1=xi或|xi+1-xi|为止。,2.6.1 牛顿法举例,思考题1: 用牛顿迭代法求解x2-25=0的正数解。 自己用笔先计算。,2.6.1 牛顿法举例,牛顿迭代收敛快,尤其

    16、是土木方程,总有一实数解,且知道解的基本范围,故使用很方便。,2.6.3 牛顿迭代法的近似解法,有时,f(x)的表达式很复杂或无法求时 怎么办呢?,2.6.3 牛顿迭代法的近似解法,可用数值近似法替代: 式中,为远小于xi的一个小数。,本节 上机作业,4.写出用0.618法求解一元三次方程的程序框图。按流程求出方程2x3+3x2-17x-30=0在1,10区域的解,精度为0.01. 5,用迭代法解方程f(x)x-sinx-0.5=0。精度0. 001 6.用牛顿近似迭代法求x2+10cosx=0的根 要求能够输出每一步计算的结果。,本节 上机作业,牛顿迭代法求解时应注意:作业7 给的初值不同时

    17、,求解的解并不同,这时因为如果方程有多个解,它是趋于最近的解。例如作业中2x3+3x2-17x-30=0 ,分别初值代入-4,-3,-2,0.1,2分别代入,找到方程的解。,思考题,本节讲的扫描法,对分法,优选法及迭代法,当求到一个合适的解后,程序就自动完成了, 问题提出,如何求出方程所有的解:,数值积分,1 定积分的求解,在高等数学中,对一个定积分 的求解,可以利用牛顿一莱布尼兹(Newton-Leibniz)公式,即 这里F(x)是f(x)的一个原函数。,但是,在科学研究和工程技术中常会遇到下述几种情况, 如: 1.被积函数的结构复杂,求原函数困难 2.原函数不能用初等函数表示; 3.被积

    18、函数不存在原函数。 这时用牛顿一莱布尼兹公式精确计算积分值相当困难,需要建立积分的近似计算方法。数值积分就是一种常用的近似计算方法。数值积分不受被积函数有无解析解的限制,土木工程中都可用数值积分解决。 本章介绍最基本的数值积分法,它们是矩形法、梯形法、辛普森法。,2 矩形积分法,4-1矩形 在满足一定精度的范围内.数值积分可以只利用被积函数来求得积分值,为什么可以这样进行呢? 我们知道,函数f(x)在区间a,b之间求积,就是求图4-1中的f(x)曲线与x轴以及两直线x=a , x = b所围成的几何图形的面积。,2.1 基本原理,如图4-2所示,我们把区间a,b分为n个等分,每等分长为x,那么

    19、其面积,作业1: 试编程实现上述矩形积分 要求是个通用程序 通过传递参数计算,2.2 关键程序代码,Public Function JuxingJifen(Str1 As String, A As Double, B As Double, DengFen As Integer) As Double Dim Sum1 As Double, i As Long, H As Double H = Abs(B - A) / DengFen Sum1 = 0 For i = 1 To DengFen Sum1 = Sum1 + Hanshu(A + i * H, Str1) * H Next Juxin

    20、gJifen = Sum1 End Function,Str1 函数表达式,但必须符合VB的表示方法。 A,B 积分的上下限 Dengfen积分区间的等分份数,2.3 精度控制,在计算时,曲线以下、矩形以上形如三角形的面积都未被考虑,故有一定的误差。当然,若将x取得小一些,误差就可减小,不过计算量却要大大增加,从而也增大了误差的积累。,3 梯形积分法,减少误差的一种方法是,将每个等分用梯形代替矩形,如图4 3所示。计算方法相应地改为:,3.1 梯形积分法举例,例4-1利用梯形法求积分的近似解。,解:该积分的解析解是0.333.。按梯形法,将积分区间二等分(n = 2 ),3.1 梯形积分法举例

    21、,随n增大,x减小,近似结果趋近于解析解,见表,3.2 程序关键代码,但是梯形法以直线来代替曲线仍有误差,如果用某种曲线来代替,就能进一步减少误差,为此而发展了辛普森求积方法。,Public Function TixingJifen(Str1 As String, A As Double, B As Double, DengFen As Integer) As Double Dim Sum1 As Double, i As Long, H As Double H = Abs(B - A) / DengFen Sum1 = 0 For i = 1 To DengFen Sum1 = Sum1 +

    22、 (Hanshu(A + (i - 1) * H, Str1) + Hanshu(A + i * H, Str1) / 2 * H Next TixingJifen = Sum1 End Function,4辛普森法求积,辛普森求积公式又叫做三点求积公式,或叫做抛物线求积公式。如图所示,将曲线f(x)视为抛物线,表示为,4.1 举例说明,利用辛普森方法求下式积分的近似值。,4.1 举例说明,解:将积分区间0,1四等分,用辛普森公式得,4.2 关键代码,Public Function XinPuJifen(Str1 As String, A As Double, B As Double, Den

    23、gFen As Integer) As Double Dim Sum1 As Double, i As Long, H As Double H = Abs(B - A) / DengFen / 2 Sum1 = 0 Sum1 = Hanshu(A, Str1) For i = 1 To DengFen * 2 Step 2 Sum1 = Sum1 + 4 * (Hanshu(a+i * H, Str1) Next,For i = 1 To DengFen - 1 Sum1 = Sum1 + 2 * Hanshu(A + 2 * i * H, Str1) Next Sum1 = Sum1 + Hanshu(B, Str1) Sum1 = Sum1 * H / 3 XinPuJifen = Sum1 End Function,5 作业,1.编写程序,用矩形积分法求解下式积分值: 分别打印分成4份,10份,20份的值,并估计误差。,5 作业,2.用梯形积分法求解上题,并估计分成相等份时与解析解的差别。 3.用辛普森法求解上式,试估误差,并与解析解对比。 比较上述三种方法,哪一种方法更容易逼近精确解。,

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:计算机辅助建筑设计-方程求解(ppt 61页).ppt
    链接地址:https://www.163wenku.com/p-268915.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库