实验报告二 一元非线性方程的解法..

合集下载

第二章-一元非线性方程的数值解法

第二章-一元非线性方程的数值解法

第二章 一元非线性方程的数值解法在科学和工程计算中,如电路和电力系统计算、非线性微分和积分方程、非线性规划、非线性力学等众多领域中,经常会遇到求解非线性方程的问题.非线性科学是当今科学发展的一个重要的研究方向,而非线性方程的数值解法又是其中不可缺少的内容.本章主要讨论一元非线性方程0)(=x f 的数值解法,其中R x ∈,)(x f 为x 的非线性函数. 在方程中,若函数)(x f 是x 的n 次多项式,则称方程为多项式方程或代数方程:023368=-+-x x x;若函数)(x f 是超越函数(自变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。

如指数函数、对数函数、三角函数和反三角函数等都是超越函数),则称方程为超越方程:例06tan3=--xe x π使()0f x =的*x 称为方程0)(=x f 的根,又称为函数)(x f 的零点.若)(x f 可分解为)(x f =)()(*x g x x m -,其中m 为正整数,且0)(*≠xg .当m =1时,称*x 为方程0)(=x f 的单根,而当1>m 时,则称*x 为方程0)(=x f 的m 重根,或称*x 为)(x f 的m 重零点.设*x 为)(x f 的m 重零点,且)(x g 充分光滑,则0)()()(*)1(**==='=-x f x f x f m ,0)(*)(≠x f m .根的求解:对于n 次多项式方程,当次数4≤n 时,多项式方程的根可用求根公式表示:2,1=n 时方程的根是我们已经熟知的,4,3=n 时虽然有求根公式,但已不适合用于数值计算;而次数5≥n 时,就不能用公式表示多项式方程的根了.因此,对于次数3≥n 的多项式方程和一般连续函数方程,在实际应用时,通常并不需要得到方程根的解析表达式,只要得到满足一定精度的数值近似根就可以了.对于非线性方程0)(=x f ,求其近似数值根一般分为四步:(1) 判断根的存在性:判断方程0)(=x f 是否有根若有,有几个(2) 确定根的分布范围:分析并估计方程根的分布情况,并将每一个根用相应区间分隔开,即确定方程根的有根区间;(3) 根的初始化:确定根的初始近似值(称之为初始近似根);(4) 根的精确化:对根的某个初始近似值设法逐步精确化,使其满足一定的精度要求.由以上步骤可以看出,求非线性方程数值近似根的方法一般为迭代法.第一节 初始近似根的确定一、有根区间的确定设)(x f 为区间],[b a 上的连续函数,若0)()(<b f a f ,由闭区间上连续函数的性质(根的存在定理)可知,方程0)(=x f 在),(b a 内至少存在一个实根,此时则称],[b a 为方程0)(=x f 的有根区间(Rooted Inter-val).此外我们也可以借助某些数学软件(如MathCAD, Mathematics, Matlab 等)描绘出)(x f 的图像,直观地了解方程0)(=x f 根的分布情况.因此,我们可用试探的办法或根据函数的图象,确定出根的分布范围,即将函数)(x f 的定义域分成若干个只含一个实根的区间. 例 试确定方程01)(6=--=x x x f 的有根区间.解 由于16)(5-='xx f ,当561>x 时0)(>'x f ,则)(x f 为严格单调增函数;而当561<x 时0)(<'x f ,则)(x f 为严格单调减函数.又由于0615<⎪⎪⎭⎫ ⎝⎛f ,)(>±∞f ,所以方程01)(6=--=x x x f 只有两个实根.经进一步分析可知,0)2()1(<f f ,则方程在[1,2]内有一个实根;0)0()1(<-f f ,则方程的另一个实根在[-1,0]内.下面介绍的几种求方程的根的常用数值解法,即二分法,牛顿迭代法,都是将方程的初始近似根逐步精确化的方法.第二节 二分法二分法也称为区间对分法,是解非线性方程最直观、最简单的方法.为讨论方便,不妨设函数)(x f 在],[b a 上连续,严格单调,且0)()(<b f a f ,则方程0)(=x f 在区间],[b a 内有且仅有一个实根*x .二分法的基本思想:将方程的有根区间平分为两个小区间,然后判断根在哪个小区间,舍去无根小区间,而后再把有根的小区间一分为二,判断根属于哪个更小的区间,如此反复,直到求出满足精度要求的近似根.二分法的具体计算过程如下: 1. 取区间],[b a 的中点)(21b a x +=,计算区间中点函数值)(0x f ,并判断:若0)()(0<x f a f ,则根],[0x a x∈*,令011,x b a a ==,则新的有根区间为],[11b a ;若0()0f x =,则0x 即为所求根*x ;若0)()(0>xf a f ,则根],[0b x x ∈*,令b b x a ==101,,则新的有根区间为],[11b a .2. 对有根区间11[,]a b 施行同样的操作,即取中点)(21111b a x +=,再将11[,]a b 分为两个子区间11[,]a x 和11[,]x b ,计算)(1a f 和)(1x f ,若)()(11<x f a f则11[,]xa x *∈,令1212,x b a a == ;否则11[,]x x b *∈,令1212,b b x a ==.这样又确定了一个有根区间22[,]a b ,其长度是区间11[,]a b 长度的一半.如此反复,便得到一系列有根区间⊃⊃⊃⊃⊃],[],[],[],[2211n n b a b a b a b a显然,区间],[n nb a 的长度为n n n n n ab a b a b 2211-==-=---当∞→n 时,上式的极限为0,区间[,]kka b 最终必收敛于一图 二分法示意图点, 该点就是所求方程的根*x .我们取二分后的最后的有根区间],[n nb a 的中点n x 作为方程的根*x 的近似根2nn n b a x +=,],[n n nb a x∈,其误差估计式为≤-||*n x x2n n a b -12+-=n ab 当∞→n 时,取≤-||*n x x02→-nn a b ,即*x x n →. 对预先给定的精度0>ε(即指定的绝对误差限ε),可以用以下方式结束二分法: 当ε<-++||11n n a b 时,必有ε<-*||n x x ,结束二分法计算,取n x x≈*;二分法的计算步骤如下:(1) 输入有根区间的端点b a ,及预先给定的精度ε; (2) 2/)(:b a x +=; (3) 若0)()(<x f a f ,则x b =:,转向(4);否则x a =:,转向(4);(4) 若ε<-a b ,则输出方程满足精度的根x ,结束;否则转向(2). 二分法的优点: 1、是算法简单;2、对函数的性质要求较低(只要连续即可);3、收敛性可保证. 二分法的缺点: 1、收敛速度很慢;2、不能求偶数重根,原因在于当方程有偶数重根时所分区间端点处函数值同号,而将该区间舍去造成失根现象.因此.在实际应用时,可用它求方程根的初始近似值.例 用二分法求方程01)(23=-+=x xx f 在]1,0[上的根(取310-=ε).解(1) 这里1,0==b a ,01)1(,01)0(>=<-=f f ,得有根区间]1,0[;(2) 计算0125.0)5.0(,5.02100<-==+=f x ,得有根区间]1,5.0[;(3) 计算01563.0)75.0(,75.0215.02<-==+=f x 得有根区间]1,75.0[;如此继续,直到3110--<-k kx x时停止,计算结果见表:表由表知3980.0009810x x --=<所以原方程在]1,0[内的根*90.75489xx ≈≈.第三节 牛顿迭代法及其收敛性迭代法在数学的各个分支都有着重要的应用.本节主要讨论迭代法在非线性方程求根的应用. 一、迭代法的基本思想迭代法的基本思想是:将方程中()0f x =化为下列等价形式)(x g x = 若要求*x 满足0)(*=xf ,则只需求出)(**xg x =即可;反之也是如此,则称*x 为函数)(x g 的一个不动点,求函数)(x f 的零点就等价于求函数)(x g 的不动点.在有根区间内选一个初始近似值0x ,然后按构造公式,2,1,0),(1==+k x g x k k可得到一个数列,,,,,210k x x x x称{}kx 为迭代序列,而称式中的)(x g 为迭代函数.如果迭代序列{}kx 是收敛的,且收敛于*x ,则当)(x g 连续时,在式两边取极限即得)(**x g x=,即 0)(*=x f从而*x 便是方程的根.但实际计算当然不可能做无穷多步,实用上,当k 充分大时,若ε<--1k k x x就取kx 作为原方程的近似根.这种求根法称为不动点迭代法,或称逐次逼近法(Picard 迭代法).就是一个不动点迭代公式.当迭代公式产生的迭代序列{}kx 收敛时,就称迭代法或迭代公式是收敛的,否则就称为是发散的.二、不动点迭代法的构造我们使用迭代法求解非线性方程时需要解决如下四个问题:(1) 迭代函数的构造;(2) 初始近似根的选取;(3) 迭代序列收敛性分析;(4) 收敛速度和误差分析.三、牛顿迭代法及其收敛性设*x 是一元非线性方程0)(=x f 的根,函数)(x f 在*x 的某邻域内连续可微,kx 是某个迭代近似根,且0)(≠'k x f .把)(x f 在点k x 处进行一阶泰勒展开,可得))(()()(k k k x x x f x f x f -'+≈则方程0)(=x f 可近似表示为 0))(()(=-'+kkkx x x f x f 这是一个线性方程,求解得)()(k k k x f x f x x '-= 将其右端项作为新的迭代值1+k x ,则可得迭代公式)()(1k k k k x f x f x x '-=+ ,2,1,0=k这就是牛顿迭代法(Newton ’s Method),称为牛顿迭代公式.如图所示,曲线)(x f y =与x 轴的交点*x就是方程0)(=x f 的根.设x k是方程0)(=x f 的一个近似根,过曲线y f x =()上的点))(,(k k k x f x P 作切线,切线与x 轴的交点为x k +1,切线的方程为y f x f x x x k k k =+'-()()()设切线点与x 轴的交点为(,)x k +10,若0)(≠'kx f ,则可得牛顿迭代公式)()(1k k k k x f x f x x'-=+ ,2,1,0=k 因此,牛顿迭代法又称为切线法(Tangent Method).牛顿迭代法的几何意义:用曲线)(x f y =在点))(,(kkx f x 处的切线与x 轴的交点的横坐标1+k x 来代替曲线)(x f y =与x轴交点的横坐标*x .牛顿迭代法的计算步骤为: ()1 给出初始近似根0x 及精度ε;()2 计算)()(:0001x f x f xx '-=;()3 对于给定的允许误差ε,若ε<-01x x, 转向()4;否则10:x x=,转向()2;()4 输出满足精度的根1x ,结束.图 切线法示意图例 用牛顿迭代法求方程01=-xxe 在5.0=x 附近的根,精度为810-=ε.解 这里1)(-=xxe x f ,x x xe e x f +=')(,相应的牛顿迭代公式为k xk k xk x x k k k x e x x e x e e x x x kkkk+--=+--=-+111, ,2,1,0=k取5.00=x ,迭代结果见表,易见8341000001000.0||-<=-x x故 567143290.04≈≈*x x迭代了4次就得到了较满意的结果. 例 用牛顿法计算3. 解 令3=x ,则032=-x ,即求3等价于求方程3)(2=-=x x f的正实根.因为x x f 2)(=',由牛顿迭代公式得)3(212321kk k k k k x x x x x x +=--=+, ,2,1,0=k取初值5.10=x,得75.1)3(21001=+=x x x , 732142857.0)3(21112=+=x x x 732050815.1)3(21223=+=x x x ,表732050808.1)3(21334=+=x x x 732050808.1)3(21445=+=x x x732050808.13≈∴这个迭代公式的意义在于通过加法和乘除法实现开方运算,这是在计算机上作开方运算的一个方法.。

非线性方程解法二分法实验报告

非线性方程解法二分法实验报告

第七章非线性方程解法⒈二分法考察有根区间[a, b],取中点x0=(b+a)/2 将它分为两半,假设中点x0不是f(x)的零点,然后进行根的搜索,即查找f(x0)与f(a)是否同号,如果确系同号,说明所求的根x*在x0的右侧,这是令a1= x0,b1=b;否则x*必在x0的左侧,这是令a1=a,b1=x0,不管出现哪一种情况,新的有根区间[a1, b1]的长度仅为[a, b]的一半。

.重复以上做法得新近似根x1,…这样不断将区间分半,得到一系列区间[an , bn],和近似根(区间中点)nx,n=0,1,2,3…,nx误差为(b-a)/2n+1.这样的方法称为二分法。

下面是一个关于二分法的例子。

例1求f(x)=x3- x-1=0在区间[1,1.5]内的一个实根,要求准确到小数点后的第二位.这里a=1,b=1.5,而f(a)<0,f(b)>0。

取[a,b]的中点x0=1.25,将区间二等分,由于f(x0 )<0, 既f(x0 )与f(a)同号,故所求的根x*必在x0 右侧,这是应令a1=x0 =1.25, b1=b=1.5,而得到新的有根区间[a1,b1],这样继续结果如下表:x6.实际上x5就有三位有效数字了.二分法实验(1)上机题目:二分法的应用实验目的:熟悉二分法并在计算机上实现实验要求:①上机前充分准备,复习有关内容,写出计算步骤,查对程序;②完成实验后写出完整的实验报告,内容应该包括:所用的算法语言,算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等;③用编好的程序在Matlab环境中执行。

算法说明:①找出计算f(x)在有限根区间[a, b]端点的值,f(a),f(b)②计算计算f(x)在区间中点(2ba+)处的值f(2ba+) .③判断若f(2ba+)=0,则2ba+即是根,计算过程结束,否则检验若f(2ba+)f(a)<0,则以2ba+代替b,否则以2ba+代替a.反复执行步骤②和步骤③,直到区间[a, b]长度小于允许误差ξ,此时中点2ba+即为所求近似根。

第二章-一元非线性方程的数值解法

第二章-一元非线性方程的数值解法
从而 便是方程(5.0.1)的根.但实际计算当然不可能做无穷多步,实用上,当 充分大时,若
就取 作为原方程的近似根.这种求根法称为不动点迭代法,或称逐次逼近法(Picard迭代法).(5.3.2)就是一个不动点迭代公式.当迭代公式产生的迭代序列 收敛时,就称迭代法或迭代公式是收敛的,否则就称为是发散的.
二、不动点迭代法的构造
我们使用迭代法求解非线性方程(5.0.1)时需要解决如下四个问题:(1) 迭代函数的构造;(2) 初始近似根的选取;(3) 迭代序列收敛性分析;(4) 收敛速度和误差分析.
三、牛顿迭代法及其收敛性
设 是一元非线性方程 的根,函数 在 的某邻域内连续可微, 是某个迭代近似根,且 .把 在点 处进行一阶泰勒展开,可得
由以上步骤可以看出,求非线性方程数值近似根的方法一般为迭代法.
第一节初始近似根的确定
一、有根区间的确定
设 为区间 上的连续函数,若 ,由闭区间上连续函数的性质(根的存在定理)可知,方程 在 内至少存在一个实根,此时则称 为方程 的有根区间(Rooted Inter-val).
此外我们也可以借助某些数学软件(如MathCAD, Mathematics, Matlab等)描绘出 的图像,直观地了解方程 根的分布情况.因此,我们可用试探的办法或根据函数的图象,确定出根的分布范围,即将函数 的定义域分成若干个只含一个实根的区间.
输出满足精度的根 ,结束.
例用牛顿迭代法求方程 在 附近的根,精度为 .
解这里 , ,相应的牛顿迭代公式为

0
1
0.
2
3
4
,
取 ,迭代结果见表,易见

迭代了4次就得到了较满意的结果.
例用牛顿法计算 .

数值分析实验报告——非线性方程求根

数值分析实验报告——非线性方程求根

数值分析实验报告——非线性方程求根一、实验目的:1.掌握求解非线性方程的常用方法;2.了解非线性方程求根问题的数值解法;3.熟悉使用数值分析软件进行非线性方程求根的实现。

二、实验原理:非线性方程指的是形如f(x)=0的方程,其中f(x)是一个非线性函数。

非线性方程求根的常用方法包括二分法、割线法和牛顿法等。

其中,二分法是通过不断缩小区间范围来逼近方程的解;割线法是通过使用割线来逼近方程的解;牛顿法则是通过使用切线来逼近方程的解。

对于给定的非线性方程,可以根据实际情况选择合适的方法进行求根。

三、实验内容:1.编写求解非线性方程的函数,包括二分法、割线法和牛顿法;2.使用编写的函数求解给定的非线性方程,比较各个方法的收敛速度和精确程度;3.根据实际情况分析和选择合适的方法进行求根。

四、实验步骤:1.针对给定的非线性方程,编写二分法的函数实现:(1)首先确定方程的解存在的区间;(2)根据方程的解存在的区间,使用二分法逐步缩小区间范围;(3)根据设定的精度要求,不断循环迭代,直至满足要求或达到迭代次数限制;2.针对给定的非线性方程,编写割线法的函数实现:(1)首先需要确定方程的解存在的初始点;(2)根据方程的解存在的初始点,根据割线的定义进行迭代;(3)设定迭代的精度要求和限制次数,结束迭代;3.针对给定的非线性方程,编写牛顿法的函数实现:(1)首先需要确定方程的解存在的初始点;(2)根据方程的解存在的初始点,根据牛顿法的定义进行迭代;(3)设定迭代的精度要求和限制次数,结束迭代;4.根据给定的非线性方程,分别使用二分法、割线法和牛顿法进行求解,并比较各个方法的收敛速度和精确程度;5.分析实际情况,选择合适的方法进行求解。

五、实验结果:4.通过比较,发现割线法和牛顿法的收敛速度较快,精确程度较高,因此选择割线法进行求解。

六、实验总结:通过本次实验,我掌握了求解非线性方程的常用方法,并使用数值分析软件实现了二分法、割线法和牛顿法。

第二章 一元非线性方程的解法

第二章  一元非线性方程的解法

由于f(x)是连续函数,故必存在 x* ∈[a, b] 使
f(x*)=0 于是x*为方程 x=g(x)的根。
32
2.3.2 迭代法的收敛条件及误差估计式
其次,证根的惟一性 : 设y*也是方程的根,则x*=g(x*), y*=g(y*), |x*- y*|=|g(x*) – g(y*)| = |g′(ξ)(x*- y*)| 微分中值定理, ξ在x*,y*之间 ≤q |x*- y*|
y f(x) b x 0 a x* 假设f(x)在某区间(a,b)内有且仅有一个实根x*,若 b – a较小,则可在(a,b)上任取一点x0作为初始近 似根。一般情形,可用逐步扫描法等。
6
2.1 初始近似根的确定
例2-1:f(x)=x3-x-1=0 由于 f(0)= -1<0, f(∞)>0,
且对于[a,b]上任意初始近似根x0 ,迭代公式 xk+1=g(xk)均收敛于方程的根x*;还有误差估计式
k q q * x xk xk xk 1 x1 x0 1 q 1 q
31
2.3.2 迭代法的收敛条件及误差估计式
证明: 先证根的存在性。 记 f(x)=x-g(x), 由条件(1)有 a≤g(a)、g(b)≤b , 于是 f(a)=a-g(a)≤0, f(b)=b-g(b)≥0,
故方程至少有一正实根。设从x=0 出发,取
h=0.5为步长向右扫描,得可见在(1,1.5)内 有根。 x 0 0.5 1.0 1.5 f(x) ― ― ― +
2 f ( x) 3x 1 0 (1 x 1.5)
所以f(x)在区间[1,1.5]上单调连续,因而在
(1,1.5)内有且仅有一个实根,故可在[1 ,1.5]上 任取一点做初始近似根。 7

实验一非线性方程组求解实验报告

实验一非线性方程组求解实验报告

计算方法实验报告专业班级:姓名:学号:实验成绩:1.【实验题目】非线性方程组求解2.【实验目的】(1).掌握二分法、迭代法、牛顿迭代法求方程近似根的基本思想与原理。

(2).掌握常用迭代算法的程序实现。

3.【实验内容】迭代法是求解非线性方程的基本方法,其构造方法可以有多种多样,但关键是怎样才能使迭代收敛且有较快的收敛速度。

考虑一个简单的代数方程,针对该方程,可以构造多种迭代法,如:取初始值,取,分别用以上迭代格式作实验,记录各算法的迭代过程4. 【实验要求】(1)取定某个初始值,按方案1~3对非线性方程求根,它们的收敛性如何?重复选取不同的初始值,反复实验。

请读者自行设计一种比较形象的记录方式(如利用Matlab的图形功能),分析三种迭代法的收敛性与初值选取的关系。

(2)对三个迭代格式的某一种,分别取不同的初始值进行迭代,结果如何?试分析迭代法对不同的初值是否有差异?(3)对代数方程,分别用方案1 用二分法求解;方案2 用牛顿法求解;5. 【算法描述】二分法算法步骤1)计算有根区间的端点a,b及预先给定的精度e。

2)计算中点(a+b)/2。

