圆柱绕流N一S方程数值解的非线性特性分析
非线性方程数值解法及其应用
非线性方程数值解法及其应用 摘要:数值计算方法主要研究如何运用计算机去获得数学问题的数值解的理论和算法。 本文主要介绍非线性方程的数值解法以及它在各个领域的应用。是直接从方程出发,逐步缩小根的存在区间,或逐步将根的近似值精确化,直到满足问题对精度的要求。我将从二分法、Steffensen 加速收敛法、Newton 迭代法、弦截法来分析非线性方程的解法及应用。 关键字:非线性方程;二分法;Steffensen 加速收敛法;代数Newton 法;弦截法 一、前言 随着科技技术的飞速发展,科学计算越来越显示出其重要性。科学计算的应用之广已遍及各行各业,例如气象资料的分析图像,飞机、汽车及轮船的外形设计,高科技研究等都离不开科学计算。因此经常需要求非线性方程 f(x) = O 的根。方程f(x) = O 的根叫做函数f(x)的零点。由连续函数的特性知:若f(x)在闭区间[a ,b]上连续,且f(a)·f(b) 数值分析讲义 第三章线性方程组的解法 §3.0 引言 §3.1 雅可比(Jacobi)迭代法 §3.2 高斯-塞德尔(Gauss-Seidel)迭代法 §3.3 超松驰迭代法§3.7 三角分解法 §3.4 迭代法的收敛性§3.8 追赶法 §3.5 高斯消去法§3.9 其它应用 §3.6 高斯主元素消去法§3.10 误差分析 §3 作业讲评3 §3.11 总结 §3.0 引言 重要性:解线性代数方程组的有效方法在计算数学和科学计算中具有特殊的地位和作用.如弹性力学、电路分析、热传导和振动、以及社会科学及定量分析商业经济中的各种问题. 分类:线性方程组的解法可分为直接法和迭代法两种方法. (a) 直接法:对于给定的方程组,在没有舍入误差的假设下,能在预定的运算次数内求得精确解.最基本的直接法是Gauss消去法,重要的直接法全都受到Gauss消去法的启发.计算代价高. (b) 迭代法:基于一定的递推格式,产生逼近方程组精确解的近似序列.收敛性是其为迭代法的前提,此外,存在收敛速度与误差估计问题.简单实用,诱人. §3.1 雅可比Jacobi 迭代法 (AX =b ) 1 基本思想: 与解f (x )=0 的不动点迭代相类似,将AX =b 改写为X =BX +f 的形式,建立雅可比方法的迭代格式:X k +1=BX (k )+f ,其中,B 称为迭代矩阵.其计算精度可控,特别适用于求解系数为大型稀疏矩阵(sparse matrices)的方程组. 2 问题: (a) 如何建立迭代格式? (b) 向量序列{X k }是否收敛以及收敛条件? 3 例题分析: 考虑解方程组??? ??=+--=-+-=--2.453.82102 .72103 21321321x x x x x x x x x (1) 其准确解为X *={1, 1.2, 1.3}. 建立与式(1)相等价的形式: ??? ??++=++=++=84.02.01.083.02.01.072 .02.01.02 13312321x x x x x x x x x (2) 据此建立迭代公式: ?????++=++=++=+++84 .02.01.083.02.01.072.02.01.0)(2)(1)1(3 )(3 )(1)1(23)(2)1(1k k k k k k k k k x x x x x x x x x (3) 取迭代初值0) 0(3 )0(2)0(1===x x x ,迭代结果如下表. JocabiMethodP31.cpp 第六章非线性方程的数值解法习题解答 填空题: 1. 求方程()x f x =根的牛顿迭代格式是__________________。 Ans:1()1()n n n n n x f x x x f x +-=- '- 2.求解方程 在(1, 2)内根的下列迭代法中, (1) (2) (3) (4) 收敛的迭代法是(A ). A .(1)和(2) B. (2)和(3) C. (3)和(4) D. (4)和(1) 3.若0)()(,故迭代发散。 以上三中以第二种迭代格式较好。 2、设方程()0f x =有根,且'0()m f x M <≤≤。试证明由迭代格式1()k k k x x f x λ+=- (0,1,2,)k =L 产生的迭代序列{}0k k x ∞ =对任意的初值0(,)x ∈-∞+∞,当2 0M λ<< 时,均收敛于方程的根。 实验报告 一、实验目的 1.迭代函数对收敛性的影响。 2.初值的选择对收敛性的影响。 二、实验题目 1.用简单迭代法求方程01)(3=--=x x x f 的根。 分别化方程为如下等价方程: 31+=x x ;13 -=x x ;x x 11+=;213-+=x x x 取初值5.10=x ,精度为4 10-,最大迭代次数为500,观察其计算结果并加以分析。 2.①用牛顿法求方程01)(3=-+=x x x f 在0.5附近的根, 分别取初值1000,100,2,1,5.0,5.0,1,2,100,10000-----=x 观察并比较计算结果,并加以分析。 ②用牛顿法求方程0)(3=-=x x x f 所有根。 三、实验原理 简单迭代法程序,牛顿迭代法程序。 四、实验内容及结果 五、实验结果分析 (1)实验1中用简单迭代法求方程01)(3=--=x x x f 的根: 取初始值5.10=x 的时候,等价方程2和4是不收敛的。等价方程1的迭代次数为6,近似值为1.324719474534364。等价方程3的迭代次数为7,近似值为1.324718688942791。说明不同的等价方程得到的结果以及迭代的次数是不一样的。 (2)实验2中用牛顿迭代法求方程01)(3=-+=x x x f 在0.5附近的根: 通过结果可知,当初始值越接近真实值时,迭代的次数就越少。 (3)实验3中用牛顿法求方程0)(3=-=x x x f 所有根: 可知该方程的根为01=x ,12=x ,13-=x ,由于方程是无重根的,所以可以直接用牛顿迭代法做,而不需要使用牛顿迭代加速法做。 一 实验目的 1.掌握求解线性方程组的高斯消元法及列主元素法; 2. 掌握求解线性方程组的克劳特法; 3. 掌握求解线性方程组的平方根法。 二 实验内容 1.用高斯消元法求解方程组(精度要求为610-=ε): 1231231 233272212240x x x x x x x x x -+=??-+-=-??-+=? 2.用克劳特法求解上述方程组(精度要求为610-=ε)。 3. 用平方根法求解上述方程组(精度要求为610-=ε)。 4. 用列主元素法求解方程组(精度要求为610-=ε): 1231231 233432222325x x x x x x x x x -+=??-+-=??--=-? 三 实验步骤(算法)与结果 1. 程序代码(Python3.6): import numpy as np def Gauss(A,b): n=len(b) for i in range(n-1): if A[i,i]!=0: for j in range(i+1,n): m=-A[j,i]/A[i,i] A[j,i:n]=A[j,i:n]+m*A[i,i:n] b[j]=b[j]+m*b[i] for k in range(n-1,-1,-1): b[k]=(b[k]-sum(A[k,(k+1):n]*b[(k+1):n]))/A[k,k] print(b) 运行函数: >>> A=np.array([[3,-1,2],[-1,2,-2],[2,-2,4]],dtype=np.float) >>> b=np.array([7,-1,0],dtype=np.float) >>> x=Gauss(A,b) 输出: 结果:解得原方程的解为x1=3.5,x2=-1,x3=-2.25 2 程序代码(Python3.6): import numpy as np A=np.array([[3,-1,2],[-1,2,-2],[2,-2,4]],dtype=float) L=np.array([[1,0,0],[0,1,0],[0,0,1]],dtype=float) U=np.array([[0,0,0],[0,0,0],[0,0,0]],dtype=float) b=np.array([7,-1,0],dtype=float) y=np.array([0,0,0],dtype=float) x=np.array([0,0,0],dtype=float) def LU(A): n=len(A[0]) i=0 while i 非线性方程的数值解法 《计算方法》 期末论文 论文题目非线性方程的数值解法 学院 专业 班级 姓名 学号 指导教师 日期 目录 摘要 第1 章绪论 1.1 问题的提出和研究目的和意义 1.2 国内外相关研究综述 1.3 论文的结构与研究方法 第2 章非线性方程的数值解法 2.1 二分法 2.2 迭代法 2.3 迭代法的局部收敛性及收敛的阶 2.4 牛顿迭代法 2.5 牛顿法的改进 2.6 插值 摘要 数值计算方法,是一种研究解决数学问题的数值近似解方法,它的计算对象是那些。 在理论上有解而又无法用手工计算的数学问题。在科学研究和工程技术中都要用到各种计算方法。例如 在地质勘探、汽车制造、桥梁设计、天气预报和汉字设计中都有计算方法的踪影。本文讨论了非线 性方程的数值解法:非线性方程的二分法、迭代法原理、牛顿迭代法,迭代法的收敛性条件及适合非线性方程的插值法等等。 第1 章绪论 可以证明插值多项式L (x) n 存在并唯一。拉格朗日插值多项式的算法 step1.输入 插值节点控制数n 插值点序列 i i x , y i=0,1,…,n 要计算的函数点x。step2. FOR i =0,1,…,n i 制拉格朗日基函数序列问题的提出和研究目的和意义非线性方程的问题在工程实践中有很多用途 研究其数值解法是当前一个研究方向。目前已有相当一部分算法在广泛使用于工程实践中。非线性方程组和无约束最优化的数值解法 一直是数值优化领域中热门的研究课题。本文对传统的方法进行改进和提出新的算法 该算法不仅有重要的论价值,而且有很高的实用价值。例如在天体力学中,有如下Kepler 开普勒方程 x-t- sin x=0,0< <1,其中t 表示时间 x 表示弧度,行星运动的轨道x 是t 的函数。也就是说,对每个时刻i t 上述方程有唯一解i x ,运动轨道位置。 国内外相关研究综述随着科学技术的高速发展和计算机的广泛应用 求解形如F(x)=0 的非线性方程组问题越来越多的被提出来了 其中F 是的连续可微函数。例如非线性有限元问题、非线性断裂问题、弹塑性问题、电路问题、电子系统计算以及经济与非线性规划问题等都可转化为非线性方程组的求解问题。只要包含有未知函数及其导函数的非线性项的微分方程,无论是用差分方法或有限元方法,离散化 实验报告一:实验题目 一、 实验目的 掌握求解非线性方程根的二分法、简单迭代法和牛顿迭代法,并通过数值实验比较两种方法的收敛速度。 二、 实验内容 1、编写二分法、牛顿迭代法程序,并使用这两个程序计算 02)(=-+=x e x x f 在[0, 1]区间的解,要求误差小于 4 10- ,比较两种方法收敛速度。 2、在利率问题中,若贷款额为20万元,月还款额为2160元,还期为10年,则年利率为多少?请使用牛顿迭代法求解。 3、由中子迁移理论,燃料棒的临界长度为下面方程的根cot x =(x 2?1)/2x ,用牛顿迭代法求这个方程的最小正根。 4、用牛顿法求方程f (x )=x 3?11x 2+32x ?28=0的根,精确至8位有效数字。比较牛顿迭代法算单根和重根的收敛速度,并用改进的牛顿迭代法计算重根。 三、 实验程序 第1题: 02)(=-+=x e x x f 区间[0,1] 函数画图可得函数零点约为0.5。 画图函数: function Test1() % f(x) 示意图, f(x) = x + exp(x) - 2; f(x) = 0 r = 0:0.01:1; y = r + exp(r) - 2 plot(r, y); grid on 二分法程序: 计算调用函数:[c,num]=bisect(0,1,1e-4) function [c,num]=bisect(a,b,delta) %Input –a,b 是取值区间范围 % -delta 是允许误差 %Output -c 牛顿迭代法最后计算所得零点值 % -num 是迭代次数 ya = a + exp(a) - 2; yb = b + exp(b) - 2; if ya * yb>0 return; end for k=1:100 c=(a+b)/2; yc= c + exp(c) - 2; if abs(yc)<=delta a=c; b=c; elseif yb*yc>0 b=c; yb=yc; else a=c; ya=yc; end if abs(b-a) 淮海工学院实验报告书 课程名称:数学实验 实验名称:线性方程组的数值解法与非线性方程求解班级数学091 姓名:耿萍学号:090911107 日期:2012.4.27 地点数学实验室 指导教师:曹卫平成绩: 数理科学系 1.实验目的: (1)掌握线性方程组的常用数值解法,包括高斯消去法、LU分解法以及校正法。 (2)体验数值计算的时间复杂度和计算规模的关系。 (3)加深对数值计算误差的理解。 (4)学习使用迭代法等算法,求解非线性方程。 (5)学习如何使用MATLAB解非线性方程组和方程组。 2.实验内容:、 (1)输电网络:一种大型输电网络可简化为图所示电路,其中R1,R2,…,Rn表示负载电阻,r1,r2,…,rn表示线路内阻,I1,I2,…,In表示负载上的电流,设电源电压为V。 1)列出求各负载电流I1,I2,…,In的方程; 2)设R1=R2=…=Rn=R,r1=r2=…=rn=r,在r=1,R=6,V=18,n=10的情况求I1,I2,…,In及总电流I0。 (2)种群的的繁殖与稳定收获:种群的数量因素因繁殖而增加,因自然死亡而减少,对于人工饲养的种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应维持不变。种群因雌性个体的繁殖而改变,为方便起见一下种群数量均指其中的雌性。种群年龄记作bk(每个雌性个体一年繁殖的数量),自然存活率记作sk(=1-dk,dk为一年的死亡率),收获量记作hk,则来年年龄k的种群数量xk应为x1=cigmabkxk,xk+1=skxk-hk (k=1,2,3,…,n-1)。要求各个年龄的种群数量每年维持不变就 数值分析中求解非线性方程的MATLAB求解程序(6种) 1.求解不动点 function [k,p,err,P]=fixpt(g,p0,tol,max1) %求解方程x=g(x) 的近似值,初始值为p0 %迭代式为Pn+1=g(Pn) %迭代条件为:在迭代范围内满足|k|<1(根及附近且包含初值)k为斜率 P(1)=p0; for k=2:max1 P(k)=feval(g,P(k-1)); err=abs(P(k)-P(k-1)); relerr=err/(abs(P(k))+eps); p=P(k); if (err if b-a 第六章非线性方程的数值解法习题解答 填空题: 1. 求方程()x f x =根的牛顿迭代格式是__________________。 Ans:1()1()n n n n n x f x x x f x +-=- '- 2.求解方程 在(1, 2)内根的下列迭代法中, (1) (2) (3) (4) 收敛的迭代法是(A ). A .(1)和(2) B. (2)和(3) C. (3)和(4) D. (4)和(1) 3.若0)()(,故迭代发散。 以上三中以第二种迭代格式较好。 2、设方程()0f x =有根,且'0()m f x M <≤≤。试证明由迭代格式1()k k k x x f x λ+=- ) 实验名称: 实验五 线性方程组的数值解法 指导教师: 数值分析实验组 实验时数: 2 实验设备:安装了Matlab 、C ++、VF 软件的计算机 实验日期:2014年 月 日 实验地点: 第五教学楼北802或902 实验目的: 1. 掌握线性方程组的迭代法和直接法的基本思想和基本步骤。 2. 理解各类数值解法的优缺点,并能自行编程求解。 3. 认识迭代法收敛的含义以及迭代法初值和方程组系数矩阵性质对收敛速度的影响,了解求解病态线性方程组的方法。 实验准备: 1. 在开始本实验之前,请回顾教科书的相关内容; 2. 需要一台准备安装Windows XP Professional 操作系统和装有数学软件的计算机。 实验内容及要求 A 题 考虑方程组b Hx =的求解,其中系数矩阵H 为Hilbert 阵, n j i j i h h H j i n n j i ,,2,1,,1 1 ,)(,, =-+= =? 这是一个著名的病态问题。通过首先给定解(例如取各个分量均为1)再计算出右端的办法给出确定的问题。 (1) 选择问题的维数为6,分别用列主元Gauss 消去法、Jacobi 迭代法、Gauss-Seidel 迭代法和SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何? (2) 逐步增大问题的维数,仍然用上述方法来解它们,计算的结果如何?计算的结果说明了什么?分析产生结果的原因。 说明:实验过程应包括对问题的简要分析、求解方法、求解步骤、程序及其必要的图表等内容。 实验过程: 本实验所选题为A 题 实验分析:b Hx =,H 矩阵可由Matlab 直接给出,为了设定参考解,首先设x 为分量全 为1的向量,求出b ,然后将H 和b 作为已知量,求x ,与设定的参考解对比。 对于列主元Gauss 消去法,Jacobi 迭代,Gauss-Seidel 迭代,SOR 迭代法,去迭取迭代初值 实验报告一:实验题目 一、 实验目的 掌握求解非线性方程根的二分法、简单迭代法和牛顿迭代法,并通过数值实验比较两种方法的收敛速度。 二、 实验内容 1、编写二分法、牛顿迭代法程序,并使用这两个程序计算02)(=-+=x e x x f 在[0, 1]区间的解,要求误差小于 4 10- ,比较两种方法收敛速度。 2、在利率问题中,若贷款额为20万元,月还款额为2160元,还期为10年,则年利率为多少?请使用牛顿迭代法求解。 3、由中子迁移理论,燃料棒的临界长度为下面方程的根,用牛顿迭 代法求这个方程的最小正根。 4、用牛顿法求方程 的根,精确至8位有效数字。比较 牛顿迭代法算单根和重根的收敛速度,并用改进的牛顿迭代法计算重根。 三、 实验程序 第1题: 02)(=-+=x e x x f 区间[0,1] 函数画图可得函数零点约为0.5。 画图函数: f un cti on Te st1() % f(x ) 示意图, f(x) = x + exp (x) - 2; f(x) = 0 r = 0:0.01:1; y = r + e xp(r) - 2 p lot(r, y); gri d on 二分法程序: 计算调用函数:[c,n um ]=bisec t(0,1,1e-4) fu ncti on [c,num ]=bisect (a,b,de lt a) %Inp ut –a,b 是取值区间范围 % -de lta 是允许误差 %O utput -c牛顿迭代法最后计算所得零点值 % -num 是迭代次数 ya = a + exp(a) - 2; yb = b + e xp(b) - 2;数值分析讲义线性方程组的解法
第六章非线性方程的数值解法习题解答
数值分析非线性方程求根实验
数值分析实验2_求解线性方程组直接法
非线性方程的数值解法
数值分析求解非线性方程根的二分法,简单迭代法和牛顿迭代法
线性方程组的数值解法与非线性方程求解
数值分析中求解非线性方程的MATLAB求解程序(6种)
第六章非线性方程的数值解法习题解答
数值分析— 线性方程组的数值解法
数值分析求解非线性方程根的二分法、简单迭代法和牛顿迭代法