第2章方程求根(1)

第2章方程求根(1)
第2章方程求根(1)

计算方法第二章方程求根上机报告

实验报告名称 班级:学号:姓名:成绩: 1实验目的 1)通过对二分法与牛顿迭代法作编程练习与上级运算,进一步体会二分法与牛顿迭代法的不同特点。 2)编写割线迭代法的程序,求非线性迭代法的解,并与牛顿迭代法。 2 实验内容 用牛顿法和割线法求下列方程的根 x^2-e^x=0; x*e^x-1=0; lgx+x-2=0; 3实验步骤 1)根据二分法和牛顿迭代法,割线法的算法编写相应的求根函数; 2)将题中所给参数带入二分法函数,确定大致区间; 3)用牛顿迭代法和割线法分别对方程进行求解; 3 程序设计 牛顿迭代法x0=1.0; N=100; k=0; eps=5e-6; delta=1e-6; while(1) x1=x0-fc1(x0)/fc2(x0); k=k+1; if k>N disp('Newmethod failed')

break end if(abs(x1-x0)=delta) c=x1; x1=cutnext(x0,x1); x0=c; %x0 x1μYí?μ?μ?x1 x2 è?è?±£′??úx0 x1 end k=k+1; if k>N disp('Cutline method failed') break; end if(abs(x1-x0)

π计算方法,二元一次和二元二次方程求根公式,一元n次方程

π的计算方法 如图,这是一个正五边形和它的外切圆。AD平分∠EDB,AC⊥交于BD与点C.已知外切圆的半径为5cm。求正五边形的周长? 根据题目可以求出∠EDB= ? = - 108 5 180 * 2 5) ( ∵AD为∠EDB角平分线 ∴∠ADC=∠EDA=108*(1/2)=54° ∵AD=5cm,∠ADC=54° ∴CD=cos54°*5cm ∴BD=2CD=2*cos54°*5cm ∴C[正五边形] =2*cos54°*5cm*5=50*cos54° 如图,这是一个正n边形和它的外切圆。AD平分∠EDB,AC⊥交于BD与点C.已知外切圆的半径为rcm。求正n边形的周长与它的外切圆直径之比?根据题目可以求出∠ EDB= ?- n n180 * 2) ( ∵AD为∠EDB角平分线

∴∠ADC=∠EDA=n n n 2180*2n 21*180*2)()(-=- ∵AD=rcm,∠ADC=n 2180*2-n )( ∴CD=r n *)2180*2-n cos()( ∴BD=2CD=2*r n *)2180*2-n cos()( ∴C[正五边形]=2*n **)2180*2-n cos(r n )( ∴π=n r n r n C C n *)2n 180*2)-(n cos(2*2**)2180*)2n ((cos =-=≈它外切圆直径 直径边形正圆(180单位为°)

)2180)2n (tan(*)2180)2n (tan(na n *)2180)2n (tan(2*a 5.0*)2180)2n (tan(5.0*)2180)2n (tan()2180)2n (tan(5.02180)2n (,180)2n (a 5.0,a n n a n n a C a n n G a n GH n a HG AH HG n FAG BAF AG n BAF HF AH AF H AF GH G AF FG AG AF n G n n AFG n -=-≈≈∴=-=-∴-=∴-==-=∠∴∠-=∠==∴∴⊥∴==直径边形周长外接正π直径为圆平方中点 为等腰三角形三线合一 的切线 为圆边形的内接圆。为正边形,圆已知;这是一个正边形一部分 为等腰△是正边形,△假设这是个正正多边形ΘΘΘΘΘ 二元一次方程的求根公式

第二章_Volterra_方程的求解

第二章 Volterra 方程的求解 §2.1 第二类Volterra 方程求解 积分方程是近代数学的一个重要分支,它与微分方程、泛函分析、计算数学和有机分析等有着紧密的联系.同时,它也是解决力学、数学物理和工程技术等问题的一种重要工具. 本章首先介绍积分方程的基本概念,其次利用压缩映照原理讨论积分方程的可解性及逐次逼近方法,并扼要介绍Fredholm 定理,讨论一些非线性积分方程的解法. 第二类Volterra 方程一般形式为: ()(,)()()x a x K x t t dt f x ?λ?=+? , (2.1.1) A . 化为常微分方程求解 例2.1.10().x x t e t dt x ?-=? 解 由0 ()x x t e e t dt x ?-=? ,

得0 ()x t x e t dt xe ?--=?, 求导得(),x x x e x e xe ?---=- 即()1x x ?=-. 例2.1.2 0()().x x x t dt e ??=+? 解 求导得()().x x x e ??'=+ 定解条件0 0(0)() 1.t dt e ??=+=? 化为微分方程 , (0) 1. x e ???'?=+? =? 容易得到()(1)x x x e ?=+. 定理2.1.1 如果第二类Volterra 方程(2.1.1)的核(,)K x t 为()x t -的(1)n -次多项式 01(,)()()() K x t a x a x x t =+-2 2()()2!a x x t +-11()()(1)!n n a x x t n --++ -- , 令 1 1()()()(1)!x n a y x x t t dt n ?-=--?,

第二章 数值分析--方程求根

第二章 方程求根 教学内容: 1.二分法 2.基本迭代法 3.牛顿法 4.弦位法 5.埃特金法和斯基芬森法 6.重根的情况 教学重点: 各种算法的思路及迭代公式的构造 教学难点: 各种算法的收敛性、收敛速度及误差估计 计划学时:5-6学时 授课提纲: 方程求根就是求函数)(x f 的零点*x ,即求解方程 0)(=x f 这里,0)(=x f 可以是代数方程,也可以不是,如超越方程。 方程的根既可以是实数,也可以是复数;既可能是单根,也可能是重根;即可能要求求出给定范围内的某个根,也可能要求求出方程全部的根。 本章介绍的方法对两类方程都适用,但大部分都是要求知道根在什么范围内,且在此范围内只有一个单根。若有α使得0)(,0)(≠'=ααf f ,则称α是方程0)(=x f 的单根;若有α使得 0)(,0)()()()()1(≠==='=-ααααm m f f f f , 则称α是方程0)(=x f 的m 重根。 设)(x f 在区间[a,b]连续,若0)()(

2.1.2 二分法思想 区间对分,去同存异 2.1.3 二分法计算步骤 步1:令2/)(0b a x +=,计算)(0x f ; 步2:若0)(0=x f ,令0*x x =,计算结束; 步3:若)(0x f *)(a f >0,令0x a =;否则令0x b =; 步4:若ε≤-||a b ,令2/)(*b a x +=,计算结束;否则转步1。 2.1.4 二分法误差分析和收敛性 记第k 次区间中点为k x ,则有 2/)(0*a b x x -≤-,21*2/)(a b x x -≤-,1*2/)(,+-≤-k k a b x x 故当∞→k 时,*x x k →。 为使ε≤-k x x *,解不等式ε≤-+12/)(k a b ,得 12ln /]ln )[ln(---≥εa b k 2.1.5 二分法的优缺点 ● 算法简单直观,易编程计算; ● 只需)(x f 连续即可; ● 区间收缩速率相同,收敛速度慢; ● 无法求复根和偶重根。 例2-1 p15例1 2.2 迭代法 2.2.1 迭代法原理 0)(=x f ? )(x x ?= )(x f 的根 )(x ?的不动点 2.2.2 迭代法思路 任取初值],[0b a x ∈,令)(01x x ?=,)(12x x ?=,反复迭代,即得 ),2,1,0(),(1 ==+k x x k k ? 直到满足精度要求的k x 来近似*x 。称)(x x ?=为迭代公式,)(x ?为迭代函数,{k x }为迭代序列。 若{k x }收敛时,称迭代公式是收敛的。此时设=∞ →k k x lim *x ,当)(x ?连续时 )()lim ()(lim lim *1*x x x x k k k k k ???====∞ →∞ →+∞ → 亦即0)(*=x f 。若{k x }不收敛,称迭代公式是发散的。

计算方法实验一 方程求根

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称计算方法实验实验日期 成绩指导老师批改日期 实验名称实验一方程求根 一、实验目的 用各种方法求任意实函数方程f(x)=0在自变量区间[a,b]上,或某一点附近的实根。并比较方法的优劣。 二、实验方法 (1)二分法 对方程f(x)=0在[a,b]内求根,将所给区间二分,在分点x= 2a b 判断是否f(x)=0,若是,则有根x=(b+a)/2。否则,继续判断是否f(a)* f(x)<0,若是,则令b=x,否则令a=x、重复此过程直至求出方程f(x)=0在[a,b]中的近似根为止。 (2)迭代法 将方程f(x)=0等价变换为x=φ(x)形式,并建立相应的迭代公式x k+1=φ(x k)。 (3)牛顿法 若已知方程f(x)=0的一个近似根x0,是函数f(x)在点x0附近可用一阶泰勒多项式 p1(x)=f(x )+f`(x0)(x-x0)来近似,因此方程f(x)=0可近似表示为f(x0)+f`(x0)(x-x0)=0。设f`(x0)≠0,则x=x0-f(x0)/f`(x0)。则x作为原方程新的近似根x1,然后x1将作为x0带入上式。迭代公式为x k+1=x k -f(x k)/f`(x k)。 三、实验内容 (1)在区间[0,1]上用二分法求方程ex+10x-2=0的近似根,要求误差不超过0.5x10-3。 (2)取初值x0=0,用迭代公式,x k+1= 10 k x e- 2,(k=0,1,2···)求方程e x+10x-2=0的 近似根。要求误差不超过0.5x10-3。 (3)取初值x0=0,用牛顿迭代法求方程e x+10x-2=0(k=0,1,2···)的近似根。要求误差不超过0.5x10-3。 四、实验程序 #include #include using namespace std;

计算方法-方程求根实验

实验四 方程求根实验 一. 实验目的 (1)深入理解方程求根的迭代法的设计思想,学会利用校正技术和松弛技术解决某些实际的非线性方程问题,比较这些方法解题的不同之处。 (2)熟悉Matlab 编程环境,利用Matlab 解决具体的方程求根问题。 二. 实验要求 用Matlab 软件实现根的二分搜索、迭代法、Newton 法、快速弦截法和弦截法,并用实例在计算机上计算。 三. 实验内容 1. 实验题目 (1)早在1225年,古代人曾求解方程020102)(23=-++=x x x x f 并给出了高精度的 实根368808107.1*=x ,试用Newton 法和弦截法进行验证,要求精度610-=ε,并绘制方程的图形。 答:A.Newton 法: a .编写文件Newton.m 、func4.m 内容如下所示:

b.运行,如下所示A为矩阵, 由上面可知,对于初值为5,运行7次即可得到所需的精度,验证结果为古人给出的解释正确的; c.作图,编写下面的文件photo1.m.然后运行即可: 注意下面中的x矩阵即为刚才计算出来的x系列,k为迭代的次数:

a.编写文件Chord.m内容如下所示: b.运行结果如下所示:

由上表可知,在精度为10^-6时有7位有效数字,古人的结果还是正确的 c.作图,在上面运行后,即运行newton法时写的photo1.m文件即可出现图像:

可以看到图中两条曲线基本重合; (2)取5.00=x ,用迭代法求方程x e x -=的根,然后用Aitken 方法加速,要求精度为 结果有4为有效数字。 答: a. 编写文件func7.m 和Aiken.m ,内容如下所示:

数值计算方法matlab 第二章 求根

1 第二章作业 问题描述: 不同温度的两种流体进入混合器混合,流出时具有相同的温度。流体A 和B 的热容(单位:cal/(mol ·K))分别为: 2623.381 1.80410 4.30010pA c T T --=+?-? 1528.592 1.29010 4.07810pB c T T --=+?-? 焓变(单位:cal/mol )为2 1 T p T H c dT ?= ? 。 A 进入混合器的温度为400℃, B 进入混合器的温度为700℃,A 的量(mol )是B 的量(mol )的两倍,试确定流体离开混合器的温度。 问题分析: 初始情况下,气体A 的温度比气体B 的温度低,故在混合过程中,气体A 温度升高,气体B 温度降低。由于没有外界加热或者做功,混合气体整体的焓变应该为零。 设A 有2mol ,B 有1mol ,根据焓变公式计算得到: 2 1 -262400 -22632= 6.762+3.608108.60010)6.762 1.80410 2.867105407.712T T A pA T H c dT T T dT T T T --?=?-?=+?-?-??( 2 1 -152700 -1253=+1.29010 4.07810)0.64510 1.3591032958.030 T T B pB T H c dT T T dT T T T --?=?-?=+?-?-??(8.5928.592 而0A B H H ?+?=,故该问题最后变成求解方程 2263()15.3548.2541016.4571038365.742f T T T T --=+?-?- 的根的问题。接下来将采用二分法、试位法以及牛顿法进行改方程的求解。方程保存为f.m ,可在压缩文件中找到。 一、 二分法 二分法的基本思想为,确定有根区间,然后不断将区间二等分,通过判断f(x)的符号,逐步将区间缩小,直到有根区间足够小,便可满足精度要求的近似根。 本例中,可以清楚的得到有根区间为(400,700)。取容限误差为-3 0.510%?,可以保证5 位有效数字。程序编写存储于bisec.m 。 其中,bisec 函数定义为: function bisec(f_name,a,c,xmin,xmax,n_points) 调用时: >> bisec('f',400,700,400,700,1000) 相当于取了a=400;c=700;作图时横坐标取得是从400~700的范围,采样点为1000个。

非线性方程求根问题

计算机学院上机实践报告 一、目的 1.通过本实验,帮助加深对非线性方程求根方法的构造过程的理解; 2.能将各种方法编写为程序并上机实现; 3.比较各种方法在求解同一非线性方程根时,在收敛情况上的差异。 二、容与设计思想 1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]的根。 2.方程f(x)=2x3-5x2-19x+42=0在x=3.0附近有根,试写出其三种不同的等价形式以构成三种不同的迭代格式,再用简单迭代法求根,观察这三种迭代是否收敛。 三、使用环境 1. 硬件环境 微型计算机(Intel x86系列CPU)一台 2. 软件环境 Windows2000/XP操作系统 VC++6.0或其它的开发工具。 四、核心代码及调试过程 1.用二分法求方程f(x)=x3-2x-5=0在区间[2 , 3]的根主要代码: void bisect(double a,double b,int max_B) { double root, ya,yb,yroot; int i,actual_B; ya=f(a);yb=f(b); if(ya*yb>0) { printf("method failed!\n"); exit(0); } for(i=1;i<=max_B;i++) { root=(a+b)/2;yroot=f(root); //取当前含根区间的中点 if(yroot==0) { a=root;b=root;} else if(yb*yroot>0) //取含根区间为[a,(a+b)/2]

{ b=root;yb=yroot;} Else //取含根区间为[(a+b)/2,b] { a=root;ya=yroot;} if(fabs(b-a)b)) { printf("re_select a proper initial value x0!\n"); exit(0); } if(fabs(x1-x0)

一元二次方程求根公式

主讲:黄冈中学高级教师 一、一周知识概述 1、一元二次方程的求根公式 将一元二次方程ax2+bx+c=0(a≠0)进行配方,当b2-4ac≥0时的根为 . 该式称为一元二次方程的求根公式,用求根公式解一元二次方程的方法称为求根公式法,简称公式法. 说明:(1)一元二次方程的公式的推导过程,就是用配方法解一般形式的一元二次方程ax2+bx+c=0(a≠0); (2)由求根公式可知,一元二次方程的根是由系数a、b、c的值决定的; (3)应用求根公式可解任何一个有解的一元二次方程,但应用时必须先将其化为一般形式. 2、一元二次方程的根的判别式 (1)当b2-4ac>0时,方程有两个不相等的实数根; (2)当b2-4ac=0时,方程有两个相等的实数根; (3)当b2-4ac<0时,方程没有实数根. 二、重难点知识 1、对于一元二次方程的各种解法是重点,难点是对各种方法的选择,突破这一难点的关键是在对四种方法都会使用的基础上,熟悉各种方法的优缺点。 (1) “开平方法”一般解形如“”类型的题目,如果用“公式

法”就显得多余的了。 (2)“因式分解法”是一种常用的方法,一般是首先考虑的方法。 (3) “配方法”是一种非常重要的方法,一般不使用,但若能恰当地使用,往往能起到简化作用,思考于“因式分解法”之后,“公式法”之前。如方程;用因式分解,则6391这个数太大,不易分解;用公式法,也太繁;若配方,则方程化为,就易解,若一次项系数中有偶因数,一般也应考虑运用。 (4)“公式法”是一般方法,只要明确了二次项系数、一次项系数及常数项,若方 程有实根,就一定可以用求根公式求出根,但因为要代入(≥0)求值,所以对某些特殊方程,解法又显得复杂了。 2、在运用b2-4ac的符号判断方程的根的情况时,应注意以下三点: (1)b2-4ac是一元二次方程的判别式,即只有确认方程为一元二次方程时,才能确定a、b、c,求出b2-4ac; (2)在运用上述结论时,必须先将方程化为一般形式,以便确认a、b、c; (3)根的判别式是指b2-4ac,而不是 三、典型例题讲解 例1、解下列方程: (1); (2); (3). 分析:用求根公式法解一元二次方程的关键是找出a、b、c的值,再代入公式计算,

数值计算方法 方程求根

数值计算方法实验报告 实验内容:方程求根 实验室: 专业班级: 学号: 姓名:

2.用MATBAB软件,用二分法求方程f(x)=x^3+4*x^2-10=0在区间[1,2]内根的近似值,为使误差不超过10^-5时所需要的二分次数。 function bisection_time(tolerance) a=1; b=2; k=0; while(abs(b-a)>tolerance) c=(a+b)/2; fa=a^3+4*a^2-10; fb=b^3+4*b^2-10; fc=c^3+4*c^2-10; if((fa==0)|(fc==0)) disp(k); elseif(fa*fc<0) b=c;k=k+1; elseif(fc*fb<0) a=c;k=k+1; elseif(fb==0) disp(k); end end soluntion=(a+b)/2; disp(soluntion); disp(k); 运行结果 1.36523 17

6.取x0=1.5,用牛顿迭代法求f(x)=x^3+4*x^2-10=0的跟的近似值 function new(tolerance) x0=1.5; k=0; a=x0^3+4*x0^2-10; b=3*x0^2+8*x0; x1=x0-a/b; while(abs(x0-x1)>tolerance) x0=x1; k=k+1; a=x0^3+4*x0^2-10; b=3*x0^2+8*x0; x1=x0-a/b; end disp(x1); disp(k); 运行结果 1.36523 3

8.弦割法求方程f(x)=x^3-3*x^2-x+9=0在区间[-2,-1]内的一个实根近似值Xk,使|f(x) |<=10^-5. function xuange(k) x0=-2; x1=-1; t=0; a=x1^3-3*x1^2-x1+9; b=x0^3-3*x0^2-x0+9; x2=x1-a*(x1-x0)/(a-b); while(abs(x1-x0)>k) x0=x1; x1=x2; a=x1^3-3*x1^2-x1+9; b=x0^3-3*x0^2-x0+9; x2=x1-a*(x1-x0)/(a-b); t=t+1; end disp(x1); disp(t) 运行结果 -1.525102 6

相关文档
最新文档