3)若f(x)f(a)<0,则x b,转向4);否则,x a,转向4).⇒⇒4)若b-a<e,则输出满足精度的根x,结束;否则转向2)。

牛顿法迭代法的计算步骤x01)给出初始近根及精度e。

2)计算。

x x x x f f 1000)(')(⇒-3)若|-|<e ,则转向4);否则转向2)。

x 1x 0x x 01⇒4)输出满足精度的根,结束。

x 16. 【源程序(带注释)】二分法#include<stdio.h>#include<math.h>#include<conio.h>#include<windows.h>float f(float x){float a;a=x*x*x-x-1;return a;} /*求函数值,如果求其它函数,只需改成其它函数即可*/ main(){float a,b,e,x; /* a,b 分别表示有根区间的左、右端点, e 是精度要求,x 区间中点值*/system("CLS");//清屏printf("对代数方程x^3-x-1=0,分别用\n 方案1 用二分法求解\n");printf(" \n please input data a =");scanf("%f",&a);printf(" \n please input data b=");scanf("%f",&b);if(f(a)*f(b)<0){while(f(x)!=0){x=(a+b)/2;if(f(x)*f(a)<0){b=x;if(fabs(b-a)<0.000001)break;elsecontinue;}else{a=x;if(fabs(b-a)<0.000001)break;else continue;}}printf("\n");x=(b+a)/2;printf("the root of f(x)=0 is x=%f\n",x);}elseprintf("\ not root! afresh input\n"); /*表示[a,b] 区间无根,重新选择有根区间*/getch();return(x);}牛顿法#include<stdio.h>#include<math.h>#include<conio.h>#include<windows.h>#define maxrept 1000 /*最大迭代次数*/float f(float x) {float a;a=x*x*x-x-1;return a; /*函数f(x) */}float df(float x) {return(1+exp(-x)); /* 函数f(x)的导数) (x f ′*/ }float iterate(float x) {float x1;x1=x-f(x)/df(x); /* 牛顿迭代函数iterate(x)=x-f(x) / ) (x f ′*/return(x1);}main() {float x0,x1,d;int k=0;//clrscr();system("CLS");printf("对代数方程x^3-x-1=0,分别用\n方案2 用牛顿法求解\n");printf("\n please input x0="); /* 输入迭代初值x0 */scanf("%f",&x0);printf("\n k xk\n");printf("\ %d %f\n",k,x0);do {k++;x1=iterate(x0);printf(" %d %f\n",k,x1);d=fabs(x1-x0);x0=x1;}while((d>=0.000001)&(k<maxrept));if(k<maxrept)printf("the root of f(x)=0 is x=%f, k=%d\n",x1,k);elseprintf("\n the iteration is failed!\n");getch();}7.【实验结果与分析总结(含运行结果截图)】。

非线性方程实验报告

非线性方程实验报告

2009年——2010年第一学期合肥学院数理系实验报告课程名称:数值分析实验项目:数值积分实验类别:验证性专业班级:08数学与应用数学(2)姓名:卢王菲学号:0807022048 实验地点:7#604实验时间:2009—11-26指导教师:孙梅兰成绩:一.实验目的:理解并掌握二分法、不动点迭代、牛顿切线法及弦截法解非线性方程求根的原理,掌握相应的算法原理,通过计算机解决实验问题二.实验内容:1.求方程01)(3=--=x x x f 在5.1=x 附近的根(精度81021-⨯=),取01x =2. 求方程x x e -=在0.5x =附近的根(精度81021-⨯=),取01x =三 实验方案:利用二分法、不动点迭代、牛顿切线法及弦截法解非线性方程的根,通过计算机解决实验问题。

四. 实验步骤或程序:1. >> f=inline('x^3-x-1');a=1;b=2;dlt=0.5e-5;k=1;while abs(b-a)>dltc=(a+b)/2;if f(c)==0break;elseif f(c)*f(b)<0a=c;else b=c;endfprintf('k=%d,x=%.5f\n',k,c);k=k+1;endk=1,x=1.50000k=2,x=1.25000k=3,x=1.37500k=4,x=1.31250k=5,x=1.34375k=7,x=1.32031k=8,x=1.32422k=9,x=1.32617k=10,x=1.32520k=11,x=1.32471k=12,x=1.32495k=13,x=1.32483k=14,x=1.32477k=15,x=1.32474k=16,x=1.32472k=17,x=1.32471k=18,x=1.324722.>> eps=0.5*10^(-8);dx=1;x0=1;k=0; >> while(dx>eps)k=k+1;x=exp(-x0);dx=abs(x-x0)/(1+abs(x));x0=x;end>> kxk =33x =0.5671五.程序运行结果:1.k=1,x=1.50000k=2,x=1.25000k=3,x=1.37500k=4,x=1.31250k=5,x=1.34375k=6,x=1.32813k=7,x=1.32031k=8,x=1.32422k=9,x=1.32617k=11,x=1.32471k=12,x=1.32495k=13,x=1.32483k=14,x=1.32477k=15,x=1.32474k=16,x=1.32472k=17,x=1.32471k=18,x=1.324722. k =33x =0.5671六.实验总结:通过本次实验本人收获很多。

非线性方程求解实验报告

非线性方程求解实验报告

数学实验报告非线性方程求解一、实验目的1.掌握用 MATLAB 软件求解非线性方程和方程组的基本用法,并对结果作初步分析;2.练习用非线性方程和方程组建立实际问题的模型并进行求解。

二、实验内容题目1【问题描述】(Q1)小张夫妇以按揭方式贷款买了1套价值20万元的房子,首付了5万元,每月还款1000元,15年还清。

问贷款利率是多少?(Q2)某人欲贷款50 万元购房,他咨询了两家银行,第一家银行开出的条件是每月还4500元,15 年还清;第二家银行开出的条件是每年还45000 元,20 年还清。

从利率方面看,哪家银行较优惠(简单假设:年利率=月利率×12)?【分析与解】假设初始贷款金额为x0,贷款利率为p,每月还款金额为x,第i个月还完当月贷款后所欠银行的金额为x i,(i=1,2,3,......,n)。

由题意可知:x1=x0(1+p)−xx2=x0(1+p)2−x(1+p)−xx3=x0(1+p)3−x(1+p)2−x(1+p)−x……x n=x0(1+p)n−x(1+p)n−1−⋯−x(1+p)−x=x0(1+p)n−x (1+p)n−1p=0因而有:x0(1+p)n=x (1+p)n−1p (1)则可以根据上述方程描述的函数关系求解相应的变量。

(Q1)根据公式(1),可以得到以下方程:150p(1+p)180−(1+p)180+1=0设 f(p)=150p(1+p)180−(1+p)180+1,通过计算机程序绘制f(p)的图像以判断解p的大致区间,在Matlab中编程如下:for i = 1:25t = 0.0001*i;p(i) = t;f(i) = 150*t*(1+t).^180-(1+t).^180+1;end;plot(p,f),hold on,grid on;运行以上代码得到如下图像:f(p)~p关系曲线图通过观察上图可知p∈[0.002,0.0022]。

Solution1:对于p∈[0.002,0.0022],采用二分法求解,在Matlab 中编程如下:clear;clc;x0=150000;n=180;x=1000;p0=0.002;p1=0.0022;while (abs(p1-p0)>1e-8)f0=x0*(1+p0).^n+x*(1-(1+p0).^n)/p0;f1=x0*(1+p1).^n+x*(1-(1+p1).^n)/p1;p2=(p0+p1)/2;f2=x0*(1+p2).^n+x*(1-(1+p2).^n)/p2;if (f0*f2>0 && f1*f2<0)p0=p2;elsep1=p2;end;end;p0结果得到p0=0.00208116455078125=0.2081%.所以贷款利率是0.2081%。

非线性方程求解数值分析上机实验报告

非线性方程求解数值分析上机实验报告

实验报告一题目:非线性方程求解摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。

本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。

前言:(目的和意义)掌握二分法与Newton法的基本原理和应用。

数学原理:对于一个非线性方程的数值解法很多。

在此介绍两种最常见的方法:二分法和Newton 法。

对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。

重复运行计算,直至满足精度为止。

这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式产生逼近解x*的迭代数列{x k},这就是Newton法的思想。

当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。

另外,若将该迭代公式改进为其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。

程序设计:本实验采用Matlab的M文件编写。

其中待求解的方程写成function的方式,如下function y=f(x);y=-x*x-sin(x);写成如上形式即可,下面给出主程序。

二分法源程序:clear%%%给定求解区间b=1.5;a=0;%%%误差R=1;k=0;%迭代次数初值while (R>5e-6) ;c=(a+b)/2;if f12(a)*f12(c)>0;a=c;elseb=c;endR=b-a;%求出误差k=k+1;endx=c%给出解Newton法及改进的Newton法源程序:clear%%%% 输入函数f=input('请输入需要求解函数>>','s')%%%求解f(x)的导数df=diff(f);%%%改进常数或重根数miu=2;%%%初始值x0x0=input('input initial value x0>>');k=0;%迭代次数max=100;%最大迭代次数R=eval(subs(f,'x0','x'));%求解f(x0),以确定初值x0时否就是解while (abs(R)>1e-8)x1=x0-miu*eval(subs(f,'x0','x'))/eval(subs(df,'x0','x'));R=x1-x0;x0=x1;k=k+1;if (eval(subs(f,'x0','x'))<1e-10);breakendif k>max;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值ss=input('maybe result is error,choose a new x0,y/n?>>','s');if strcmp(ss,'y')x0=input('input initial value x0>>');k=0;elsebreakendendendk;%给出迭代次数x=x0;%给出解结果分析和讨论:1.用二分法计算方程在[1,2]内的根。

非线性方程的数值计算方法实验

非线性方程的数值计算方法实验

非线性方程的数值计算方法实验《数值方法》实验报告1【摘要】在利用数学工具研究社会现象和自然现象,或解决工程技术等问题?0的求解问题,时,很多问题都可以归结为非线性方程f(x)无论在理论研究方面还是在实际应用中,求解非线性方程都占了非常重要的地位。

综合当前各类非线性方程的数值解法,通过比较分析,二分法,迭代法,牛顿―拉夫森方法,迭代法的收敛阶和加速收敛方法,以上的算法应用对某个具体实际问题选择相应的数值解法。

关键词非线性方程;二分法;迭代法;牛顿-拉夫森法;割线法等。

一、实验目的通过本实验的学习,应掌握非线性方程的数值解法的基本思想和原理,深刻认识现实中非线性方程数值的意义;明确代数精度的概念;掌握二分法、不动点迭代法、牛顿迭代法、割线法等常用的解非线性方程的方法;培养编程与上机调试能力。

二、实验原理二分法:单变量函数方程: f(x)=0其中,f(x)在闭区间[a,b]上连续、单调,且f(a)*f(b)<0,则有函数的介值定理可知,方程f(x)=0在(a,b)区间内有且只有一个解x*,二分法是通过函数在区间端点的符号来确定x*所在区域,将有根区间缩小到充分小,从而可以求出满足给定精度的根x*的近似值。

下面研究二分法的几何意义:设a1=1, b1=b, 区间?a1,b1?,中点x1=a1?b1及f?x1?,若f?x1?=0,则x*=x1,2若 f(a1)*f(x1)<0,令a2=a1,b2=x1,则根x*? [a2,b2]中,这样就得到长度缩小一半的有根区间[a2,b2],若 f(b1)*f(x1)<0,令a2=x1,b2=b1,则根x*? [a2,b2]中,这样就得到长度缩小一半的有根区间[a2,b2],即f(a2)f(b2)<0,此时b2-a2=b1?a1,对有根区间[a2,b2]重复上述步骤,即分半求中点,判断中2电处符号,则可得长度有缩小一半的有根区间[a2,b2],《数值方法》实验报告2如图所示:重复上述过程,第n步就得到根x*的近似序列?xn?及包含x*的区间套,如下:(1)[a1,b1]?[a2,b2]?....[an,bn]?... (2)f(an)f(bn)?0,x*?[an,bn] (3)an-bn=1=…=2(an?1?bn?1)(4) xn?b?a 2n?1an?bnb?a,且|x*-xn|?n?1 (n=1,2,3…..) 22显然limxn,且xn以等比数列的收敛速度收敛于x*,因此用二分法求f(x)=0的实根x*可以达到任意指定精度。

解方程的基本方法与步骤

解方程的基本方法与步骤

解方程的基本方法与步骤解方程是数学中的重要内容,它是研究方程的根或变量的取值的过程。

正确应用解方程的方法和步骤,能够帮助我们解决各种问题,从而推进数学的发展。

本文将介绍解方程的基本方法与步骤,帮助读者更好地理解和应用解方程的技巧。

一、一元一次方程的解法一元一次方程是形如ax + b = 0的方程,其中a和b是已知常数,x 是未知数。

解一元一次方程的方法有多种,下面将介绍两种常用的方法。

1.1 直接法直接法是最常见和最简便的解一元一次方程的方法。

以ax + b = 0为例,具体步骤如下:步骤一:将方程两边的常数项移到一个侧,使方程等号两边的系数相等。

得到ax = -b。

步骤二:将方程两边同时除以x的系数a,得到x = -b/a。

1.2 代入法代入法是通过代入一个已知数的值来求解方程的方法。

以ax + b = 0为例,具体步骤如下:步骤一:选取一个已知数,用该已知数代替方程中的未知数,得到一个新的方程。

步骤二:解这个新方程,得到一个值。

步骤三:将求得的值代入原方程中,验证是否满足原方程。

如果满足原方程,即为方程的解;如果不满足,则选取其他已知数进行代入。

二、一元二次方程的解法一元二次方程是形如ax^2 + bx + c = 0的方程,其中a、b和c是已知常数,x是未知数。

解一元二次方程的方法有多种,下面将介绍两种常用的方法。

2.1 因式分解法因式分解法是通过将方程因式分解为两个一元一次方程的乘积来求解方程的方法。

以ax^2 + bx + c = 0为例,具体步骤如下:步骤一:对方程进行因式分解,得到(ax + m)(nx + n) = 0的形式。

步骤二:令括号中的每个一元一次方程等于零,解出x的值,得到x1和x2(可能重根)。

2.2 公式法公式法是通过利用一元二次方程的求根公式来求解方程的方法。

以ax^2 + bx + c = 0为例,具体步骤如下:步骤一:计算方程的判别式D = b^2 - 4ac。

一元非线性方程的解法

一元非线性方程的解法

2.1 二分法
基本假设 : 在闭区间 [a,b] 上, f (x) 连续且 f (a) f (b) 0
2.1.1 二分法的计算步骤
常用终止原则为:
当计算到bk
ak

2
时终止计算, 取
~x

1 2
ak
bk
2.1.2 二分法的收敛性与事前误差估计
因为 bk
ak

1
2 bk1
f (x)=0 在 内的唯一根。
证 反设存在 ~x , ~x x且 f (~x ) 0,即 ~x g(~x )
则 0 | ~x x || g(~x ) g(x ) |
L| ~x x || ~x x |
矛盾。所以结论成立。 2) 迭代函数在 x* 附近李普希兹连续从而收敛的
(2 4)
| xks xks1 | L| xks1 xks2 | Ls | xk xk1 |
注 虽然定理2.1的条件是充分条件,但其条件 并不很强,实际上,我们易证如下命题。
命题2.2 若在区间 [a,b] 内 g[x] 1 ,则对任
何 x0 [a,b],迭代格式 xk1 g(xk ) 不收敛。
2.2.3 迭代法的误差估计
| xk1 xk | L| xk xk1 | (k 1,2,)
2.2 一般迭代法
2.2.1 迭代法的算法思想
对 f (x) 0
(2 2)
迭代法的算法思想为:
(1) 把(2-2)等价变换为如下形式
x g(x)
(2 2)
从而 x g (x ) , x* 称为 g(x) 的不动点
(2) 建立迭代格式
xk 1 g ( xk )

实验报告二 一元非线性方程的解法

实验报告二 一元非线性方程的解法
2-2 分析应用题
用二分法求方程 f (x) sin x x2 0 和 g(x) ex sin x 0 根的近似值,使误差不超过 4
102 ,输出每次二分之后解的近似结果以及二分的次数,其中 g(x) 0 的根只需求最接近
原点的那个根。
2-3 分析应用题
已知方程 3x2 ex 0 有以下三种迭代格式,分析三种迭代格式的收敛性,求出迭代精度
Newton 法: [x,n]=NewtonMethod(x0,epsi,Nmax) Function[p0,err,k,y]=Newton(f,df,p0,delta,epsilon,max1) For k=1:mak1
P1=p0-feval(f,p0)/feval(df,p0); Err=abs(p1-p0); Relerr =2*err/(abs(p1)+delta); Pp(k)=p1; P0=p1; Y=feval(f,p0); If(err<delta)|(relerr<delta)|(abs(y)<epsilon),break,end End Pp (1) 输入:x0,ε; (2) f0=f(x0),f(1)=f’(x0); (3) while|f0|>ε 做 1.x1=x0-f0/f1; 2.x0=x1; 3.转(2) Endwhile (4)输出:x1.
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

非线性方程的解法数学实验报告

非线性方程的解法数学实验报告
fork=1:3
[x,fv,ef,out]=fzero(@f,x0(k))
end
结果
x0 =
1 4 10
x =
1.4044
fv =
0
ef =
1
out =
intervaliterations: 9
iterations: 6
funcCount: 25
algorithm: 'bisection, interpolation'
初值为x=3时,结果为
ans =
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000
3.0000 1.9075 1.5163 1.4130 1.4045 1.4044 1.4044
【实验总结】
通过本次试验我们学会了用Matlab解非线性方程的fzero和fsolve方法,明白了两种方法的相同和不同之处;此外还学会了利用牛顿法构造迭代公式求解已知非线性方程的解。
message: 'Zero found in the interval [0.547452, 1.45255]'
x =
1.4044
fv =
0
ef =
1
out =
intervaliterations: 11
iterations: 12
funcCount: 34
algorithm: 'bisection, interpolation'
firstorderopt: 1.6457e-007
message: 'Optimization terminated: first-order optimality is less than options.TolFun.'

一元非线性方程的解法

一元非线性方程的解法

第2章 一元非线性方程的解法2.1初始近似根的确定在工程和科学技术领域中,如电路和电力系统计算、非线性微分和积分方程、非线性规划、非线性力学等众多领域,经常会遇到求解高次代数方程或求解含有指数和正弦函数的超越方程的问题。

高次代数方程和超越方程统称为非线性方程。

对于二次代数方程,可以用熟悉的求根公式。

对于三次、四次代数方程,虽然有求根公式,但并不实用。

而高于四次的代数方程没有求根公式,至于一般的超越方程,更没有求根公式可套。

例如高次代数方程02736=-+-x x x或超越方程 06sin =--xe x π这些方程看似简单,却不易求其准确根。

而在实际问题中,只要能获得满足一定精确度的近似根就可以了,所以研究适用于实际计算的求方程近似根的数值方法,具有重要的现实意义。

本章主要讨论一元非线性方程的数值解法。

设一元非线性方程为0)(=x f )1.2(若有数*x 使0)(=*x f 成立,则称*x 为方程0)(=x f 的根,或称*x 为函数)(x f 的零点。

如果)(x f 能写成)()()(x g x x x f m *-=其中m 是正整数,0)(*≠x g ,则称x *为f x ()=0的m 重根,或称x *为)(x f 的m 重零点;1=m 时,称x *为方程的单根。

求方程的根往往分为两个步骤:()1确定根的初始近似值(称之为初始近似根);()2根的精确化。

已知根的初始近似值,利用某种方法将此近似值逐步精确化,直至满足预先要求的精度为止。

如何求根的初始近似值?由连续函数的性质知: 如果函数)(x f 在区间],[b a 上连续,严格单调,且0)()(<b f a f ,则在],[b a 内方程0)(=x f 有且仅有一个实根(如图1.2)。

根据这一结论,可以采用下面介绍的逐步扫描法来求根的初始近似值。

方程)1.2(的根的分布可能很复杂,一般可用试探的办法或根据函数的图象,确定出根的分布范围,即将函数)(x f 的定义域分成若干个只含一个实根的区间。

数值分析实验报告_清华大学_非线性方程的解法

数值分析实验报告_清华大学_非线性方程的解法

非线性方程的解法实验1.算法设计与比较问题提出:非线性方程组的求解方法很多,基本的思想是线性化。

不同的方法效果如何,要靠计算的实践来分析、比较。

实验内容:考虑算法(1)牛顿法(2)拟牛顿法分别编写它们的matlab程序。

实验要求:(1)用上述方法,分别计算两个例子。

在达到精度相同的前提下,比较迭代次数、浮点运算次数和CPU时间等。

1.1程序清单为使用flops统计浮点运算次数,使用MATLAB5.3版本%f1.m原函数f1function y=f(x)y(1)=12*x(1)-x(2)^2-4*x(3)-7;y(2)=x(1)^2+10*x(2)-x(3)-8;y(3)=x(2)^3+10*x(3)-8;end%ff1.m原函数f1的雅克比矩阵function y=ff(x)y(1,:)=[12,-2*x(2),-4];y(2,:)=[2*x(1),10,-1];y(3,:)=[0,3*x(2)^2,10];end%f1.m原函数f2function y=f2(x)y(1)=3*x(1)-cos(x(2)*x(3)) -1/2;y(2)=x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;y(3)=exp(-x(1)*x(2))+20*x(3)+1/3*(10*pi-3);end%ff2.m原函数f2的雅克比矩阵function y=ff2(x)y(1,:)=[3,x(3)*sin(x(2)*x(3)),x(2)*sin(x(2)*x(3))];y(2,:)=[2*x(1),-2*81*(x(2)+0.1),cos(x(3))];y(3,:)=[-x(2)*exp(-x(1)*x(2)),-x(1)*exp(-x(1)*x(2)),20]; end%牛顿法(以第一个方程组为例)clear;x0=[0,0,0]';n=10;tol=1e-6;x(:,1)=x0;i=1;u=[1,1,1]';tic;while (norm(u)>tol*norm(x(:,i))&(i<n))A=ff1(x(:,i));b=f1(x(:,i))';u=-A\b;x(:,i+1)=x(:,i)+u;i=i+1;end;x(:,i)iter=i-1t=toc%拟牛顿法(以第一个方程组为例)clear;x0=[0,0,0]';n=10;tol=1e-6;x(:,1)=x0;i=1;p=[1,1,1]';A=ff1(x(:,1));tic;while (norm(p)>tol*norm(x(:,i))&(i<n))x(:,i+1)=x(:,i)-A\f1(x(:,i))';p=x(:,i+1)-x(:,i);q=f1(x(:,i+1))'-f1(x(:,i))';A=A+(q-A*p)*p'/norm(p,2)^2;i=i+1;end;iter=i-1t=tocx(:,i)1.2运行结果1.2.1第一个方程组精确解为*T =(0.886020214719037, 0.796444775323146, 0.749479574122230)x 取最大迭代次数n=5000,相对误差限Tol=1e-6 (1)取()(0)1,1,1x T=牛顿迭代法迭代3次收敛,浮点运算次数为440,每次迭代平均浮点运算次数为147,CPU 耗时t =0(s)拟牛顿法迭代4次收敛,浮点运算次数为1048,每次迭代平均浮点运算次数为262,CPU 耗时t =0(s)(2)取()(0)000x T =,, 牛顿迭代法迭代4次收敛,浮点运算次数为510,每次迭代平均浮点运算次数为128,CPU 耗时t =1.600e-002(s)拟牛顿法迭代6次收敛,浮点运算次数为1493,每次迭代平均浮点运算次数为248,CPU 耗时t =1.50e-002(s)(3)取()(0)50,5050x T=,牛顿迭代法迭代15次收敛,浮点运算次数为2118,每次迭代平均浮点运算次数为141,CPU 耗时t =1.600e-002(s)拟牛顿法迭代338次收敛,浮点运算次数为88454,每次迭代平均浮点运算次数为262,CPU 耗时t =3.100e-002(s)1.2.2第二个方程组精确解为*T =(0.886020214719037, 0.796444775323146, 0.749479574122230)x 取最大迭代次数n=5000,相对误差限Tol=1e-6(1)取()(0)000x T=,, 牛顿迭代法迭代5次收敛,浮点运算次数为776,每次迭代平均浮点运算次数为155.2,CPU 耗时t =0(s)拟牛顿法迭代6次收敛,浮点运算次数为1635,每次迭代平均浮点运算次数为273,CPU 耗时t =0(s)(2)取()(0)888x T=,, 牛顿迭代法迭代9次收敛,浮点运算次数为1519,每次迭代平均浮点运算次数为169,CPU 耗时t =0(s)拟牛顿法迭代21次收敛,浮点运算次数为5924,每次迭代平均浮点运算次数为282,CPU 耗时t =1.600e-002(s)(3)对于离精确解更远的初值(如()(0)101010x T=,,),在计算中会出现奇异或接近奇异的矩阵,计算结果误差很大或计算根本无法进行下去。

非线性方程的解法二次方程和高次方程

非线性方程的解法二次方程和高次方程

非线性方程的解法二次方程和高次方程非线性方程的解法:二次方程和高次方程非线性方程是指未知数的幂次大于等于2的方程。

求解非线性方程是数学中的基础问题之一,其中常见的非线性方程类型包括二次方程和高次方程。

本文将分别介绍二次方程和高次方程的解法。

一、二次方程的解法二次方程是形如ax^2 + bx + c = 0的方程,其中a、b、c为已知常数,x为未知数。

解二次方程的常用方法有公式法和配方法。

1. 公式法对于一般的二次方程ax^2 + bx + c = 0,可使用求根公式x = (-b±√(b^2-4ac))/(2a)求解。

其中,当判别式Δ = b^2 - 4ac大于0时,方程有两个不相等的实根;当Δ = 0时,方程有两个相等的实根;当Δ小于0时,方程没有实根,但有两个共轭复根。

2. 配方法对于无法直接使用求根公式解的二次方程,可使用配方法进行转化。

具体步骤如下:(1)若方程中二次项系数a不为1,则可将方程两边同除以a,化为标准形式。

(2)将方程两边移项,得到形如x^2 + px + q = 0的方程。

(3)根据p = b/a和q = c/a,求出p和q的值。

(4)根据方程的左边是一个完全平方形式(x+p/2)^2,将方程化为(x+p/2)^2 = q - (p/2)^2的形式。

(5)进行求根运算,得到方程的解。

二、高次方程的解法高次方程是指次数大于二的方程,其中最常见的高次方程类型包括三次方程和四次方程。

由于高次方程不存在通用的求根公式,因此求解方法相对复杂,通常需要利用特殊性质或特定方法进行求解。

1. 三次方程的解法对于一般的三次方程ax^3 + bx^2 + cx + d = 0,常用的解法有牛顿迭代法和三次方程标准形式转化法。

(1)牛顿迭代法:通过迭代逼近的方式求解近似解,具体步骤较为复杂,这里不详细展开。

(2)三次方程标准形式转化法:对于一般的三次方程,可通过变量代换,将其转化为形如y^3 + py = q的标准形式。

等式和方程的解法

等式和方程的解法

等式和方程的解法等式和方程是数学中常见的概念,它们在应用数学中起着至关重要的作用。

解决等式和方程可以帮助我们求解各种实际问题,并拓展我们的数学思维能力。

本文将介绍几种常见的等式和方程的解法方法。

一、一元一次方程的解法一元一次方程是指只有一个未知数的一次方程。

解一元一次方程可以使用反运算的方法。

首先将方程中的常数项移到等号另一边,然后将系数移到未知数的右边,最后将系数带入到等式中,求出未知数的值。

例如,解方程2x + 3 = 7:1. 将常数项3移到等号右边,得到2x = 7 - 3,即2x = 42. 将系数2移到右边,得到x = 4 / 2,即x = 2因此,方程2x + 3 = 7的解为x = 2。

二、一元二次方程的解法一元二次方程是指只有一个未知数的二次方程。

解一元二次方程可以使用因式分解、配方法、求根公式等多种方法。

1. 因式分解法:如果一元二次方程可以因式分解,可以通过将方程两边都因式分解为两个一次因式的乘积,进而得到解。

例如,解方程x² - 4x = 0:1. 将方程因式分解为x(x - 4) = 02. 根据乘法法则,得到x = 0或x - 4 = 03. 因此,方程x² - 4x = 0的解为x = 0或x = 4。

2. 配方法:如果一元二次方程不能因式分解,可以使用配方法。

首先将方程进行配方,再通过解二次方程的方法得到解。

例如,解方程x² - 3x + 2 = 0:1. 进行配方法,得到(x - 1)(x - 2) = 02. 根据乘法法则,得到x - 1 = 0或x - 2 = 03. 因此,方程x² - 3x + 2 = 0的解为x = 1或x = 2。

3. 求根公式:一元二次方程的求根公式为x = (-b ± √(b² - 4ac)) / 2a,其中a、b、c分别为方程的三个系数。

例如,解方程x² + 4x + 4 = 0:1. 根据求根公式,得到x = (-4 ± √(4² - 4*1*4))/ (2*1)2. 简化计算,得到x = (-4 ± √(16 - 16)) / 23. 化简后,得到x = (-4 ± 0) / 24. 因此,方程x² + 4x + 4 = 0的解为x = -2。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浙江大学城市学院实验报告课程名称 科学计算实验项目名称 一元非线性方程的解法实验成绩 指导老师(签名 ) 日期 2013/10/10一. 实验目的和要求1. 用Matlab 软件掌握求解非线性方程的二分法、迭代法和牛顿法,并对结果作初步分析;2. 通过实例练习用非线性方程求解实际问题。

二. 实验内容和原理分析应用题2-1,2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上。

2-1 程序注释对用二分法、迭代法和牛顿法求一元非线性方程数值解的Matlab 程序的每一句添上注释。

二分法: [x,n]=BisectionMethod(a,b,epsi,Nmax)迭代法: [x,n]=IterationMethod(x0,epsi,Nmax)Newton 法: [x,n]=NewtonMethod(x0,epsi,Nmax)2-2 分析应用题 用二分法求方程2()sin 04x f x x =-=和()sin 0x g x e x =-=根的近似值,使误差不超过210-,输出每次二分之后解的近似结果以及二分的次数,其中()0g x =的根只需求最接近原点的那个根。

2-3 分析应用题已知方程230xx e -=有以下三种迭代格式,分析三种迭代格式的收敛性,求出迭代精度为610-的数值结果,并比较迭代序列的收敛速度。

1)1n x += 2)12ln ln 3n n x x +=+ 3)136n n x n n n x n x e x x x e +-=--2-4 分析应用题用下列方法求方程1020x e x +-=的近似根,要求误差不超过31102-⨯,并比较计算量。

1)在区间[0, 1]上用二分法;2)取初值0x =,并用迭代过程12(0,1,2,.......)10k x k e x k +-==;3)取初值00x =用牛顿法求解。

2-5 分析应用题以定期存储为基础的储蓄帐户的累积值可由定期年金方程确定[(1)1]n P A i i=+- 在这个方程中,A 是帐户中的数额,P 是定期存储的数额,i 是n 个存储期间的每期利率。

一个工程师想在20年后退休时储蓄帐户上的数额达到750000美元,而为了达到这个目标,他每个月能存1500美元。

为实现他的储值目标,最小利率应是多少?假定利息是月复利的。

三. 操作方法与实验步骤(包括实验数据记录和处理)2-1 分析应用题对用二分法、迭代法和牛顿法求一元非线性方程数值解的Matlab 程序的每一句添上注释。

二分法: [x,n]=BisectionMethod(a,b,epsi,Nmax)Function[c,err,yc]=erfen(f,a,b,delta)Ya=feval(f,a);Yb=feval(f,b);If ya*yb>0,break,endMaxl=1+round((log(b-a)-log(delta))/log(2));For k=1:max1C=(a+b)/2;Yc=feval(f,c);If yc = 0a=c;b=c;elseif yb*yc>0b=c;yb=yc;elsea= c;ya=yb;endif b-a<detal,break,endendc=(a+b)/2;err= abs(b-a);yc = feval(f,c);(1)输入:a,b值及精确控制量ε;(2)If f(a)*f(b)>0 then 返回第一步,重新输入a,b值else转第三步;(3)While|a-b|>ε时做1.x=1/2(a+b),计算f(x);if f(x)=0 then 输出x,停机。

2.if f(a)*f(x)<0 then [a,b]替换为[a,x] else [a,b]替换为[x,b]endwhile;(4)输出x=1/2(a+b).迭代法: [x,n]=IterationMethod(x0,epsi,Nmax)设f(x)=0,改写为X=ψ(x)取方程初始近似值x0,作迭代过程Xn+1=ψ(xn)(n=1,2,3……)若产生的序列{xn}收敛于x*,即x*即为方程的根。

Newton法: [x,n]=NewtonMethod(x0,epsi,Nmax)Function[p0,err,k,y]=Newton(f,df,p0,delta,epsilon,max1)For k=1:mak1P1=p0-feval(f,p0)/feval(df,p0);Err=abs(p1-p0);Relerr =2*err/(abs(p1)+delta);Pp(k)=p1;P0=p1;Y=feval(f,p0);If(err<delta)|(relerr<delta)|(abs(y)<epsilon),break,endEndPp(1)输入:x0,ε;(2) f0=f(x0),f(1)=f’(x0);(3) while|f0|>ε做1.x1=x0-f0/f1;2.x0=x1;3.转(2)Endwhile(4)输出:x1.2-2fun = @(x)sin(x)-x^2/4;a=0;b=4;fa=fun(a);fb=fun(b);c=(a+b)/2;fc=fun(c);if fa*fb>0return ;endwhile abs(fc)>0.01c=(a+b)/2;fc=fun(c);if fb*fc>0b=c;fb=fc;elsea=c;fa=fc;endendfx=fcx=c-0.0050x =1.93752-3 分析应用题第一种1n x +=X(1)=3-exp(1);X(2)=sqrt(exp(X(1))/3);i=1;while abs(X(i+1)-X(i))>0.000001X(i+2)=sqrt(exp(X(i+1))/3);i=i+1;endXf=X(i+1)Xf =0.9100>>第二种12ln ln 3n n x x +=+clc;X(1)=3-exp(1);X(2)=2*log(X(1))+log(3);i=1;while abs(X(i+1)-X(i))>0.000001X(i+2)=2*log(X(i+1))+log(3);i=i+1;endXf=X(i+1)Xf =3.7331 + 0.0000i>> 第三种136n n x n n n x n x e x x x e+-=-- X(1)=3-exp(1);X(2)=X(1)-(3*X(1)-exp(X(1)))/(6*X(1)-exp(X(1))); i=1;while abs(X(i+1)-X(i))>0.000001X(i+2)=X(i)-(3*X(i)-exp(X(i)))/(6*X(i)-exp(X(i))); i=i+1;endXf=X(i+1)Xf =1.5978>>2-4 分析应用题1)在区间[0, 1]上用二分法;fun = @(x)exp(x)-2+10*x;a=0;b=1;fa=fun(a);fb=fun(b);c=(a+b)/2;fc=fun(c);if fa*fb>0return ;endwhile abs(fc)>1/2*10e-3c=(a+b)/2;fc=fun(c);if fb*fc>0b=c;fb=fc;elsea=c;fa=fc;endendx=cx =0.0908>>2)取初值0x =,并用迭代过程12(0,1,2, (10)x k e x k +-==;x(1)=1/10;x(2)=(2-exp(x(1)))/10;i=1;while x(i+1)-x(i)>1/2*10e-3x(i+2)=(2-exp(x(i+1)))/10;i=i+1;endx=x(i+1)x =0.08953)取初值00x 用牛顿法求解。

f=@(x)exp(x)+10*x-2;df=@(x)exp(x)+10;x0=0;f0=-1;f1=11;while abs(f0)>0.005x1=x0- f0/f1;x0=x1;f0=f(x0);f1=df(x0);endx1x1 =0.09092-5分析应用题[p0,err,k,y]=newton('f','df',1,0.0005,5*10^-6,100000) p0 =0.005555938110707err =1.374794598648418e-004k =168y =0.002070961751574 最小利率p0 =0.005555938110707四. 实验结果与分析。

相关文档
最新文档