5数值计算功能
数值计算1-5章
数值计算1-5章数值计算⽅法第1章绪论1.1数值计算⽅法的研究对象和特点数值计算⽅法也称数值分析,它研究⽤计算机求解各种数学问题的数值⽅法及其理论。
数学学科内容⼗分⼴泛,数值计算⽅法属于计算数学的范畴,这⾥只涉及科学和⼯程计算中常见的数学问题,如函数的插值、逼近、离散数据的拟合、数值积分与数值微分、线性和⾮线性⽅程数值解法和矩阵特征值问题数值解法和微分⽅程数值解法等.由于计算机科学与技术的迅速发展,数值计算⽅法的应⽤已经普遍深⼊到各个科学领域,很多复杂和⼤规模的计算问题都可以在计算机上进⾏计算,新的、有效的数值⽅法不断出现.现在,科学与⼯程中的数值计算已经成为各门⾃然科学和⼯程技术科学研究的⼀种重要⼿段,成为与实验和理论并列的⼀个不可缺少的环节.所以,数值计算⽅法既是⼀个基础性的,同时也是⼀个应⽤性的数学学科分⽀,与其他学科的联系⼗分紧密.⽤数值⽅法求解数学问题⾸先要构造算法,即由运算规则(包括算术运算、逻辑运算和运算顺序)构成的完整的解题过程.同⼀个数学问题可能有多种数值计算⽅法,但不⼀定都有效.评价⼀个算法的好坏主要有两条标准:计算结果的精度和得到结果所付出的代价.我们⾃然应该选择代价⼩⼜能满⾜精度要求的算法.计算代价也称为计算复杂性,包括时间复杂性和空间复杂性.时间复杂性好是指节省时间,主要由运算次数决定.空间复杂性好是指节省存储量,主要由使⽤的数据量决定.⽤计算机求数学问题的数值解不是简单地构造算法,它涉及多⽅⾯的理论问题,例如,算法的收敛性和稳定性等.除理论分析外,⼀个数值⽅法是否有效,最终要通过⼤量的数值实验来检验.数值计算⽅法具有理论性、实⽤性和实践性都很强的特点.作为数值计算⽅法的基础知识,本课程不可能⾯⾯俱到.除构造算法外,各章根据内容⾃⾝的特点,讨论的问题有所侧重.学习时我们⾸先要注意掌握⽅法的基本原理和思想,要注意⽅法处理的技巧及其与计算机的结合,要重视误差分析、收敛性和稳定性的基本理论.其次,要通过例⼦,学习使⽤各种数值⽅法解决实际计算问题,熟悉数值⽅法的计算过程.最后,为了掌握本课程的内容,还应做⼀定数量的理论分析与计算练习.1.2数值计算的误差1.2.1误差的来源应⽤数学⼯具解决实际问题,⾸先,要对被描述的实际问题进⾏抽象、简化,得到实际问题的数学模型.数学模型与实际问题之间会出现的误差,我们称之为模型误差.在数学模型中,通常要包含⼀些由观测数据确定的参数.数学模型中⼀些参数观测结果⼀般不是绝对准确的.我们把观测模型参数值产⽣的误差称为观测误差.例如,设⼀根铝棒在温度t时的实际长度为Lt,在t=0时的实际长度为L0,⽤lt来表⽰铝棒在温度为t时的长度计算值,并建⽴⼀个数学模型l t =L(1+at), a≈0.0000238/℃,其中a是由实验观测得到的常数,a∈[0.0000237,0.0000239],则称Lt -lt为模型误差,a-0.0000238是a 的观测误差.在解实际问题时,数学模型往往很复杂,因⽽不易获得分析解,这就需要建⽴⼀套⾏之有效的近似⽅法和数值⽅法.我们可能⽤容易计算的问题代替不易计算的问题⽽产⽣误差,也可能⽤有限的过程代替⽆限的过程⽽产⽣误差.我们将模型的准确解与⽤数值⽅法求得的准确解之间的误差称为截断误差或⽅法误差.例如,对函数()()35721sin 13!5!7!21!n x x x xn x x n +=-+-+++-+,该式右边有⽆限多项,计算机上⽆法计算.然⽽,根据微积分学中的泰勒(Taylor )定理,当|x |较⼩时,我们若⽤前3项作为sin x 的近似值,则截断误差的绝对值不超过77!x .⽤计算机做数值计算时,⼀般也不能获得数值计算公式的准确解,需要对原始数据、中间结果和最终结果取有限位数字.我们将计算过程中取有限位数字进⾏运算⽽引起的误差称为舍⼊误差.例如,13=0.33333…,如果我们取⼩数点后4位数字,则13-0.3333=0.000033…就是舍⼊误差.在数值分析中,除了研究数学问题的算法外,还要研究计算结果的误差是否满⾜精度要求,这就是误差估计问题.在数值计算⽅法中,主要讨论的是截断误差和舍⼊误差.1.2.2 误差与有效数字定义1.1 设x 是某实数的精确值,A x 是它的⼀个近似值,则称x -A x 为近似值A x 的绝对误差,或简称误差.Ax x x-称为x A 的相对误差.当x =0时,相对误差没有意义.在实际计算中,精确值x 往往是不知道的,所以通常把AAx x x -作为A x 的相对误差.定义1.2 设x 是某实值的精确值,A x 是它的⼀个近似值,并可对A x 的绝对误差作估计|x -A x |?A ε,则称εA 是A x 的绝对误差界,或简称误差界.称AAx ε是A x 的相对误差界.例 1.1 我们知道π=3.1415926…,若取近似值πA =3.14,则π-πA =0.0015926…,可以估计绝对误差界为0.002,相对误差界为0.0006.例 1.2 测量⼀⽊板长是954 cm,问测量的相对误差界是多⼤?解因为实际问题中所截取的近似数,其绝对误差界⼀般不超过最⼩刻度的半个单位,所以当x =954 cm 时,有A ε=0.5 cm ,其相对误差界为0.50.00052410.053%954AAx ε==< .定义1.3 设A x 是x 的⼀个近似值,将A x 写成12100.,k A i x a a a =±? , (1.1) 它可以是有限或⽆限⼩数的形式,其中i a (i =1,2,…)是0,1,…,9中的⼀个数字,1a ≠0,k 为整数.如果|x -A x |?0.5×10k n -,则称A x 为x 的具有n 位有效数字的近似值.可见,若近似值A x 的误差界是某⼀位的半个单位,该位到A x 的第⼀位⾮零数字共有n 位,则A x 有n 位有效数字.通常在x 的准确值已知的情况下,若要取有限位数的数字作为近似值,就采⽤四舍五⼊的原则,不难验证,采⽤四舍五⼊得到的近似值,其绝对误差界可以取为被保留的最后数位上的半个单位.例如|π-3.14|?0.5×210-, |π-3.142|?0.5×310-.按定义,3.14和3.142分别是具有3位和4位有效数字的近似值.显然,近似值的有效数字位数越多,相对误差界就越⼩,反之也对.下⾯,我们给出相对误差界与有效数字的关系.定理1.1 设x 的近似值A x 有(1.1)式的表达式. (1) 如果A x 有n 位有效数字,则 111×102A nAx x x a --≤; (1.2)(2) 如果()111×1021A nAx x x a --≤+, (1.3)则A x ⾄少具有n 位有效数字.证由(1.1)式可得到()111--?+≤≤?k A k a x a . (1.4)所以,当A x 有n 位有效数字时11110.5101×10,×102k nA nk Ax x x a a ----?≤=即(1.2)式得证.由(1.3)式和(1.4)式有()()nk nk AAA A a a x x x x x x ---?=?+?+≤-=-105.0101211011111,即说明A x 有n 位有效数字,(2)得证.例1.30.1%,应取⼏位有效数字?解由于因此1a =4,设有n 位有效数字,则由(1.2)式,可令11110a -?≤,即410n -?18,得n ?4.故只要对4位有效数字,其相对误差就可⼩于0.1%,4.472.例1.4 已知近似数A x 的相对误差界为0.3%,问A x ⾄少有⼏位有效数字?解设A x 有n 位有效数字,由于A x 的第⼀个有效数1a 没有具体给定,⽽我们知道1a ⼀定是1,2,…,9中的⼀个,由于()12311101000210291A Ax x x --≤<=+,故由(1.3)式知n=2,即A x ⾄少有2位有效数字.1.2.3 函数求值的误差估计对⼀元函数f(x ),⾃变量x 的⼀个近似值为A x ,以f(A x )近似f(x ),其误差界记作ε(f(A x )).若f(x )具有⼆阶连续导数,f′(A x )与f″(A x )的⽐值不太⼤,则可忽略|x -A x |的⼆次项,由Taylor 展开式得到f(A x )的⼀个近似误差界ε(f(A x ))≈|f′(A x )|ε(A x ).对n 元函数f(x 1,x 2,…,x n ),⾃变量x 1,x 2,…,x n 的近似值分别为x 1A ,x 2A ,…,x n A ,则有()()()12121,,,,,,nn A A nA k kA k k Af f x x x f x x x x x x=??-≈- ∑ ,其中()12,,,A A nA k k f f x x x x x A.因此,可以得到函数值的⼀个近似误差界()()()121,,,nAA nA kA k k Af f x x x x x εε=??≈ ∑. 特别地,对f(x 1,x 2)=x 1±x 2有ε(x 1A ±x 2A )=ε(x 1A )+ε(x 2A ).同样,可以得到ε(x 1A x 2A )≈|x 1A |ε(x 2A )+|x 2A |ε(x 1A ),()()12211222A A A A A A A x x x x x x x εεε+??≈,20A x ≠例1.5 设有长为l,宽为d 的某场地.现测得l 的近似值l A =120 m,d 的近似值d A =90 m ,并已知它们的误差界为|l-l A |?0.2 m,|d-d A |?0.2 m.试估计该场地⾯积S=ld 的误差界和相对误差界.解这⾥ε(l A )=0.2,ε(d A )=0.2,并且有2,,10800A A A S S d l S l d mld====.于是有误差界()21200.2900.242A S m ε≈?+?=,相对误差界()()420.39%10800A r A AS S l dεε=≈=.例1.6 设有3个近似数a=2.31, b=1.93, c=2.24,它们都有3位有效数字.试计算p=a+bc 的误差界和相对误差界,并问p 的计算结果能有⼏位有效数字?解 p=2.31+1.93×2.24=6.6332.于是有误差界ε(p)=ε(a)+ε(bc)≈ε(a)+|b|ε(c)+|c|ε(b) =0.005+0.005(1.93+2.24)=0.02585,相对误差界εr (p)=()0.025856.6332p pε≈≈0.39%.因为ε(p)≈0.02585<0.05,所以p=6.6332能有2位有效数字.1.2.4 计算机中数的表⽰任意⼀个⾮零实数⽤(1.1)式表⽰,是规格化的⼗进制科学记数⽅法.在计算机中通常采⽤⼆进制的数系(或其变形的⼗六进制等),并且表⽰成与⼗进制类似的规格化形式,即浮点形式±2m ×0.β1β2…βt ,这⾥整数m 称为阶码,⽤⼆进制表⽰为m=±α1α2…αs , αj =0或1(j=1,2,…,s),s 是阶的位数.⼩数0.β1β2…βt 称为尾数,其中β1=1,βj =0或1(j=2,3,…,t),t 是尾数部位的位数.s 和t 与具体的机器有关.由于计算机的字长总是有限位的,所以计算机所能表⽰的数系是⼀个特殊的离散集合,此集合的数称为机器数.⽤浮点⽅式表⽰的数有⽐较⼤的取值范围.⼗进制输⼊计算机时转换成⼆进制,并对t 位后⾯的数作舍⼊处理,使得尾数为t 位,因此⼀般都有舍⼊误差.两个⼆进制数作算术运算时,对计算结果也要作类似的舍⼊处理,使得尾数为t 位,从⽽也有舍⼊误差.在实现算法时,计算的最后结果与算法的精确解之间的误差,从根本上说是由机器的舍⼊误差造成的,包括输⼊数据和算术运算的舍⼊误差.因此有必要对计算机中数的浮点表⽰⽅法和舍⼊误差有⼀个初步的了解.有时为了分析某⼀个计算⽅法可能出现的误差现象,为了适应⼈们的习惯,我们会采⽤⼗进制实数系统进⾏误差分析.1.3 数值稳定性和要注意的若⼲原则 1.3.1 数值⽅法的稳定性实际计算时,给定的数据会有误差,数值计算中也会产⽣误差,并且,这些误差在进⼀步的计算中会有误差传播.因此,尽管数值计算中的误差估计⽐较困难,我们还是应该重视计算过程中的误差分析.定义 1.4 对于某个数值计算⽅法,如果输⼊数据的误差在计算过程中迅速增长⽽得不到控制,则称该算法是数值不稳定的,否则是数值稳定的.下⾯举例说明误差传播的现象.例 1.7 计算积分值105nxdx I x =+?, n=0,1,…,6.解由于要计算系列的积分值,我们先推导In 的⼀个递推公式.由1110555n n n n x x I I dx x --++=+?111n xdx n-==,可得下⾯两个递推算法.算法1:115n n I I n-=-,n=1,2, (6)算法2:1115n n I I n -??=-,n=6,5, (1)直接计算可得0ln 6ln 5I =-.如果我们⽤4位数字计算,得I 0的近似值为0I *=0.1823.记n n n E I I *=-,I n *为In 的近似值.对算法1,有15n n E E -=-=…=()5n-E 0.按以上初始值I0的取法有|E 0|?0.5×410-,事实上|E 0|≈0.22×410-.这样,我们得到|E 6|=65|E 0|≈0.34.这个数已经⼤⼤超过了I 6的⼤⼩,所以6I *连⼀位有效数字也没有了,误差掩盖了真值.对算法2,有E k-n =15n ??-E k ,|E 0|=615??|E 6|.如果我们能够给出I 6的⼀个近似值,则可由算法2计算I n (n=5,4,…,0)的近似值.并且,即使E 6较⼤,得到的近似值的误差将较⼩.由于()()11011616551kkk xxI d d x x k k =<<=++??,因此,可取Ik 的⼀个近似值为()()11126151k I k k *=+?? ? ?++??. 对k=6有6I *=0.0262.按0I *=0.1823和6I *=0.0262,分别按算法1和算法2计算,计算结果如表1-1,其中()1n I 为算法1的计算值, ()2n I 为算法2的计算值.易知,对于任何⾃然数n,都有0表1-1n()1nI()2nInI (4位)0 0.1823 0.1823 0.18231 0.0885 0.0884 0.08842 0.0575 0.0580 0.05803 0.0458 0.0431 0.04314 0.0210 0.0344 0.03435 0.0950 0.0281 0.02856-0.3083 0.0262 0.0243当然,数值不稳定的⽅法⼀般在实际计算中不能采⽤.数值不稳定的现象属于误差危害现象.下⾯讨论误差危害现象的其他表现及如何避免问题.1.3.2 避免有效数字的损失在数值计算中,参加运算的数有时数量级相差很⼤,⽽计算机位数有限,如不注意,“⼩数”的作⽤可能消失,即出现“⼤数”吃“⼩数”的现象. 例1.8 ⽤3位⼗进制数字计算x =101+δ1+δ2+…+δ100,其中0.1?δi ?0.4,i =1,2, (100)解在计算机内计算时,要写成浮点数形式,且要对阶.如果是101与δ1相加,对阶时,101=0.101×103,δ1=0.000×103.因此,如果我们⾃左⾄右逐个相加,则所有的δi 都会被舍掉,得x ≈101.但若把所有的δi 先加起来,再与101相加,就有111=101+100×0.1?x ?101+100×0.4=141.可见,计算的次序会产⽣很⼤的影响.这是因为⽤计算机计算时,在运算中要“对阶”,对阶引起了⼤数吃⼩数的现象.⼤数吃⼩数在有些情况下是允许的,但有些情况下则会造成谬误.在数值计算中,两个相近数相减会使有效数字严重损失.例1.9 求实系数⼆次⽅程20ax bx c ++=的根,其中b 2-4ac>0,ab ≠0. 解考虑两种算法. 算法1:1,22x a=算法2:(12b sign b x a--=, 21c x ax =,其中sign 表⽰取数的符号,即()1,0,0,0,1,0.b sign b b b >??==??-对算法1,若ac b 42>>,则是不稳定的,否则是稳定的.这是因为在算法1中分⼦会有相近数相减的情形,会造成有效数字的严重损失,从⽽结果的误差很⼤.算法2不存在这个问题,在任何情况下都是稳定的.因此称算法1是条件稳定的,算法2是⽆条件稳定的.例如,对于⽅程262.10 1.0000x x ++=,⽤4位有效数字计算,结果如下:算法1:x 1=-62.08, x 2=-0.02000. 算法2:x 1=-62.08, x 2=-0.01611.准确解是x 1=-62.083892…,x 2=-0.016107237….这⾥,ac b 42>>,所以算法1不稳定,舍⼊误差对x 2的影响⼤.在进⾏数值计算时,如果遇到两相近数相减的情形,可通过变换计算公式来避免或减少有效数字的损失.例如,如果|x |≈0,有变换公式1cos sin sin 1cos x x xx-=+.如果x 1≈x 2,有变换公式1122lg lg lgx x x x -=.如果x 〉〉1,有变换公式.此外,⽤绝对值很⼩的数作除数时,舍⼊误差会很⼤,可能对计算结果带来严重影响.因此,要避免除数绝对值远远⼩于被除数绝对值的除法运算.如果⽆法改变算法,则采⽤增加有效位数进⾏计算,或在计算上采⽤双精度运算,但这要增加机器计算时间和多占内存单元.1.3.3 减少运算次数在数值计算中,要注意简化计算步骤,减少运算次数,这也是数值分析中所要研究的重要内容.同样⼀个计算问题,如果能减少运算次数,不但可节省计算机的计算时间,还能减少误差的积累.下⾯举例说明简化计算公式的重要性.例1.10 给定x ,计算多项式()110nn n n n P x a x a xa --=+++的值.如果我们先求ak x k ,需要进⾏k 次乘法,再相加,则总共需要()12n n +次乘法和n次加法才能得到⼀个多项式的值.如果我们将多项式写成下⾯的形式()(){}1210n n n n P x x x x a x a a a a --??=+++++?? ,则只需n 次乘法和n 次加法即可得到⼀个多项式的值,这就是著名的秦九韶算法,可描述为1,,1,2,,0,n n k k k u a u u x a k n n +=??=+=--?最后有()0n u P x =.例1.11 计算ln2的值. 解如果利⽤级数()()11ln 11nn n xx n∞+=+=-∑计算ln2,若要精确到误差的绝对值⼩于10-5,要计算10万项求和,计算量很⼤,并且舍⼊误差的积累也⼗分严重.如果改⽤级数()35211ln 213!5!21!n xx x xx x n +??+=+++++ ? ?-+??来计算ln2,取x =1,则只要计算前9项,截断误差便⼩于10-10.1.4 向量和矩阵的范数为了对矩阵计算进⾏数值分析,我们需要对向量和矩阵的“⼤⼩”引进某种度量.在解析⼏何中,向量的⼤⼩和两个向量之差的⼤⼩是⽤“长度”和“距离”的概念来度量的.在实数域中,数的⼤⼩和两个数之间的距离是通过绝对值来度量的.范数是绝对值概念的⾃然推⼴.1.4.1 向量的范数定义1.5 如果向量x ∈n R 的某个实值函数f(x )=‖x ‖满⾜ (1) 正定性:x ?0,且x =0当且仅当x =0;(2) 齐次性:对任意实数α,都有αx =|α|x ; (3) 三⾓不等式:对任意x ,y ∈R n ,都有+x y ?x +y ,则称x 为n R 上的⼀个向量范数.在n R 中,记()12,,,Tn x x x =x ,实际计算中最常⽤的向量范数有: (1) 向量的∞范数1max i i nx ∞≤≤=x;(2) 向量的1范数11nii x ==∑x;(3) 向量的2范数12221in x i ==??∑x.容易验证,向量的∞范数和1范数满⾜定义1.5中的条件.对于2范数,满⾜定义1.5中的条件(1)和(2)是显然的,对于条件(3),利⽤向量内积的Cauchy-Schwarz 不等式可以验证.更⼀般地,有如下向量的p 范数1pipn px i ==??∑x,其中p ∈ [1,+∞).容易验证1ppn∞∞≤≤xxx,由此可得如下定理.定理1.2 lim pp ∞→∞=xx.下⾯,我们利⽤向量范数的连续性来说明向量范数的重要特征.定理1.3 设给定A ∈R n ×n ,x =(x 1,x 2,…,x n )T ∈R n ,则对R n 上每⼀种向量范数,‖A x ‖都是x 1,x 2,…,x n 的n 元连续函数.证设a j 为A 的列向量,将A 写成A =(a 1,a 2,…,a n ). 则由三⾓不等式,对h =(h 1,h 2,…,h n )T ∈R n,有|‖A (x +h )‖-‖A x ‖|?‖A h ‖=‖1ni i h =∑a i ‖1ni i h =∑‖a i ‖M max|h i |,其中M=1ni =∑‖a i ‖.所以,对任意的ε>0,当max|h i |<Mε时,有|‖A (x +h )‖-‖A x ‖|<ε, 这就证明了‖A x ‖的连续性.推论1.1 ‖x ‖是x 的各分量的连续函数. 向量范数的⼀个重要特征是具有等价性.定理 1.4 R n 上的所有向量范数是彼此等价的,即对R n 上的任意两种向量范数‖x ‖s和‖x ‖t ,存在常数c 1,c 2>0,使得对任意x ,有c 1‖x ‖s ?‖x ‖t ?c 2‖x ‖s .证只要就‖x ‖s =‖x ‖∞证明上式成⽴即可,即证明存在常数c 1,c 2>0,对⼀切x ∈R n且x ≠0,有c 1‖x ‖∞?‖x ‖t ?c 2‖x ‖∞.记R n 上的有界闭集D={x :x =(x 1,x 2,…,x n )T ,‖x ‖∞=1}.由定理1.3的推论知,‖x ‖t 是D 上的n 元连续函数,所以在D 上有最⼤值c 2和最⼩值c 1,且x ∈D 时有x ≠0,故有c 2?c 1>0.现考虑x ∈R n ,且x ≠0,则有∞x x ∈D,所以有c 1?‖∞x x ‖t ?c 2, ?x ∈R n ,x ≠0.从⽽对x ≠0有c 1‖x ‖∞?‖x ‖t ?c 2‖x ‖∞.⽽x =0时上式⾃然成⽴,定理得证.由于向量范数之间具有等价性,对于范数的极限性质,我们只需对⼀种范数进⾏讨论,其余范数也都具有相似的结论.⽐如,我们可以⽅便地讨论向量序列的收敛性.定义1.6 设向量序列x (k)=()()()()12,,,Tk k k nx x x ∈R n ,k=1,2,…,若存在x *=()12 ,,,Tn x x x ***∈R n ,使得()lim k iik x x *→∞=, i =1,2,…,n,则称序列{x (k)}收敛于x *,记为()lim k ik *→∞=x x.按定义有)()lim lim 0k k k k **→∞→∞∞=?-=xx xx.⼜因为()()()12k k k c c ***∞∞-≤-≤-xxxxxx,所以有()()lim lim 0k k k k **→∞→∞=?-=xx xx.因此,若向量序列在⼀种范数下收敛,则在其他范数下也收敛.不必强调是在哪种范数意义下收敛.1.4.2矩阵的范数定义1.7 如果矩阵A ∈R n ×n 的某个实值函数f(A )=‖A ‖满⾜ (1) 正定性:‖A ‖?0,且‖A ‖=0当且仅当A =0;(2) 齐次性:对任意实数α,都有‖αA ‖=|α|‖A ‖;(3) 三⾓不等式:对任意A ,B ∈R n ×n ,都有‖A +B ‖?‖A ‖+‖B ‖; (4) 相容性:对任意A ,B ∈R n ×n ,都有‖A B ‖?‖A ‖‖B ‖;则称‖A ‖为Rn ×n上的⼀个矩阵范数.可以验证,对()ij n na ?=A ,12211Fn n a ij i j ?? ?=∑∑ ?==??A是⼀种矩阵范数,称之为Froben i us 范数,简称F 范数.由于矩阵与向量常常同时参与讨论与计算,矩阵范数与向量范数之间需要有⼀种联系. 定义1.8 对于给定的R n 上的⼀种向量范数‖x ‖和R n ×n 上的⼀种矩阵范数‖A ‖,如果满⾜‖A x ‖?‖A ‖‖x ‖,则称矩阵范数‖A ‖与向量范数‖x ‖相容.上⾯的定义1.7是矩阵范数的⼀般定义,下⾯我们通过已给的向量范数来定义与之相容的矩阵范数.定义 1.9 设x ∈R n ,A ∈R n ×n ,对给出的⼀种向量范数v x ,相应地定义⼀个矩阵的⾮负函数m axvvx v≠=A x Ax.称之为由向量范数导出的矩阵范数,也称为算⼦范数或从属范数.由定义可得vvv≤A xAx,1max vvv==xAAx.算⼦范数满⾜矩阵范数⼀般定义中的条件(1)和(2)是显然的,现验证满⾜条件(3)和(4).对任意的A ,B ∈R n ×n ,有()1maxvvv =+=+xA B x11max max v vvvvvxx==≤+=+Ax BxAB1max vvv==xABABx1max vvvvvv=≤=xABxA.因此,算⼦范数满⾜矩阵范数⼀般定义中的条件(3)和(4).由常⽤的向量范数,可以导出与其相容的矩阵算⼦范数.定理1.5 设A ∈R n ×n ,记()ij n na ?=A ,则(1)11max nij i nj a ∞≤≤==∑A,称之为矩阵A 的⾏范数;(2) 111m ax nij j ni a ≤≤==∑A ,称之为矩阵A 的列范数;(3)2=A称之为矩阵A 的2范数或谱范数,其中,()max TλA A 表⽰T A A的最⼤特征值.证这⾥只对(1)和(3)给出证明,(2)的证明同理可得. 先证明(1):设x =(x 1,x 2,…,x n )T ≠0,不妨设A ≠0,则有1111max max nnij j ij i ni nj j xa x xa ∞∞≤≤≤≤===≤∑∑A .111max max nij xi nj a ∞∞∞=≤≤===∑AAx.设矩阵A 的第p ⾏元素的绝对值之和达到最⼤,即111max nnpj ij i nj j a a ≤≤===∑∑.取向量()12,,,Tn ξξξ= ξ,其中1,0,1,0.a pj j apjξ≥??=?-显然,‖ξ‖∞=1,⽽且1111m ax m axnn∞∞=≤≤===≥==∑∑xAA xA ξ.于是(1)得证.再证明(3):显然,A TA 是对称半正定矩阵,它的全部特征值均⾮负,设为120n λλλ≥≥≥≥ .由实对称矩阵的性质,各特征值对应的特征向量必正交.设对应的标准正交特征向量为12,,,nu u u ,即T i i i λ=A Au u (i =1,2,…,n),(u i ,u j )=δi j (i ,j=1,2,…,n).对向量x ∈R n ,‖x ‖2=1,可由R n 的⼀组基u i (i =1,2,…,n)线性表⽰,即有1niii c ==∑x u ,22211nii c===∑x11nnT Ti ii i i cc λλλ====≤=∑∑A xx A A x .另⼀⽅⾯,取ξ=u 1,显然有‖ξ‖2=1,211112T T Tλλ===A ξξA A ξu u .因此,2221m ax ===xAA x得证.由定理1.5可见,计算⼀个矩阵的⾏范数和列范数是⽐较容易的,⽽矩阵的2范数计算却不⽅便,但由于它有许多好的性质,所以在理论上还是有⽤的.例1.12 设矩阵1234-??=解 {}m ax 3,77∞==A,{}1m ax 4,66==A ,10141420T-??=-A A ()21014det 3041420Tλλλλλ--==-+-I A A ,求得115λ=+215λ=-因此25.46=≈A.定义1.10 设A ∈R n ×n 的特征值为λi (i =1,2,…,n),称()1max i i nρλ≤≤=A为A 的谱半径.谱半径在⼏何上可解释为以原点为圆⼼,能包含A 的全部特征值的圆的半径中最⼩者.例1.13 计算例1.12中矩阵的谱半径.解由A 的特征⽅程()2=--=-I A得12λ=,22λ=所以() 5.372ρ=≈A .定理1.6 设A ∈R n ×n ,则有()ρ≤A A .证设A x =λx ,x ≠0,且|λ|=ρ(A ),必存在向量y ,使x y T 不是零矩阵.于是()TTTTA ρλ==≤A xyxyxyA xy,即得ρ(A )?‖A ‖.例1.14 设矩阵A 与矩阵B 是对称的,求证ρ(A +B )?ρ(A )+ρ(B ).证因T =A A ,于是有()()()222max max 2A A AA ,即‖A ‖2=ρ(A ).同理‖B ‖2=ρ(B ).由于A +B =(A +B )T,因此()()()222ρρρ+=+≤+=+A B A BABA B .定理1.7 如果‖B ‖<1,则I ±B 为⾮奇异矩阵,且()111-±≤-I B B,这⾥的矩阵范数是指矩阵的算⼦范数.证若I ±B 奇异,则存在向量x ≠0,使(I ±B )x =0,故有ρ(B )?1,这与‖B ‖<1⽭盾,所以I ±B ⾮奇异.由于()()11--±=± I B I B I B ,于是得()()11--±≤+±I B I BI B .上的任意两种矩阵范数都是等价的,即对Rn ×n上的任意两种矩阵范数sA和t A ,存在常数c 1,c 2>0,使得12stsc c ≤≤AAA.由矩阵范数的等价性,我们可以⽤矩阵的范数描述矩阵序列的极限性质.定义1.11 设矩阵序列()()()kk n nijn na ??=∈A R,k=1,2,…,若存在()n nij n na **=∈A R,使得()lim k ijijk a a *→∞()lim k k *→∞=AA.可以验证()()lim lim 0k k k k **→∞→∞=?-=AA AA.评注本章介绍了数值计算的研究对象、误差及相关概念、数值计算的稳定性及构造算法的基本原则.考虑到矩阵计算的数值分析,本章还介绍了向量范数和矩阵范数的基本概念和常⽤定理.误差分析问题是数值分析中重要⽽困难的问题.误差的基本概念和误差分析的若⼲原则,对学习本课程是很有必要的.但是,作为⼯程或科学计算的实际问题则要复杂得多,往往要根据不同问题分门别类地进⾏分析.例如,由于舍⼊误差有随机性,有⼈应⽤概率的观点研究误差规律.在⼯程计算中,常⽤⼏种不同办法(包括实验⽅法)进⾏⽐较,以确定计算结果的可靠性.20世纪60年代以来,发展了两种估计误差的理论:⼀种是J.H.W i lk i nson 等⼈针对计算机浮点算法提出了⼀套预先估计的研究误差的⽅法,使矩阵运算的舍⼊误差研究获得了新发展;另⼀种是R .E.Moore 等⼈应⽤区间分析理论估计误差,开创了研究误差的新⽅法. 关于范数⽅⾯,所述内容是为以下各章服务的⼀些初步概念和常⽤的定理,对本书够⽤就可以了.例如只讨论了R n ×n 的范数,⽽没有顾及R n ×m .⼜例如介绍了R n 和R n ×n 上范数的等价性,此性质对有限维空间都是成⽴的,⽽对于C[a,b]则没有这个性质,这些都是赋范线性空间有关的问题,详细讨论这些问题是泛函分析的内容.习题 11.1 已知e=2.71828…,问下列近似值A x 有⼏位有效数字,相对误差界是多少? (1) x =e, A x =2.7; (2) x =e, A x =2.718; (3) x =e100, A x =0.027; (4) x =e100, A x =0.02718. 1.2 设原始数据的下列近似值每位都是有效数字:1x *=1.1021, 2x *=0.031, 3x *=56.430. 试计算(1) 1x *+2x *+3x *;(2),并估计它们的相对误差界.1.3 设x 的相对误差界为δ,求n x 的相对误差界.1.4 设x >0,x 的相对误差界为δ,求ln2的绝对误差界.1.5 为了使计算球体体积时的相对误差不超过1%,问测量半径R 时的允许相对误差界是多少?1.6 三⾓函数值取4位有效数字,怎样计算1-cos2°才能保证精度? 1.7 设0Y =28,按递推公式nY=1n Y --…,计算.若取27.982(5位有效数字),试问计算Y 100将有多⼤误差?1.8 求解⽅程25610x x ++=,使其根⾄少具有4位有效数字(≈27.982).1.9 正⽅形的边长⼤约为100 cm ,应怎样测量才能使其⾯积的误差不超过21cm ? 1.10 序列{yn}满⾜递推关系1101n n y y -=-,n=1,2,….若y 0 1.41(3位有效数字),计算到y 10时的误差有多⼤?这个计算过程稳定吗?1.11 对积分11n x n I x edx -=,n=0,1,…,验证101I e-=-,11n n I nI -=-.若取e -1≈0.3679,按递推公式11n n I nI -=-,⽤4位有效数字计算I 0,I 1,…,I 9,并证明这种算法是不稳定的.1.12 反双曲正弦函数为()(ln f x x =+.如何计算f(x )才能避免有效数字的损(1) sin x -siny ; (2) arctan x -arctany ;(3)2; (4)212xe-.1.14 已知三⾓形⾯积1sin 2s ab C=,其中C 为弧度,0π,且测量a,b,C 的误差分别为Δa,Δb,ΔC ,证明⾯积的误差Δs 满⾜s a b C s ab C≤++ .1.15 设P ∈R n ×n 且⾮奇异,⼜设‖x ‖为R n 上的⼀种向量范数,定义p=xP x.试证明‖x‖P 是R n 上的⼀种向量范数.1.16 设A ∈R n ×n 为对称正定矩阵,定义()12,A=xA x x .试证明‖x‖A 为R n 上的⼀种向量范数.1.17 设矩阵0.60.50.10.3??=2F≤≤AA,并说明‖A ‖F 与‖x‖2相容.1.19 设P ∈Rn ×n且⾮奇异,⼜设‖x‖为R n上的⼀种向量范数,定义范数‖x‖P =‖P x ‖.证明对应于‖x‖P 的算⼦范数1 p-=APAP.1.20 设A 为⾮奇异矩阵,求证:11m iny ∞-≠∞∞=A y yA.。
MATLAB数值计算功能
MATLAB数值计算功能
MATLAB是一种非常强大的数值计算软件,被广泛应用于科学计算、
工程计算和数据分析等领域。
它提供了丰富的数值计算功能,包括基本的
数学运算、线性代数、数值积分、微分方程求解、优化算法等。
下面将详
细介绍一些常见的数值计算功能。
1.数学运算:
MATLAB提供了丰富的数学函数,可以进行各种基本的算术运算,如
加减乘除、幂运算、取模运算等。
同时,它还提供了一些高级的数学函数,如三角函数、指数函数、对数函数等。
通过这些函数,用户可以进行各种
复杂的数学运算。
2.线性代数:
3.数值积分:
4.微分方程求解:
5.优化算法:
MATLAB提供了各种优化算法,如线性规划、非线性规划、整数规划、二次规划等。
用户可以通过设定目标函数和约束条件,利用MATLAB的优
化函数寻找最佳的解。
这对于优化问题的求解非常有用,如工程设计、生
产调度等。
6.统计分析:
7.数据可视化:
总之,MATLAB的数值计算功能非常丰富,可以满足各种数学计算和数据分析的需求。
它不仅提供了各种基本的数学运算功能,还提供了高级的线性代数、数值积分、微分方程求解、优化算法和统计分析等功能。
同时,其强大的数据可视化功能也是很多用户选择MATLAB作为数值计算工具的重要原因之一。
一阶导数的五点数值微分公式及外推算法
一阶导数的五点数值微分公式及外推算法微积分是数学中的一个重要分支,它主要研究函数的变化规律。
在微积分中,导数是一个非常重要的概念,它描述了函数在某一点的变化率。
而数值微分则是一种通过数值计算来近似求解导数的方法。
本文将介绍一阶导数的五点数值微分公式及外推算法。
一、五点数值微分公式五点数值微分公式是一种通过函数在某一点及其周围四个点的函数值来近似求解导数的方法。
具体公式如下:$f'(x_0) \approx \frac{-25f(x_0)+48f(x_0+h)-36f(x_0+2h)+16f(x_0+3h)-3f(x_0+4h)}{12h}$其中,$h$为步长,$x_0$为求解导数的点。
这个公式的精度比较高,误差为$O(h^4)$,但是计算量比较大,需要计算五个点的函数值。
二、外推算法外推算法是一种通过不断增加步长来提高数值微分精度的方法。
具体步骤如下:1. 用五点数值微分公式计算出$f'(x_0)$的近似值。
2. 将步长缩小一半,再次用五点数值微分公式计算$f'(x_0)$的近似值。
3. 用第一步和第二步的结果计算外推值:$T_1=\frac{2^4f'(x_0,h/2)-f'(x_0,h)}{2^4-1}$其中,$f'(x_0,h/2)$为第二步计算的近似值。
4. 将步长再次缩小一半,用五点数值微分公式计算$f'(x_0)$的近似值。
5. 用第二步和第四步的结果计算外推值:$T_2=\frac{2^4T_1-T_0}{2^4-1}$其中,$T_0$为第一步计算的外推值。
6. 重复以上步骤,直到外推值的误差满足要求。
外推算法的优点是可以通过不断增加步长来提高精度,而且计算量比较小。
但是需要注意的是,步长不能太小,否则会出现截断误差。
一阶导数的五点数值微分公式及外推算法是一种比较精确的数值微分方法,可以在实际计算中得到广泛应用。
如何运用Excel的COUNTIF函数进行条件计数
如何运用Excel的COUNTIF函数进行条件计数Excel是一款功能强大的电子表格软件,其中的COUNTIF函数是一个非常实用的函数,可以帮助我们进行条件计数。
本文将介绍如何使用Excel的COUNTIF函数进行条件计数,并提供相关的示例和技巧。
首先,让我们来了解一下COUNTIF函数的基本语法。
COUNTIF函数的语法如下:COUNTIF(range, criteria)。
其中,range代表需要进行计数的范围,可以是一个单独的单元格,也可以是一个区域;criteria 代表计数的条件,可以是一个具体的数值、文本或者表达式。
通过COUNTIF函数,我们可以根据不同的条件进行计数。
下面是一些常见的使用场景和相应的COUNTIF函数的应用示例。
1. 计算某个数值出现的次数:假设我们有一列数据,要计算其中等于5的数值出现的次数,可以使用以下公式:=COUNTIF(A1:A10, 5)其中,A1:A10代表要进行计数的范围,5代表计数的条件。
这个公式将返回等于5的数值在范围内出现的次数。
2. 计算某个文本出现的次数:如果我们想要计算某个单词在一个文本字符串中出现的次数,可以使用以下公式:=COUNTIF(A1, "apple")其中,A1代表要进行计数的单元格,"apple"代表计数的条件。
这个公式将返回在A1单元格中出现的单词"apple"的次数。
3. 计算满足多个条件的数值或文本出现的次数:COUNTIF函数也支持计算满足多个条件的数值或文本出现的次数。
例如,我们想要计算某个区域中大于10并且小于20的数值的出现次数,可以使用以下公式:=COUNTIF(A1:A10, ">10") - COUNTIF(A1:A10, ">20")这个公式将返回在A1:A10范围内满足大于10且小于20条件的数值的出现次数。
学生计算器说明书
学生计算器说明书学生计算器说明书1. 引言学生计算器是一款功能强大的工具,为学生提供了各种数学计算和问题解决的方法。
本文档将详细介绍学生计算器的主要功能,使用方法以及技巧。
2. 功能概述学生计算器具备以下主要功能:- 四则运算:加法、减法、乘法、除法- 百分比计算- 平方计算、开方计算- 单位换算- 常用数学函数计算:正弦、余弦、正切等- 统计计算:平均值、中位数、标准差等除以上功能外,学生计算器还提供了记忆功能,可以存储多个计算结果,方便用户随时查看。
3. 使用方法3.1 基本计算学生计算器的基本计算功能非常简单,只需按照标准的数学运算符号即可完成。
例如,要计算2加2的结果,只需按照以下步骤进行操作:1. 打开学生计算器2. 在输入框中键入`2+2`3. 点击等号按钮或按下回车键4. 结果将显示在屏幕上,即43.2 百分比计算学生计算器可以轻松进行百分比计算。
要计算一个数的百分之几,可以按照以下步骤进行:1. 打开学生计算器2. 在输入框中键入要计算的数,如`80`3. 输入乘法符号`*`,然后键入百分比数,如`25%`4. 点击等号按钮或按下回车键5. 结果将显示在屏幕上,即203.3 单位换算学生计算器支持常用单位的换算。
要进行单位换算,可以按照以下步骤进行操作:1. 打开学生计算器2. 在输入框中键入要转换的数值,如`5`3. 输入单位转换符号`*`,然后键入目标单位,如`cm`4. 点击等号按钮或按下回车键5. 结果将显示在屏幕上,即5003.4 数学函数计算学生计算器可以计算常用的数学函数。
要计算正弦、余弦、正切等函数的值,可以按照以下步骤进行操作:1. 打开学生计算器2. 在输入框中键入要计算的函数,如`sin(45)`3. 点击等号按钮或按下回车键4. 结果将显示在屏幕上,即0.70713.5 统计计算学生计算器提供了一些常用的统计计算功能,如平均值、中位数、标准差等。
要进行统计计算,可以按照以下步骤进行操作:1. 打开学生计算器2. 在输入框中键入要计算的数值,以逗号分隔,如`1, 2, 3, 4, 5`3. 输入统计计算符号,如`mean`代表平均值,`median`代表中位数4. 点击等号按钮或按下回车键5. 结果将显示在屏幕上,即34. 技巧与注意事项- 在进行复杂计算时,可以使用括号来改变计算顺序。
数值计算方法 5插值法
5.2.3 n次拉格朗日插值
➢问题描述
插值基点:x0,x1,…,xn(n+1个点互异) 插值函数:不超过n次的多项式
插值条件:Ln(xi)=yi, i=0,1,2,…,n
➢基函数
li (x)
(x x0 ) (x xi1 )(x xi1 ) (x xn ) (xi x0 ) (xi xi1 )(xi xi1 ) (xi xn )
定义5-3
设H
是
n
不超过n次的多项式的全体的集合,
0
(
x)
,1
(
x),
,n (x)
是H n中n
1个线性无关的多项式,则0 (x),1 (x),
,
n
(
x)是H
的
n
一组基函数。
注意:基函数是不唯一的;
n
H n中的任一多项式pn (x)均可由基函数唯一表示,即pn (x) kii (x) i0
➢定理5-1 (插值函数的存在唯一性定理)
由于多项式有其优良的特性,所以通常都是用多项式作为 插值函数。还有其它类型的插值函数,如有理函数插值、 三角函数插值等
➢函数插值涉及的基本问题
插值函数的存在唯一性问题
插值函数的构造问题
截断误差估计与收敛性问题
➢ 代数多项式插值函数的构造方法
拉格朗日插值法 埃尔米特插值法
牛顿插值法
样条函数插值法
拉格朗日插值函数均可表示为一组基函数与函数值的线性组 合,这些基函数与被插函数无关,只需用插值基点有来构造。
5.2.1 拉格朗日线性插值L1(x) ➢线性插值及几何意义
n=1时的n次多项式L1(x) 称为线性插值。此时,有两个互异的 插值基点:x0,x1,插值条件为: L1(x0)=y0, L1(x1)=y1 。
MATLAB在材料科学中的运用
MATLAB在材料科学中的应用举例摘要本文通过介绍MATLAB软件在材料科学中的运用,体现出了MATLAB语言的特点以及强大的图像处理能力和其丰富的工具箱给用户带来的方便、快捷的运算处理数据的能力。
加之其以矩阵为最小的单位,使其更易懂、易学。
在正文中,首先采用L系统与迭代函数系统(IFS)分形绘制方法,通过数学实验的形式绘制分形植物,模拟的分形植物细节丰富,形态生动逼真,体现出了MATLAB 在绘图与函数处理中的优势。
接着介绍了其在聚合物改性水泥砂浆的线性回归研究中的作用。
最后,通过MATLAB在结构化学的应用,证实了MATLAB精确的数值与符号运算能力,强大的作图与拟合功能,在工程技术领域应用广泛。
最后,每个人在这次课程设计完成后,谈了一下在学习、和课程设计中的感受,觉得通过对MATLAB的学习,让我们了解到了数学并不仅仅是传统的数学,更值得我们去开发和专研。
关键词:MATLAB 材料科学分形植物课程设计数学引言MATLAB 是矩阵实验室(Matrix Laboratory )的简称,是美国MathWorks 公司出品的一款优秀的数学计算软件,其强大的数值计算能力和数据可视化能力令人震撼。
其主要包括MATLAB 和Simulink 两大部分。
到今天其已发展到R2011B 版本,是应用数学、信息与计算科学等专业本科生和研究生必须掌握的基本技能。
其主要具有5项功能,数值计算功能、符号计算功能、图形与数据可视化功能、可视化建模仿真功能、与其他环境联合编程的功能。
这些功能让其在各个领域都能起到强大的作用。
材料科学是研究材料的组织结构、性质、生产流程和使用效能,以及它们之间相互关系的科学。
材料科学是多学科交叉与结合的结晶,是一门与工程技术密不可分的应用科学。
中国的材料科学研究水平位居世界前列,有些领域甚至居于世界领先水平。
1 M A T L A B 分形植物模拟 1.1 L 系统与迭代函数系统 1.1.1 L 系统L 系统是美国生物学家Lindenm ayer1968年为模拟生物形态而设计的描述植物形态与生长的方法。
数值分析5LU分解法
数值分析5LU分解法LU分解法是一种常用的数值分析方法,用于解线性方程组。
本文将详细介绍LU分解法的原理、算法步骤、优缺点以及应用领域,以期能够全面地掌握这一方法。
一、LU分解法原理LU分解法是将一个方程组的系数矩阵A分解为两个矩阵L和U的乘积的形式,其中L是下三角矩阵,U是上三角矩阵,通过分解可以简化方程组的求解过程。
LU分解法的基本思想是将原始方程组Ax=b分解为Ly=b和Ux=y两个方程组,其中L和U是通过A分解得到的矩阵。
二、算法步骤1.首先,将系数矩阵A分解为两个矩阵L和U。
L是下三角矩阵,主对角线元素均为1,而U是上三角矩阵。
2.然后,将原始方程组Ax=b转化为Ly=b,求解y的值。
3.最后,将解y代入Ux=y,求解x的值,即可得到方程组的解。
三、算法优缺点1.优点:LU分解法将原始方程组的系数矩阵分解为两个形式简单的矩阵,简化了方程组的求解过程。
对于重复使用系数矩阵A的情况,只需要进行一次LU分解,然后根据新的b值求解新方程组,提高了计算效率。
2.缺点:LU分解法需要进行矩阵分解计算,计算量较大,因此对于规模较大的方程组计算效率较低。
此外,当系数矩阵A存在奇异性或病态时,LU分解法可能会失败。
四、应用领域LU分解法在科学计算领域有着广泛的应用,特别是在求解线性方程组方面。
例如,在工程领域中,常需要通过数值方法求解复杂的结构力学问题,此时可以使用LU分解法求解由有限元方法离散得到的大规模线性方程组。
另外,LU分解法还可以用于解非线性方程组、求逆矩阵、计算矩阵的行列式等。
总结:LU分解法是一种常用的数值分析方法,用于求解线性方程组。
通过将系数矩阵A分解为两个矩阵L和U的乘积形式,可以简化方程组的求解过程。
LU分解法的优点是提高了方程组的求解效率,适用于重复使用系数矩阵A的情况。
然而,LU分解法也存在一定的缺点,如计算量较大、对奇异性和病态问题的处理较为困难。
LU分解法在科学计算领域有着广泛的应用,可以用于求解工程问题中的大规模线性方程组,解非线性方程组,求逆矩阵等。
人教版(2015)信息技术五年级下学期第11课数值运算真快捷(教案)
9. 网络安全教育资料:为学生准备一份网络安全教育资料,包括网络安全知识、个人信息保护等,加强学生的网络安全意识,预防网络安全风险。
10. 课外拓展资源:为学生准备一些与数值运算相关的课外拓展资源,如数学游戏、编程练习等,鼓励学生在课后进行自主学习和拓展,提高学生的信息素养和综合能力。
2. 拓展建议:
(1)让学生利用课后时间,在网络上寻找更多的电子表格数值运算应用案例,并进行分析,以拓宽视野,提高应用能力。
(2)鼓励学生参加学校或社区组织的电子表格数值运算竞赛,以提高学生的运算速度和准确性。
(3)建议学生将所学到的电子表格数值运算知识分享给家人和朋友,帮助他们解决实际生活中的数值运算问题。
其次,我在课堂上的提问和互动环节发现,有些学生在回答问题时显得有些紧张和不自信。这可能是因为他们在课堂上没有足够的机会表达自己的观点和想法。因此,我计划在未来的教学中,鼓励更多的学生参与课堂讨论,提高他们的自信心和表达能力。
(2)电子表格应用案例集:为学生准备一份电子表格应用案例集,包括不同行业、不同场景下的电子表格应用实例,让学生了解电子表格在实际工作中的广泛应用。
(3)电子表格函数使用手册:为学生准备一份电子表格函数使用手册,详细介绍电子表格中各种函数的用法和示例,方便学生课后查阅和学习。
(4)数值运算与现实生活:为学生准备一些与数值运算相关的现实生活场景案例,如购物计算、理财规划等,让学生学会运用电子表格数值运算解决实际问题。
解答:
首先,将数据输入到电子表格中,每个数据占据一个单元格。然后,我们可以使用数据透视表来对数据进行汇总和分析。选择需要进行分析的数据区域,然后点击“插入”菜单中的“数据透视表”。在弹出的对话框中,选择新工作表作为数据透视表的位置,然后点击“确定”。在数据透视表中,可以添加行标签、列标签和数值字段,以便对数据进行汇总和分析。
计算器有关按键说明大全
计算器有关按键说明大全一、基本按键ON 开机OFF 关机AC 总清,清除所有存储和显示数值(又:CA, All ClearC 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/CCE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry⌫清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insertREPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼◄►SHIFT 转换,上档选择(又: 2ndF、2nd、2nd(第二功能选择,Second Function)、ALT,按键设定为与其同色的功能ALPHA 阿尔法,字母,按键设定为与其同色的功能MODE 方式、模式,用于模式切换(不同的计算器有所不同,常用的见下表:对于数值计数法有:Norm(normal)标准计数法Fix(fixed)固定小数点Eng(engineering)工程计数法Sci(scientific)科学计数法Inv 反、倒置,用于使用其它有关按键的相反功能,多用于电子计算器.如ln键变为e x键,sin键变为sin—1键,lsh键变为rsh键等EXP 以科学记数法输入数字,即表示以10为底的方幂(又:EE,英文名Exponent说明:科学记数法:将一个数字表示成a×10的n次幂的形式,其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
如:5EXP2即5×102,就是500F—E 科学记数法开关,显示方式转换作用:十进制浮点(Floating Point)与科学记数法(Exponent)显示转换S⇔D 数值在标准形式(Standard)和小数形式(Decimal fraction)之间转换作用:分数与小数显示转换Ran# 随机数(又:RAND、RND、Rnd#,英文名Random, : 分隔符,用于输入方程式之间、坐标数据之间分隔用∠角,用于标识极坐标数据的角度数据或复数的虚数二、基础运算0、00、1、2、3、4、5、6、7、8、9 数字A、B、C、D、E、F 十六进制数字或存储单元。
数值计算_第5章 插 值
第5章插值5.1引言在实际问题中,有时只能给出函数在平面上的一些离散点的值,而不能给出的具体解析表达式,或者的表达式过于复杂而难于运算。
这时我们需要用近似函数来逼近函数,在数学上常用的函数逼近的方法有:∙插值。
∙一致逼近。
∙均方逼近或称最小乘法。
什么是插值?简单地说,用给定的未知函数的若干函数值的点构造的近似函数要求与在给定点的函数值相等,则称函数为插值函数。
例如:在服装店订做风衣时,选择好风衣的样式后,服装师量出并记下你的胸围、衣长和袖长等几个尺寸,这几个尺寸就是风衣函数的插值点数值,在衣料上画出的裁剪线就是服装师构造的插值函数,裁剪水平的差别就在于量准插值点和构造合乎身材的插值函数。
定义5.1为定义在区间上的函数,,为上个互不相同的点,为给定的某一函数类。
若上有函数,满足则称为关于节点在上的插值函数;称点为插值节点;称,为插值型值点,简称型值点或插点;称为被插函数。
这样,对函数在区间上的各种计算,就用对插值函数的计算取而代之。
构造插值函数需要关心下列问题:∙插值函数是否存在?∙插值函数是否唯一?∙如何表示插值函数?如何估计被插函数与插值函数的误差?5.2拉格朗日(Lagrange)插值可对插值函数选择多种不同的函数类型,由于代数多项式具有简单和一些良好的特性,例如,多项式是无穷光滑的,容易计算它的导数和积分,故常选用代数多项式作为插值函数。
5.2.1 线性插值问题5.1 给定两个插值点其中,怎样做通过这两点的一次插值函数?过两点作一条直线,这条直线就是通过这两点的一次多项式插值函数,简称线性插值。
如图5.1所示。
图5.1 线性插值函数在初等数学中,可用两点式、点斜式或截距式构造通过两点的一条直线。
下面先用待定系数法构造插值直线。
设直线方程为,将分别代入直线方程得:当时,因,所以方程组有解,而且解是唯一的。
这也表明,平面上两个点,有且仅有一条直线通过。
用待定系数法构造插值多项式的方法简单直观,容易看到解的存在性和惟一性,但要解一个方程组才能得到插值函数的系数,因工作量较大和不便向高阶推广,故这种构造方法通常不宜采用。
计算器有关按键说明大全
计算器有关按键说明大全一、基本按键ON 开机OFF 关机AC 总清,清除所有存储和显示数值(又:CA, All ClearC 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/CCE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry⌫清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insertREPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼◄►SHIFT 转换,上档选择(又: 2ndF、2nd、2nd(第二功能选择,Second Function)、ALT,按键设定为与其同色的功能ALPHA 阿尔法,字母,按键设定为与其同色的功能MODE 方式、模式,用于模式切换(不同的计算器有所不同,常用的见下表:对于数值计数法有:Norm(normal)标准计数法Fix(fixed)固定小数点Eng(engineering)工程计数法Sci(scientific)科学计数法Inv 反、倒置,用于使用其它有关按键的相反功能,多用于电子计算器。
如ln键变为e x键,sin键变为sin-1键,lsh键变为rsh键等EXP 以科学记数法输入数字,即表示以10为底的方幂(又:EE,英文名Exponent说明:科学记数法:将一个数字表示成a×10的n次幂的形式,其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
如:5EXP2即5×102,就是500F-E 科学记数法开关,显示方式转换作用:十进制浮点(Floating Point)与科学记数法(Exponent)显示转换S⇔D 数值在标准形式(Standard)和小数形式(Decimal fraction)之间转换作用:分数与小数显示转换Ran# 随机数(又:RAND、RND、Rnd#,英文名Random, : 分隔符,用于输入方程式之间、坐标数据之间分隔用∠角,用于标识极坐标数据的角度数据或复数的虚数二、基础运算0、00、1、2、3、4、5、6、7、8、9 数字A、B、C、D、E、F 十六进制数字或存储单元. 十进制小数点+-×(*)÷(/)四则运算符注:-有的作为负号=等号+/-正负转换,负号(又:、±(-)()括号,(称为始括号或左括号,)称为末括号或右括号注:=前的)键操作可省略a、d/c 分数输入或将计算结果在小数值和分数值之间变换注:一般结果为小数,如果其绝对值大于或等于1,按一次d/c 以假分数形式显示,再按一次d/c则以带分数形式显示;如果其绝对值小于1,则两次均以真分数形式显示% 百分号,关于百分比的计算方法见下表××+×-注:以上实物计算器不按等号,不同的计算器定义不同,按其实际运算规则。
excel数值计算方法
excel数值计算方法Excel是一款功能强大的电子表格软件,广泛应用于数据分析、计算和管理等领域。
在Excel中,数值计算是其最基本的功能之一,通过数值计算,可以进行各种复杂的数据处理和分析。
本文将介绍几种常用的Excel数值计算方法,帮助读者更好地利用Excel进行数据处理。
第一种方法是使用基本的四则运算符进行数值计算。
在Excel中,加号(+)、减号(-)、乘号(*)和除号(/)分别表示加、减、乘、除运算。
通过在单元格中输入相应的数值和运算符,即可进行简单的数值计算。
例如,在A1单元格中输入3,B1单元格中输入5,C1单元格中输入=A1+B1,回车后,C1单元格将显示8,表示3加5的结果。
第二种方法是使用函数进行数值计算。
Excel内置了许多数值计算函数,可以帮助用户快速完成各种复杂的计算任务。
常用的函数包括SUM(求和)、AVERAGE(求平均值)、MAX(求最大值)、MIN (求最小值)等。
例如,要计算A1到A10单元格中的数值之和,可以在B1单元格中输入=SUM(A1:A10),回车后,B1单元格将显示求和结果。
第三种方法是使用条件函数进行数值计算。
条件函数可以根据满足特定条件的数值进行计算。
常用的条件函数包括IF(如果)、SUMIF(求和满足条件的数值)、AVERAGEIF(求平均值满足条件的数值)等。
例如,要根据A1单元格中的数值判断其是否大于5,并在B1单元格中显示相应结果,可以在B1单元格中输入=IF(A1>5,"大于5","小于等于5"),回车后,B1单元格将根据A1的值显示相应的结果。
第四种方法是使用逻辑函数进行数值计算。
逻辑函数可以根据逻辑条件进行数值计算,常用的逻辑函数包括AND(与)、OR(或)、NOT(非)等。
例如,要根据A1和B1单元格中的数值判断是否同时满足大于5的条件,并在C1单元格中显示相应结果,可以在C1单元格中输入=AND(A1>5,B1>5),回车后,C1单元格将显示TRUE或FALSE,表示是否同时满足条件。
第5章多自由度系统的数值计算方法
第5章多自由度系统的数值计算方法在工程实践中,我们经常会遇到多自由度系统(Multiple Degree of Freedom,简称MDOF)的问题,例如振动台、建筑结构等。
这些系统通常由多个自由度所组成,因此其运动方程会比单自由度系统更加复杂。
因此,我们需要使用数值计算方法来求解这些系统。
在本章中,我们将介绍两种常见的数值计算方法,包括直接积分法和模态叠加法。
一、直接积分法直接积分法,也称为时步法或时间积分法,是一种常用的求解MDOF系统的数值计算方法。
它的基本原理是将多自由度系统的运动方程转换为一组一阶常微分方程。
然后,利用数值积分方法,如欧拉法、Runge-Kutta法等,对这组常微分方程进行求解,得到系统的运动响应。
直接积分法的主要步骤如下:1.确定系统的运动方程:根据多自由度系统的动力学原理,可以得到系统的运动方程。
一般来说,这个方程是非线性方程,通常需要进行线性化处理。
2.将运动方程转化为一阶常微分方程组:将系统的运动方程进行适当的变换,将其转化为一组一阶常微分方程。
这样,就可以使用数值积分方法对其进行求解。
3. 选择数值积分方法:选择适合系统的数值积分方法,例如欧拉法、Runge-Kutta法等。
这些方法的基本思想是将微分方程转化为差分方程,通过迭代来逼近准确解。
4.进行数值计算:根据选择的数值积分方法,进行迭代计算,得到系统的运动响应。
尽管直接积分法是一种广泛应用的数值计算方法,但也存在一些问题。
例如,随着自由度的增加,计算量会大大增加。
此外,由于数值积分方法的局限性,可能会出现数值不稳定、数值发散等问题。
二、模态叠加法模态叠加法是求解MDOF系统的另一种常用数值计算方法。
该方法基于模态分析的思想,将MDOF系统的运动方程转化为一组无耦合的一自由度系统的运动方程。
然后,按照模态响应的叠加原理,将各个模态的响应相加,得到系统的总体响应。
模态叠加法的主要步骤如下:1.确定系统的模态参数:通过模态分析方法,可以得到系统的模态参数,包括模态频率、振型等。
数值计算功能
数值计算功能>> 258*369 ans =95202例:计算水在温度为0、20、40、60和80度时的黏度。
已知水的黏度随温度的变化公式为:21at btμμ=++其中0μ为零度水的黏度,值为1.785*10-3 (P22)几个基本的算术运算 四则运算“+”、“-”、“*”“/” “ ^ ” “sqrt ”常驻变量PI(π) I 或j(代表复数单位) inf 代表无穷大数1/0 NaN 代表不定值0/0例:SIN(PI/3) J^2二、向量1. X=[5,7,8,9]X=[5,7;8,9] X(2) Ans=72.利用冒号表达式生成向量 x=x0:step:xn 例a=1:2:12a= 1 3 5 7 9 113.利用函数linspace 来生成线性等向量y=linspace(x1,x2) 生成(1*100)维的行向量 使得y(1)=x1,y(100)=x2 y=linspace(x1,x2,n) 生成(1*n )维的行向量 使得y(1)=x1,y(100)=x24.向量的基本运算加、减、数乘、点积、叉积、混合积 a1=linspace(1,100,6) a1-1 a1*2 a=[1,2,3] b=[3 4,5]dot(a,b) &&&点积 ans=26C=CROSS(a,b) &&&叉积 Dot(a,cross(b,c)) &&&混合积三、矩阵1.直接输入小矩阵(1)a=[1 2 3; 1,1 1 ;4,5 ,6]a =1 2 31 1 14 5 6(2)b=[sin(pi/3),cos(pi/4);log(9),tanh(6)]b =0.8660 0.70712.1972 1.0000b=[sin(pi/3),cos(pi/4);log(9),tanh(6)];屏幕上没有显示,但已在内存2.创建M文件输入大矩阵%example.mexm= [456 468 873 2 579 5521 678 54 488 8 1365 4565 88 33 55 67457 68 767 89 565 894565 10 9 5 33 77] example;>> size(exm)ans =5 63.矩阵的基本数学运算(1)a=[1 2 3;2 3 5;3 4 5]b=[1 1 1 ; 2 2 2 ;3 3 3]c=a+bc =2 3 44 5 76 7 8(2)e=[b,[5 5 5]’] &&&b为上例中bf=a*ef =14 14 14 3023 23 23 50 26 26 26 60 (3)左除(\)和右除(/)右除比左除计算的速度慢,且精度还要差。
数值计算方法实验指导(Matlab版)
《数值计算方法》实验指导(Matlab版)学院数学与统计学学院计算方法课程组《数值计算方法》实验1报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2. 实验题目(1) 取1610=z ,计算z z -+1和)1/(1z z ++,验证两个相近的数相减会造成有效数字的损失.(2) 按不同顺序求一个较大的数(123)与1000个较小的数(15310-⨯)的和,验证大数吃小数的现象.(3) 分别用直接法和九韶算法计算多项式n n n n a x a x a x a x P ++++=--1110)(在x =1.00037处的值.验证简化计算步骤能减少运算时间.对于第(3)题中的多项式P (x ),直接逐项计算需要2112)1(+=+++-+n n n 次乘法和n 次加法,使用九韶算法n n a x a x a x a x a x P ++++=-)))((()(1210则只需要n 次乘法和n 次加法. 3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程(1) 直接计算并比较;(2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加; (3) 将由高次项到低次项的系数保存到数组A[n]中,其中n 为多项式次数.7. 结果与分析 (1) 计算的z z -+1= ,)1/(1z z ++.分析:(2) 123逐次加1000个6310-⨯的和是 ,先将1000个6310-⨯相加,再用这个和与123相加得.分析:(3) 计算次的多项式:直接计算的结果是,用时;用九韶算法计算的结果是,用时.分析:8. 附录:程序清单(1) 两个相近的数相减.%*************************************************************%* 程序名:ex1_1.m *%* 程序功能:验证两个相近的数相减会损失有效数字个数 *%*************************************************************z=1e16;x,y======================================================================(2) 大数吃小数%*************************************************************%* 程序名:ex1_2.m *%* 程序功能:验证大数吃小数的现象. *%*************************************************************clc; % 清屏clear all; % 释放所有存变量format long; % 按双精度显示浮点数z=123; % 大数t=3e-15; % 小数x=z; % 大数依次加小数% 重复1000次给x中加上ty=0; % 先累加小数% 重复1000次给y中加上ty=z + y; % 再加到大数x,y======================================================================(3) 九韶算法%*************************************************************%* 程序名:ex1_3.m *%* 程序功能:验证九韶算法可节省运行时间. *%*************************************************************clc; % 清屏clear all; % 释放所有存变量format long; % 按双精度显示浮点数A=[8,4,-1,-3,6,5,3,2,1,3,2,-1,4,3,1,-2,4,6,8,9,50,-80,12,35,7,-6,42,5,6,23,74,6 5,55,80,78,77,98,56];A(10001)=0; % 扩展到10001项,后面的都是分量0% A为多项式系数,从高次项到低次项x=1.00037;n=9000; % n为多项式次数% 直接计算begintime=clock; % 开始执行的时间 % 求x的i次幂% 累加多项式的i次项endtime=clock; % 完毕执行的时间time1=etime(endtime,begintime); % 运行时间disp('直接计算');disp(['p(',num2str(x),')=',num2str(p)]);disp([' 运行时间: ',num2str(time1),'秒']);% 九韶算法计算begintime=clock; % 开始执行的时间% 累加九韶算法中的一项endtime=clock; % 完毕执行的时间time2=etime(endtime,begintime); % 运行时间disp(' ');disp('九韶算法计算');disp(['p(',num2str(x),')=',num2str(p)]);disp([' 运行时间: ',num2str(time2),'秒']);《数值计算方法》实验1报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验1 算法设计原则验证(之数值稳定性) 2. 实验题目 计算定积分⎰==-1110,1,0,d n x e xI x nn ,分别用教材例1-7推导出的算法A 和B ,其中:算法A :⎩⎨⎧≈-=-6321.0101I nI I n n 算法B :⎪⎩⎪⎨⎧≈-=-0)1(1101I I nI n n 验证算法不稳定时误差会扩大.3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应采用数值稳定性好的算法.数值稳定的算法,误差不会放大,甚至会缩小;而数值不稳定的算法会放大误差. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程分别用数组IA[ ]和IB[ ]保存两种算法计算的结果. 7. 结果与分析 运行结果:(或拷屏)8. 附录:程序清单%*************************************************************%* 程序名:ex1_4.m *%* 程序功能:验证数值稳定性算法可控制误差. *%*************************************************************clc; % 清屏clear all; % 释放所有存变量format long; % 按双精度显示浮点数I=[0.856, 0.144, 0.712, 0.865, ...0.538, 0.308, 0.154, 0.938, ...0.492, 0.662, 0.843];% 保留14位小数的精确值, …是Matlab中的续行符% 算法AIA(1) = 0.6321; % Matlab下标从1开始,所以要用IA(n+1)表示原问题中的I(n)% 算法Bdisp('n 算法A 算法B 精确值');for n=1:11fprintf('%2d %14.6f %14.6f %14.6f\n',n-1,IA(n),IB(n),I(n));end% n显示为2位整数, 其它显示为14位其中小数点后显示6位的小数《数值计算方法》实验1报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验1 算法设计原则(除数绝对值不能太小) 2. 实验题目将线性方程组增广矩阵利用初等行变换可化为⎪⎪⎭⎫⎝⎛→-⎪⎪⎭⎫ ⎝⎛→-⎪⎪⎭⎫ ⎝⎛''0'0''02221112'12221121112222211121122121121b a b a r r b a b a a r r b a a b a a a a a a由此可解得'/',/'22221111a b x a b x ==.分别解增广矩阵为161011212-⎛⎫ ⎪⎝⎭和162121011-⎛⎫⎪⎝⎭的方程组,验证除数绝对值远小于被除数绝对值的除法会导致结果失真. 3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应避免除数绝对值远小于被除数绝对值的除法,否则绝对误差会被放大,使结果失真. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程用二维数组A 和B 存放方程组的增广矩阵,利用题目所给初等行变换求解方程组. 7. 结果与分析第1种顺序的方程组的解为x =,y =;第2种顺序的方程组的解为x =,y =. 分析:8. 附录:程序清单%************************************************************* %* 程 序 名:ex1_5.m * %* 程序功能:验证除数的绝对值太小可能会放大误差. * %*************************************************************clc;A=[1e-16, 1, 1; 2, 1, 2];B=[2, 1, 2; 1e-16, 1, 1]; % 增广矩阵% 方程组A% m = - a_{21}/a_{11} 是第2行加第1行的倍数% 消去a_{21}% m = - a_{12}/a_{22} 是第1行加第2行的倍数% 消去a_{12}, 系数矩阵成对角线% 未知数x1的值% 未知数x2的值disp(['方程组A的解: x1=',num2str(A(1,3)),', x2=',num2str(A(2,3))]); disp(' ');% 方程组B% m = - b_{21}/b_{11} 是第2行加第1行的倍数% 消去b_{21}% m = - b_{12}/b_{22} 是第1行加第2行的倍数% 消去b_{12}, 系数矩阵成对角线% 未知数x1的值% 未知数x2的值disp(['方程组B的解: x1=',num2str(B(1,3)),', x2=',num2str(B(2,3))]);《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之简单迭代法) 2. 实验题目用简单迭代法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的掌握非线性方程的简单迭代法. 4. 基础理论简单迭代法:将方程0)(=x f 改写成等价形式)(x x ϕ=,从初值0x 开始,使用迭代公式)(1k k x x ϕ=+可以得到一个数列,若该数列收敛,则其极限即为原方程的解.取数列中适当的项可作为近似解. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Newton 迭代法) 2. 实验题目用Newton 迭代法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的掌握求解非线性方程的Newton 迭代法. 4. 基础理论Newton 迭代法:解方程0)(=x f 的Newton 迭代公式为)(')(1k k k k x f x f x x -=+.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之对分区间法) 2. 实验题目用对分区间法求方程310x x --=在区间[1, 1.5]的一个实根,取绝对误差限为410-. 3. 实验目的掌握求解非线性方程的对分区间法. 4. 基础理论对分区间法:取[a ,b ]的中点p ,若f (p ) ≈ 0或b – a < ε,则p 为方程0)(=x f 的近似解;若f (a ) f (p ) < 0,则说明根在区间取[a ,p ]中;否则,根在区间取[p ,b ]中.将新的有根区间记为 [a 1,b 1],对该区间不断重复上述步骤,即可得到方程的近似根. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程用宏定义函数f (x );为了循环方便,得到的新的有根区间始终用[a ,b ]表示;由于新的有根区间可能仍以a 为左端点,这样会反复使用函数值f (a ),为减少运算次数,将这个函数值保存在一个变量fa 中;同样在判断新的有根区间时用到函数值f (p ),若新的有根区间以p 为左端点,则下一次用到的f (a )实际上就是现在的f (p ),为减少运算次数,将这个函数值保存在一个变量fp 中.算法的伪代码描述:Input :区间端点a ,b ;精度要求(即误差限)ε;函数f (x );最大对分次数N Output :近似解或失败信息7. 结果与分析8. 附录:程序清单说明: 源程序中带有数字的空行,对应着算法描述中的行号%**********************************************************%* 程序名:Bisection.m *%* 程序功能:使用二分法求解非线性方程. *%**********************************************************f=inline('x^3-x-1'); % 定义函数f(x)a=input('有根区间左端点: a=');b=input('右端点:b=');epsilon=input('误差限:epsilona=');N=input('最大对分次数: N=');1 % 对分次数计数器n置12 % 左端点的函数值给变量fafprintf('\n k p f(p) a(k) f(a(k))'); fprintf(' b(k) b-a\n');% 显示表头fprintf('%2d%36.6f%12.6f%12.6f%12.6f\n',0,a,fa,b,b-a);% 占2位其中0位小数显示步数0, 共12位其中小数6位显示各值3% while n≤ N 4 % 取区间中点p5% 求p 点函数值给变量fpfprintf('%2d%12.6f%12.6f',n,p,fp); % 输出迭代过程中的中点信息p 和f(p)6 % 如果f(p)=0或b-a 的一半小于误差限εfprintf('\n\n 近似解为:%f\n',p);% 则输出近似根p (7)return;% 并完毕程序 (7)89 % 计数器加110% 若f(a)与f(p)同号11% 则取右半区间为新的求根区间, 即a 取作p 12 % 保存新区间左端点的函数值 13% 否则14 % 左半区间为新的求根区间, 即b 取作p 15fprintf('%12.6f%12.6f%12.6f%12.6f\n',a,fa,b,b-a); %显示新区间端点与左端函数值、区间长度 16fprintf('\n\n 经过%d 次迭代后未达到精度要求.\n',N); % 输出错误信息(行17)《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Aitken-Steffensen 加速法) 2. 实验题目用Aitken-Steffensen 加速法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的熟悉求解非线性方程的Aitken-Steffensen 加速法. 4. 基础理论将方程0)(=x f 改写成等价形式)(x x ϕ=,得到从初值0x 开始的迭代公式)(1k k x x ϕ=+后,基于迭代公式)(1k k x x ϕ=+的Aitken-Steffensen 加速法是通过“迭代-再迭代-加速”完成迭代的,具体过程为kk k k k k k k k k k x y z z y x x y z x y +---===+2)(),(),(21ϕϕ. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程为了验证Aitken-Steffensen 加速法可以把一些不收敛的迭代加速成迭代收敛,我们使用将方程组变形为31021x x -=,取迭代函数31021)(x x -=ϕ,并利用宏定义出迭代函数.由于不用保存迭代过程,所以用x0表示初值同时也存放前一步迭代的值,y 和z 是迭代过程中产生的y k 和z k ,x 存放新迭代的结果.算法的伪代码描述:Input :初值x 0;精度要求(即误差限)ε;迭代函数φ(x );最大迭代次数N7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:Aitken_Steffensen.m * %* 程序功能:用Aitken-Steffensen 加速法求方程. * %************************************************************* clc;clear all;phi=inline('0.5 * sqrt( 10 - x^3)'); % 迭代函数x0=input('初值: x0 = ');epsilon=input('误差限: epsilon='); N=input('最大迭代次数: N=');disp(' n 迭代中间值y(n-1) 再迭代结构z(n-1) 加速后的近似值x(n)'); fprintf('%2d%54.6f\n',0,x0);% 占2位整数显示步数0, 为了对齐, 占54位小数6位显示x01 % n 是计数器2 % while n<=Ny= 3 ; % 迭代 z= 3 ; % 再迭代 x= 3 ; % 加速% x0初值与前一步的近似值, y 和z 是中间变量, x 是下一步的近似值fprintf('%2d%18.6f%18.6f%18.6f\n',n,y,z,x);%显示中间值和迭代近似值6 % 如果与上一步近似解差的绝对值不超过误差限 fprintf('\n\n 近似解 x≈x(%d)≈%f \n',n,x);% 则输出近似根 (7), 可简略为: fprintf('\n\n 近似解 x=%f',x); return; % 并完毕程序(7) 8 % 相当于endif9 % 计数器加110 % 新近似值x 作为下一次迭代的初值 11fprintf('\n 迭代%d 次还不满足误差要求.\n\n',N); %输出错误信息(12)《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Newton 下山法) 2. 实验题目用Newton 下山法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-.3. 实验目的熟悉非线性方程的Newton 下山法. 4. 基础理论Newton 下山法:Newton 下山法公式为)(')(1k k kk k x f x f x x λ-=+,使|)(||)(|1k k x f x f <+,其中10≤<k λ.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程定义函数f(x)和df(x),其中df(x)是f(x)的导函数.每步迭代时先取下山因子为1,尝试迭代,判断尝试结果是否满足下山因子,若满足则作为这步的迭代结果;否则将下山因子减半,然后再尝试.为防止当前的x k 是极小值点,附近不会有满足下述条件的其它点,使尝试陷入死循环,同时计算机中能表示出的浮点数也有下界,因此我们设置了最大尝试次数.当超过最大尝试次数时,不再进行下山尝试.由于反复尝试迭代且要判断下山条件,所以f (x 0)和f ‘(x 0)会反复使用,为避免重复计算浪费运行时间,将这两个值分别保存在变量fx0和dfx0.而尝试产生的节点,判断下山条件时要用到它的函数值,若尝试成功,这个点会作为下一步的初值再使用,所以把该点的函数值也保存在变量fx 中.算法的伪代码描述:Input :初值x 0;精度要求(即误差限)ε;函数与其导函数f (x )和f’(x);最大迭代次数N ;K 下山尝试最大次数Output :近似解或失败信息7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:NewtonDownhill.m *%* 程序功能:用Newton下山法求解非线性方程. *%*************************************************************clc;clear all;f=inline('x^3-x-1'); % 函数f(x)df=inline('3*x^2-1'); % 函数f(x)的导函数x0=input('初值: x0 = ');epsilon=input('误差限: epsilon=');N=input('最大迭代次数: N=');K=input('最大下山尝试次数: K=');1 % 迭代次数计数器2 % 存x0点函数值fprintf('\n\n n x(n) f(x(n))\n'); % 显示表头fprintf('%2d%14.6f%14.6f\n',0,x0,fx0); % 2位整数显示0, 共14位小数6位显示x0和fx03 % while n≤ Ndisp(''); % 换行显示下山尝试过程的表头disp(' 下山因子尝试x(n) 对应f(x(n)) 满足下山条件');disp('');4 % 存x0点导数值, 每次下山尝试不用重新计算ifdfx0==0 % 导数为0不能迭代disp(‘无法进行Newton迭代’);return;endlambda=1.0; % 下山因子从1开始尝试k=1; % k下山尝试次数计数器while k<=K % 下山最多尝试K次% 下山公式fx=f(x); % 函数值fprintf('%22.6f%14.6f%14.6f',lambda,x,fx); % 显示尝试结果if (abs(fx)<abs(fx0)) % 判断是否满足下山条件fprintf(' 满足\n');break; % 是, 则退出下山尝试的循环elsefprintf(' 不满足\n');endlambda=lambda/2; % 不是, 则下山因子减半k=k+1; % 计数器加1endif k>Kfprintf('\n 下山条件无法满足, 迭代失败.\n\n');return;endfprintf('%2d%14.6f%14.6f\n',n,x,fx);% 2位整数显示步数n, 共14位小数6位显示下步迭代结果22 % 达到精度要求否fprintf('\n\n 方程的近似解为: x≈%f\n\n',x); % (23)return; % 达到, 则显示结果并完毕程序(23) end % (24)% 用x0,fx0存放前一步的近似值和它的函数值, 进行循环迭代25262728fprintf('\n 迭代%d次还不满足误差要求.\n\n',N);《数值计算方法》实验2报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验2 非线性方程的迭代解法(之弦截法) 2. 实验题目用弦截法求方程010423=-+x x 在区间[1,2]的一个实根,取绝对误差限为410-. 3. 实验目的熟悉非线性方程的弦截法. 4. 基础理论将Newton 迭代法中的导数用差商代替,得到弦截法(或叫正割法)公式)()()(111k k k k k k k x f x f x f x x x x --+---=.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程不保存迭代过程,所以始终以x 0和x 1分别存放x k -1和x k ,而x 存放新产生的迭代值x k +1,这样,下一次迭代时需要把上一步的x 1(即x k )赋值于x 0(做新的x k -1).这些点的函数值会重复用到,在迭代公式中也要用到,上一步的x 1作为下一步的x 0也会再一次用它的函数值,为减少重新计算该点函数值的运行时间,将x 1点的函数值保存在变量fx1中.算法的伪代码描述:Input :初值x 0,x 1;精度要求(即误差限)ε;函数f (x );最大迭代次数N7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:SecantMethod.m *%* 程序功能:用弦截法求解非线性方程. *%*************************************************************clc;clear all;f=inline('2*x^3-5*x-1'); % 函数f(x)x0=input('第一初值: x0 = ');x1=input('第二初值: x1 = ');epsilon=input('误差限: epsilon=');N=input('最大迭代次数: N=');fprintf('\n n x(n)\n'); % 显示表头fprintf('%2d%14.6f\n', 0, x0); % 占2位显示步数0, 共14位其中小数6位显示x0fprintf('%2d%14.6f\n', 1, x1); % 占2位显示步数1, 共14位其中小数6位显示x11 % 存x0点函数值2 % 存x1点函数值3 % 迭代计数器4 % while n≤ N% 弦截法公式fprintf('%2d%14.6f\n', n, x); %显示迭代过程6 % 达到精度要求否fprintf('\n\n 方程的近似解为: x≈%f\n\n', x);return; % 达到, 则显示结果并完毕程序89 % 原x1做x0为前两步的近似值10 % 现x做x1为一两步的近似值11 % x0点函数值12 % 计算x1点函数值, 为下一次循环13 % 计数器加1 14fprintf('\n 迭代%d 次还不满足误差要求.\n\n',N);《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之Gauss 消去法) 2. 实验题目用Gauss 消去法求解线性方程组⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--000.3000.2000.1643.5072.1000.2623.4712.3000.1000.3000.2001.0321x x x . 3. 实验目的掌握解线性方程组的Gauss 消去法. 4. 基础理论Gauss 消去法是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过回代,从后到前依次求出各未知数.Gauss 消去法的第k 步(1≤k≤n -1)消元:若0≠kk a ,则依次将增广矩阵第k 行的kk ik a a /-倍加到第i 行(k+1≤i≤n),将第k 列对角线下的元素都化成0.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之Gauss 列主元消去法) 2. 实验题目用Gauss 列主元消去法求解线性方程组⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--000.3000.2000.1643.5072.1000.2623.4712.3000.1000.3000.2001.0321x x x . 3. 实验目的掌握解线性方程组的Gauss 列主元消去法. 4. 基础理论Gauss 列主元消去法也是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过回代,从后到前依次求出各未知数.Gauss 列主元消去法的第k 步(1≤k≤n -1)消元:先在nk k k kk a a a ,,,,1 +中找绝对值最大的,将它所在的行与第k 行交换,然后将第k 行的kk ik a a /-倍加到第i 行(k+1≤i≤n),将第k 列对角线下的元素都化成0. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之Doolittle 分解) 2. 实验题目对矩阵A 进行Doolittle 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A .3. 实验目的掌握矩阵的Doolittle 分解. 4. 基础理论矩阵的Doolittle 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个单位下三角矩阵和一个上三角矩阵的乘积.若设⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=nn n n n n n n u u u u u u u u u u U l l ll l l L000000,1010010001333223221131211321323121则可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=+=-=∑∑-=-=1111,,2,1,/)(,,1,,k t kk tk it ik ik k r rj kr kj kj nk k i u u l a l nk k j u l a u其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程(1)按计算公式依次计算一行u 同时计算一列l ;(2)因为计算完u ij (或l ij )后,a ij 就不再使用,为节省存储空间,将计算的u ij (和l ij )仍存放在矩阵A 中的相应位置;(3)使用L 矩阵和U 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 对角线上的元素为1,上三角部分为0,下三角部分为A 中对应的元素;U 的下三角部分为0,上三角部分为A 中对应的元素.算法的伪代码描述: Input :阶数n ;矩阵A7. 结果与分析8. 附录:程序清单%****************************************************% 程序名: Doolittle.m *% 程序功能: 矩阵LU分解中的Doolittle分解. *%****************************************************clc;clear all;n=4; % 矩阵阶数A=[6 2 1 -1;2 4 1 0; 1 1 4 -1; -1 0 -1 3]disp('A=');disp(A);% LU分解(Doolittle分解)for k=1:n% 计算矩阵U的元素u_{kj}% (可参照下面l_{ik}的公式填写)% 计算矩阵L的元素l_{ik}% L 在A 下三角, U 在上三角(对角线为1) enddisp('分解结果:'); disp('L='); for i=1:n for j=1:nif i>j % 在下三角部分, 则取A 对于的元素显示 fprintf(' %8.4f',A(i,j));elseif i==j % 在对角线上, 则显示1 fprintf(' %8d',1);else % 在上三角部分, 则显示0 fprintf(' %8d',0); end endfprintf('\n'); % 换行 enddisp('U='); for i=1:n for j=1:nif i<=j % 在上三角部分或对角线上, 则取A 对于的元素显示 fprintf(' %8.4f',A(i,j));else % 在下三角部分, 则显示0 fprintf(' %8d',0); end endfprintf('\n'); % 换行 end《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之LU 分解法) 2. 实验题目用LU 分解(Doolittle 分解)法求解线性方程组⎪⎩⎪⎨⎧=++=++=++104615631552162321321321x x x x x x x x x 3. 实验目的熟悉解线性方程组LU 分解法.4. 基础理论若将矩阵A 进行了Doolittle 分解,A = LU ,则解方程组b x A=可以分解求解两个三角方程组b y L=和y x U =.它们都可直接代入求解,其中b y L=的代入公式为∑-==-=11,,2,1,k j j kj k k n k y l b y而y x U=的代入公式为∑+=-=-=nk j kk j kjk k n n k u x uy x 11,,1,,/)( .5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程(1)Doolittle 分解过程依次计算一行u 同时计算一列l 完成,并将计算的u ij (和l ij )仍存放在矩阵A 中的相应位置;(2)求解方程组的代入公式中用到的u ij 和l ij 都直接在A 的相应位置取值即可. 算法的伪代码描述:Input :阶数n ;矩阵A ;常数项向量b7. 结果与分析8. 附录:程序清单%**************************************************** % 程序名: LinearSystemByLU.m *% 程序功能: 利用LU分解(Doolittle分解)解方程组. *%****************************************************clc;clear all;n=3; % 矩阵阶数A=[1 2 6; 2 5 15; 6 15 46];b=[1;3;10];% LU分解(Doolittle分解)for k=1:n% 计算矩阵U的元素u_{kj}% (可参照下面l_{ik}的公式填写)% 计算矩阵L的元素l_{ik}% L在A下三角, U在上三角(对角线为1) endfor k=1:n % 用代入法求解下三角方程组Ly=by(k)=b(k);3 %∑-==-=11,,2,1,kjj kjk knkylby33enddisp('方程组Ly=b的解:y=');disp(y');for k=n:-1:1 % 回代求解上三角方程组Ux=y x(k)=y(k);6 %∑+=-=-=nkjj kjk knnkxuyx11,,1,,666 enddisp('原方程组的解:x='); disp(x');《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X成绩:1. 实验名称实验3 解线性方程组的直接法(之Cholesky 分解) 2. 实验题目对矩阵A 进行Cholesky 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A . 3. 实验目的理解矩阵的Cholesky 分解. 4. 基础理论矩阵的Cholesky 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个下三角矩阵L 和L 转置的乘积,即A =LL T,其中L 各元素可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=-=∑∑-=-=11112,,2,1,/)(k t kktk it ik ik k r kr kk kk nk k i l l l a l l a l其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:VC++ 6. 实验过程(1)按计算公式依次先计算一列对角线上的元素l kk ,再计算这列其他元素l ik ,且对称位置的元素也取同一个值;(2)因为计算完l ij 后,a ij 就不再使用,为节省存储空间,将计算的l ij 仍存放在矩阵A 中的相应位置;(3)使用L 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 上三角部分为0,对角线和下三角部分为A 中对应的元素.算法的伪代码描述:Input :阶数n ;矩阵AOutput :矩阵L (合并存储在数组A 中)行号 伪代码注释1 for k ← 1 to n2∑-=-=112k r krkk kk l a l3 for i ← k to n4 ∑-=-=11/)(k t kk tk it ik ik l l l a l计算结果存放在a ij5 endfor6 endfor7return L输出L7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:Cholesky.m * %* 程序功能:对称正定矩阵的Cholesky 分解. * %*************************************************************n=4; % 矩阵阶数 A=[6,2,1,-1; 2,4,1,0; 1,1,4,-1; -1,0,-1,3];disp('A ='); for i=1:n for j=1:nfprintf('%10.4f',A(i,j)); % 共占14位endfprintf('\n');% 一行完毕换行end% Cholesky 分解 for k=1:n % 计算对角线上的l _{kk}% 计算其他的l _{ik} % 和l _{ki}end % L 在A 下三角, L^T 在上三角disp('分解结果:'); disp('L='); for i=1:n for j=1:n if i>=j % 在下三角部分或对角线上, 则取A 对于的元素显示fprintf('%10.4f',A(i,j));else % 在上三角部分, 则显示0 fprintf('%10d',0); end endfprintf('\n'); % 换行 end《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X成绩:1. 实验名称实验3 解线性方程组的直接法(之改进的Cholesky 分解) 2. 实验题目对矩阵A 进行改进的Cholesky 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A .3. 实验目的理解矩阵改进的Cholesky 分解. 4. 基础理论矩阵的改进的Cholesky 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个单位下三角矩阵L 和对角矩阵D 与L 转置的乘积,即A =LDL T,其中L 和D 各元素可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=-=∑∑-=-=11112,,2,1,/)(k t k kt it t ik ik k r kr r kk k nk k i d l l d a l l d a d其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:VC++ 6. 实验过程(1)按计算公式依次先计算D 的一个元素d k ,再计算L 中这列的元素l ik ,且对称位置的元素也取同一个值;(2)因为计算完d k 和l ij 后,a kk 或a ij 就不再使用,为节省存储空间,将计算的a kk 或l ij 仍存放在矩阵A 中的相应位置;(3)使用L 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 对角线和上三角部分为0,下三角部分为A 中对应的元素;D 对角线为A 中对应的元素,其余都是0.算法的伪代码描述: Input :阶数n ;矩阵AOutput :矩阵L (合并存储在数组A 中)7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:ImprovedCholesky.m * %* 程序功能:对称正定矩阵的改进的Cholesky 分解. * %*************************************************************n=4; % 矩阵阶数A=[6,2,1,-1; 2,4,1,0; 1,1,4,-1; -1,0,-1,3];disp('A =');for i=1:nfor j=1:nfprintf('%10.4f',A(i,j)); % 共占14位endfprintf('\n'); % 一行完毕换行end% Cholesky分解for k=1:n% 计算D对角线上的u_{kk}% 计算L的元素l_{ik}% 和L转置的元素l_{ki} end % L在A下三角, D在对角线disp('分解结果:');disp('L=');for i=1:nfor j=1:nif i>j % 在下三角部分, 则取A对于的元素显示fprintf('%10.4f',A(i,j));elseif i==j % 在对角线上, 则显示1fprintf('%10d',1);else % 在上三角部分, 则显示0fprintf('%10d',0);endendfprintf('\n'); % 换行enddisp('D='); for i=1:n for j=1:n if i==j % 在对角线上, 则取A 对于的元素显示fprintf('%10.4f',A(i,j));else % 其余显示0fprintf('%10d',0); end endfprintf('\n'); % 换行 end《数值计算方法》实验3报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验3 解线性方程组的直接法(之追赶法) 2. 实验题目用追赶法求解线性方程组⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-----101053001210023100124321x x x x 3. 实验目的熟悉解线性方程组的追赶法. 4. 基础理论对于系数矩阵为三对角矩阵的方程组,其Crout 分解可分解为⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=------11111211122111122211n n nn n n nn n n t t t s a s a s a s b a c b a c b a c b A这样,解方程组可以由如下2步完成:“追”:,,,3,2,/)(,,/,/,1111111111n i s y a f y t a b s s c t s f y b s i i i i i i i i i i i i =-=-====-----其中:Tn f f ),,(1 为方程组的常数项,n t 没用;“赶”:.1,,2,1,,1 --=-==+n n i x t y x y x i i i i n n5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程在“追”的过程中,向量s 和y 都有n 个元素,t 只有n -1个元素,又1s 和1y 的计算公式与其它i s 和i y 不同,所以先单独计算1s 和1y ,然后在一个n -1次循环中,求其它i s 和i y 以与i t .由于在“追”的过程中,i b ,i c 和i f 在分别计算完对应的i s ,i t 和i y 后就不再使用,所以借用数组b ,c 和f 存储向量s ,t 和y ;同样在“赶”的过程中,i y 在计算完对应的i x 后就不再使用,所以再一次借用数组f 存储向量x .追赶法算法的伪代码描述:Input :阶数n ;三对角矩阵的三条对角线向量a ,b ,c ,常数项向量f Output :方程组的解x改进的追赶法算法的伪代码描述:Input :阶数n ;三对角矩阵的三条对角线向量a ,b ,c ,常数项向量f Output :方程组的解x7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:ChaseAfter.m *%* 程序功能:用追赶法求解三对角线性方程组. *%*************************************************************clc;clear all;n=4;a=[0,-1,-1,-3];b=[2, 3, 2, 5];c=[-1, -2, -1, 0];f=[0, 1, 0, 1];% "追"s(1) = b(1);y(1) = f(1); % 先单独求s_1和y_1 for k = 1 : n-1% 再求t_i(i=1,2,…,n-1)% s_i(i=2,3,…,n)% y_i(i=2,3,…,n)end% "赶"x(n) = y(n); % 先单独求x_nfor k = n-1 : -1 : 1% 再求x_i(i=n-1,n-2, (1)endx=x' % 输出解向量-------------------------------------------------------------------------------------------------------------------改进的程序:%*************************************************************%* 程序名:ChaseAfter.m *%* 程序功能:用追赶法求解三对角线性方程组. *%*************************************************************clc;clear all;n=4;a=[0,-1,-1,-3];b=[2, 3, 2, 5];c=[-1, -2, -1, 0];f=[0, 1, 0, 1];% "追"% b(1)=b(1); % s_1仍在b_1中,不用重新计算y(1)=f(1)/b(1); % 先单独y_1for k=1:n-1% 再求t_i(i=1,2,…,n-1)% s_i(i=2,3,…,n)% y_i(i=2,3,…,n)end% "赶"% f(n)=f(n); % x_n等于y_n仍在f_n中for k=n-1:-1:1% 再求x_i(i=n-1,n-2, (1)endx=f' % 输出解向量《数值计算方法》实验4报告班级:20##级####x班学号:20##2409####:##X 成绩:1. 实验名称实验4 解线性方程组的迭代法(之Jacobi迭代)2. 实验题目用Jacobi迭代法求解线性方程组1231231232251223x x x x x x x x x +-=⎧⎪++=⎪⎨++=⎪⎪⎩任取3. 实验目的掌握解线性方程组的Jacobi 迭代法. 4. 基础理论将第i (n i ≤≤1)个方程i n in i i b x a x a x a =+++ 2211移项后得到等价方程ii n in i i i i i i i i i a x a x a x a x a b x /)(11,11,11------=++--便可构造出Jacobi 迭代公式,1,0,/)()()(11,)(11,)(11)1(=------=++--+k a x a x a x a x a b x ii k n in k i i i k i i i k i i k i . 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单《数值计算方法》实验4报告班级: 20##级####x 班 学号: 20##2409#### : ##X 成绩:1. 实验名称实验4 解线性方程组的迭代法(之Gauss-Seidel 迭代) 2. 实验题目用Gauss-Seidel 迭代法求解线性方程组。
5个数填入5个格子里的计算方法
5个数填入5个格子里的计算方法五个数填入五个格子里的计算方法在数学中,我们经常遇到需要将数字填入格子中进行计算的情况。
本文将介绍一种以5个数填入5个格子里的计算方法,帮助读者更好地理解和应用数学知识。
一、填入格子的数值选择我们需要选择5个数值填入这5个格子中。
为了简化计算,我们选择了以下5个整数:2、4、6、8、10。
这些数值既能满足计算需求,又能保证计算结果的准确性。
二、加法运算在第一个格子中填入数值2,在第二个格子中填入数值4,在第三个格子中填入数值6,在第四个格子中填入数值8,在第五个格子中填入数值10。
接下来,我们进行加法运算。
将第一个格子中的数值2与第二个格子中的数值4相加,得到结果6。
将结果6填入第一个格子下方的空白处。
然后,将第一个格子下方的数值6与第三个格子中的数值6相加,得到结果12。
将结果12填入第二个格子下方的空白处。
继续进行这样的加法运算,直到将所有格子都填满为止。
三、减法运算接下来,我们进行减法运算。
将第一个格子中的数值2与第二个格子下方的数值4相减,得到结果-2。
将结果-2填入第一个格子下方数值6的右边。
然后,将第一个格子下方的数值6与第三个格子下方的数值6相减,得到结果0。
将结果0填入第二个格子下方数值12的右边。
继续进行这样的减法运算,直到将所有格子都填满为止。
四、乘法运算接下来,我们进行乘法运算。
将第一个格子中的数值2与第二个格子下方的数值-2相乘,得到结果-4。
将结果-4填入第一个格子下方数值0的右边。
然后,将第一个格子下方的数值0与第三个格子下方的数值0相乘,得到结果0。
将结果0填入第二个格子下方数值0的右边。
继续进行这样的乘法运算,直到将所有格子都填满为止。
五、除法运算我们进行除法运算。
将第一个格子中的数值2与第二个格子下方的数值-4相除,得到结果-0.5。
将结果-0.5填入第一个格子下方数值0的右边。
然后,将第一个格子下方的数值0与第三个格子下方的数值0相除,得到结果NaN(Not a Number)。
5数值计算功能(参考模板)
clear;close;clc;A=[1 2 3;4 5 6]A =1 2 34 5 6A=[1:3;4:6]A =1 2 34 5 6A=zeros(2,3)A =0 0 00 0 0A=eye(3,3)A =1 0 00 1 00 0 1C=hadamard(4)C =1 1 1 11 -1 1 -11 1 -1 -11 -1 -1 1help toeplitzTOEPLITZ Toeplitz matrix.TOEPLITZ(C,R) is a non-symmetric Toeplitz matrix having C as its first column and R as its first row.TOEPLITZ(R) is a symmetric Toeplitz matrix for real R.For a complex vector R with a real first element, T = toeplitz(r) returns the Hermitian Toeplitz matrix formed from R. When thefirst element of R is not real, the resulting matrix is Hermitian off the main diagonal, i.e., T_{i,j} = conj(T_{j,i}) for i ~= j.Class support for inputs C,R:float: double, singleSee also HANKEL.Overloaded methods:sdpvar/toeplitzncvar/toeplitzA=[1 2 3];B=4:6;C1=cat(1,A,B)C1 =1 2 34 5 6C2=cat(2,A,B)C2 =1 2 3 4 5 6 C3=cat(3,A,B)C3(:,:,1) =1 2 3C3(:,:,2) =4 5 6horzcat(A,B)ans =1 2 3 4 5 6 vertcat(A,B)ans =1 2 34 5 6A=1:9;A=reshape(A,3,3)'A =1 2 34 5 67 8 9A(2,3)ans =6A(8)ans =6B=A(1:2,:)B =1 2 34 5 6A(:,[1 2])=[]A =369C=reshape(B,1,6)C =1 42 53 6A*C(1:3)ans =3 12 66 24 129 36 18C'ans =142536x=sdpvar(1,3)%f=[2 -2 3]*x'f=2*x(1)-2*x(2)+3*x(3)F=set(x(1)<=0)+set(x(2)>=0)%F=F+set([-1 1 1]*x'<=4)+set([-1 1 1]*x'>=4)+set([-2 1 -1]*x'<=6) F=F+set([-1 1 1]*x'==4)+set([-2 1 -1]*x'<=6)solvesdp(F,f)double(f)double(x)Linear matrix variable 1x3 (full, real, 3 variables)Linear scalar (real, 3 variables)+++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality 1x1|| #2| Numeric value| Element-wise inequality 1x1|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality 1x1|| #2| Numeric value| Element-wise inequality 1x1|| #3| Numeric value| Equality constraint 1x1|| #4| Numeric value| Element-wise inequality 1x1|+++++++++++++++++++++++++++++++++++++++++++++++++++++++Model name: '' - run #1Objective: Maximize(R0)SUBMITTEDModel size: 2 constraints, 3 variables, 6 non-zeros. Sets: 0 GUB, 0 SOS.Using DUAL simplex for phase 1 and PRIMAL simplex for phase 2.The primal and dual simplex pricing strategy set to 'Devex'.Found feasibility by dual simplex after 1 iter.Optimal solution 13 after 2 iter.Excellent numeric accuracy ||*|| = 0MEMO: lp_solve version 5.5.2.0 for 32 bit OS, with 64 bit REAL variables.In the total iteration count 2, 0 (0.0%) were bound flips.There were 2 refactorizations, 0 triggered by time and 0 by density.... on average 1.0 major pivots per refactorization.The largest [LUSOL v2.2.1.0] fact(B) had 5 NZ entries, 1.0x largest basis. The constraint matrix inf-norm is 2, with a dynamic range of 2.Time to load data was 0.000 seconds, presolve used 0.000 seconds,... 0.001 seconds in simplex solver, in total 0.001 seconds.ans =yalmiptime: 0.1020solvertime: 1.0000e-003info: 'No problems detected (LPSOLVE-MXLPSOLVE)'problem: 0dimacs: [NaN NaN NaN NaN NaN NaN]ans =-13.0000ans =0 5.0000 -1.0000m=intvar(1,1)n=intvar(1,1)g=intvar(1,1)Z=50*m+40*n+40*gF=set(m>=0)+set(m<=30)+set(n>=0)+set(n<=35)+set(g>=0)+set(g<=40)F=F+set(4*m+6*n+4*g<=440)+set(8*m+2*n+4*g<=480)+set(95*m+90*n+85*g<=8000) solvesdp(F,-Z)Z=double(Z)m=double(m)n=double(n)g=double(g)Linear scalar (real, integer, 1 variable)Linear scalar (real, integer, 1 variable)Linear scalar (real, integer, 1 variable)Linear scalar (real, integer, 3 variables)+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality (integer) 1x1|| #2| Numeric value| Element-wise inequality (integer) 1x1|| #3| Numeric value| Element-wise inequality (integer) 1x1|| #4| Numeric value| Element-wise inequality (integer) 1x1|| #5| Numeric value| Element-wise inequality (integer) 1x1|| #6| Numeric value| Element-wise inequality (integer) 1x1|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality (integer) 1x1|| #2| Numeric value| Element-wise inequality (integer) 1x1|| #3| Numeric value| Element-wise inequality (integer) 1x1|| #4| Numeric value| Element-wise inequality (integer) 1x1|| #5| Numeric value| Element-wise inequality (integer) 1x1|| #6| Numeric value| Element-wise inequality (integer) 1x1|| #7| Numeric value| Element-wise inequality (integer) 1x1|| #8| Numeric value| Element-wise inequality (integer) 1x1|| #9| Numeric value| Element-wise inequality (integer) 1x1|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Model name: '' - run #1Objective: Maximize(R0)SUBMITTEDModel size: 3 constraints, 3 variables, 9 non-zeros.Sets: 0 GUB, 0 SOS.Using DUAL simplex for phase 1 and PRIMAL simplex for phase 2.The primal and dual simplex pricing strategy set to 'Devex'.Relaxed solution 3877.77777778 after 2 iter is B&B base.Feasible solution 3800 after 23 iter, 31 nodes (gap 2.0%) Improved solution 3810 after 28 iter, 36 nodes (gap 1.7%) Improved solution 3820 after 29 iter, 37 nodes (gap 1.5%) Improved solution 3830 after 30 iter, 38 nodes (gap 1.2%) Improved solution 3840 after 31 iter, 39 nodes (gap 1.0%) Improved solution 3850 after 32 iter, 40 nodes (gap 0.7%) Improved solution 3860 after 69 iter, 84 nodes (gap 0.4%)Optimal solution 3860 after 77 iter, 92 nodes (gap 0.4%).Excellent numeric accuracy ||*|| = 9.09495e-013MEMO: lp_solve version 5.5.2.0 for 32 bit OS, with 64 bit REAL variables.In the total iteration count 77, 0 (0.0%) were bound flips.There were 46 refactorizations, 0 triggered by time and 0 by density.... on average 1.7 major pivots per refactorization.The largest [LUSOL v2.2.1.0] fact(B) had 7 NZ entries, 1.0x largest basis. The maximum B&B level was 22, 3.7x MIP order, 16 at the optimal solution. The constraint matrix inf-norm is 95, with a dynamic range of 47.5.Time to load data was 0.000 seconds, presolve used 0.000 seconds,... 0.002 seconds in simplex solver, in total 0.002 seconds.ans =yalmiptime: 0.0990solvertime: 0.0020info: 'No problems detected (LPSOLVE-MXLPSOLVE)'problem: 0dimacs: [NaN NaN NaN NaN NaN NaN]Z =3860m =30n =27g =32type 2.m%1x=sdpvar(1,3);%f=[2 -2 3]*x';f=2*x(1)-2*x(2)+3*x(3);F=set(x(1)<=0)+set(x(2)>=0);%F=F+set([-1 1 1]*x'<=4)+set([-1 1 1]*x'>=4)+set([-2 1 -1]*x'<=6);F=F+set([-1 1 1]*x'==4)+set([-2 1 -1]*x'<=6);solvesdp(F,f)double(f)double(x)%2x=intvar(1,2);f=[3 -1]*x';F=set(x>=0);F=F+set([3 -2]*x'<=3)+set([5 4]*x'>=10)+set(2*x(1)+x(2)<=5);solvesdp(F,-f)double(f)double(x)%3x=binvar(1,3);f=[3 -2 5]*x';F=set([1 2 -1]*x'<=2)+set([1 4 1]*x'<=4)+set([1 1 0]*x'<=3)+set(4*x(2)+x(3)<=6); solvesdp(F,-f)double(f)double(x)%4x=sdpvar(1,2);f=[1 1]*(x'.^2)+8;F=set(x>=0);F=F+set([1 -1]*(x'.^2)>=0)+set(-x(1)-x(2)^2+2>=0)+set(-x(1)-x(2)^2+2<=0); solvesdp(F,f)double(f)double(x)%微分方程%无显性求解,只能用数值解了。
利用primer5计算生物群落指数简易教程
利用primer5计算生物群落指数简易教程-(时间仓促,难免疏漏,有问题请及时咨询生物生态室)1.利用primer软件首先要将数据做成primer格式,我们主要在标准报表基础上利用excel透视表功能来实现,步骤如下:打开标准报表(以底栖动物为例),选择图1中蓝色部分。
选择excel插入、数据透视表、数据透视表。
2.出现透视表对话框,选新建工作表,确定。
3.将监测站位、生物种中文名、密度分别拖入列标签、行标签和数值栏中,单击数值栏里的密度,选值字段设置,选择求和,点确定。
4.将空白、总计等行列删除,空格替换为数字0,首行空一行,即完成数据的primer 格式。
(数据存为excel97-03版,高级版本不识别)。
5.打开primer5,选择打开。
6.选择保存好的primer excel表。
7.选择工作表序号。
Ok.8.点cancel.9.点左上角方框,选中数据。
10.选择analyse/diverse.11.在other中选择种类数S、数量N、丰富度指数D、均匀度指数J。
12.在Shannon多样性指数中选择以2为底,结果输出到工作表。
OK。
13.群落结构的主要指数便可得到。
14.关于群落优势种的计算采用公式Y=(ni/N)*fi。
ni为第i个种的总个体数,N 为所有物种的总个体数,fi为第i物种出现的频率。
计算结果中Y>0.02的为优势种。
目前对于群落结构的好坏没有统一标准,在描述其群落结构时尽量避免“差”、“较差”等字眼。
可以参考“群落结构稳定”、“群落结构较为稳定”、、“群落结构基本稳定”、“群落结构稳定性略低”、“群落结构稳定性较往年有所增加(降低)”等描述。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
clear;close;clc;A=[1 2 3;4 5 6]A =1 2 34 5 6A=[1:3;4:6]A =1 2 34 5 6A=zeros(2,3)A =0 0 00 0 0A=eye(3,3)A =1 0 00 1 00 0 1C=hadamard(4)C =1 1 1 11 -1 1 -11 1 -1 -11 -1 -1 1help toeplitzTOEPLITZ Toeplitz matrix.TOEPLITZ(C,R) is a non-symmetric Toeplitz matrix having C as itsfirst column and R as its first row.TOEPLITZ(R) is a symmetric Toeplitz matrix for real R.For a complex vector R with a real first element, T = toeplitz(r) returns the Hermitian Toeplitz matrix formed from R. When thefirst element of R is not real, the resulting matrix is Hermitian off the main diagonal, i.e., T_{i,j} = conj(T_{j,i}) for i ~= j.Class support for inputs C,R:float: double, singleSee also HANKEL.Overloaded methods:sdpvar/toeplitzncvar/toeplitzA=[1 2 3];B=4:6;C1=cat(1,A,B)C1 =1 2 34 5 6C2=cat(2,A,B)C2 =1 2 3 4 5 6 C3=cat(3,A,B)C3(:,:,1) =1 2 3C3(:,:,2) =4 5 6horzcat(A,B)ans =1 2 3 4 5 6 vertcat(A,B)ans =1 2 34 5 6A=1:9;A=reshape(A,3,3)'A =1 2 34 5 67 8 9A(2,3)ans =6A(8)ans =6B=A(1:2,:)B =1 2 34 5 6A(:,[1 2])=[]A =369C=reshape(B,1,6)C =1 42 53 6 A*C(1:3)ans =3 12 66 24 129 36 18C'ans =142536x=sdpvar(1,3)%f=[2 -2 3]*x'f=2*x(1)-2*x(2)+3*x(3)F=set(x(1)<=0)+set(x(2)>=0)%F=F+set([-1 1 1]*x'<=4)+set([-1 1 1]*x'>=4)+set([-2 1 -1]*x'<=6)F=F+set([-1 1 1]*x'==4)+set([-2 1 -1]*x'<=6)solvesdp(F,f)double(f)double(x)Linear matrix variable 1x3 (full, real, 3 variables)Linear scalar (real, 3 variables)+++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality 1x1|| #2| Numeric value| Element-wise inequality 1x1|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality 1x1|| #2| Numeric value| Element-wise inequality 1x1|| #3| Numeric value| Equality constraint 1x1|| #4| Numeric value| Element-wise inequality 1x1|+++++++++++++++++++++++++++++++++++++++++++++++++++++++Model name: '' - run #1Objective: Maximize(R0)SUBMITTEDModel size: 2 constraints, 3 variables, 6 non-zeros.Sets: 0 GUB, 0 SOS. Using DUAL simplex for phase 1 and PRIMAL simplex for phase 2.The primal and dual simplex pricing strategy set to 'Devex'.Found feasibility by dual simplex after 1 iter.Optimal solution 13 after 2 iter.Excellent numeric accuracy ||*|| = 0MEMO: lp_solve version 5.5.2.0 for 32 bit OS, with 64 bit REAL variables.In the total iteration count 2, 0 (0.0%) were bound flips.There were 2 refactorizations, 0 triggered by time and 0 by density.... on average 1.0 major pivots per refactorization.The largest [LUSOL v2.2.1.0] fact(B) had 5 NZ entries, 1.0xlargest basis.The constraint matrix inf-norm is 2, with a dynamic range of 2.Time to load data was 0.000 seconds, presolve used 0.000 seconds, ... 0.001 seconds in simplex solver, in total 0.001 seconds.ans =yalmiptime: 0.1020solvertime: 1.0000e-003info: 'No problems detected (LPSOLVE-MXLPSOLVE)'problem: 0dimacs: [NaN NaN NaN NaN NaN NaN]ans =-13.0000ans =0 5.0000 -1.0000m=intvar(1,1)n=intvar(1,1)g=intvar(1,1)Z=50*m+40*n+40*gF=set(m>=0)+set(m<=30)+set(n>=0)+set(n<=35)+set(g>=0)+set(g<=40)F=F+set(4*m+6*n+4*g<=440)+set(8*m+2*n+4*g<=480)+set(95*m+90*n+85*g<=800 0)solvesdp(F,-Z)Z=double(Z)m=double(m)n=double(n)g=double(g)Linear scalar (real, integer, 1 variable)Linear scalar (real, integer, 1 variable)Linear scalar (real, integer, 1 variable)Linear scalar (real, integer, 3 variables)+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality (integer) 1x1|| #2| Numeric value| Element-wise inequality (integer) 1x1|| #3| Numeric value| Element-wise inequality (integer) 1x1|| #4| Numeric value| Element-wise inequality (integer) 1x1|| #5| Numeric value| Element-wise inequality (integer) 1x1|| #6| Numeric value| Element-wise inequality (integer) 1x1|++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| ID| Constraint| Type|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| #1| Numeric value| Element-wise inequality (integer) 1x1|| #2| Numeric value| Element-wise inequality (integer) 1x1|| #3| Numeric value| Element-wise inequality (integer) 1x1|| #4| Numeric value| Element-wise inequality (integer) 1x1|| #5| Numeric value| Element-wise inequality (integer) 1x1|| #6| Numeric value| Element-wise inequality (integer) 1x1|| #7| Numeric value| Element-wise inequality (integer) 1x1|| #8| Numeric value| Element-wise inequality (integer) 1x1|| #9| Numeric value| Element-wise inequality (integer) 1x1|+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Model name: '' - run #1Objective: Maximize(R0)SUBMITTEDModel size: 3 constraints, 3 variables, 9 non-zeros.Sets: 0 GUB, 0 SOS. Using DUAL simplex for phase 1 and PRIMAL simplex for phase 2.The primal and dual simplex pricing strategy set to 'Devex'.Relaxed solution 3877.77777778 after 2 iter is B&B base. Feasible solution 3800 after 23 iter, 31 nodes (gap 2.0%)Improved solution 3810 after 28 iter, 36 nodes (gap 1.7%)Improved solution 3820 after 29 iter, 37 nodes (gap 1.5%)Improved solution 3830 after 30 iter, 38 nodes (gap 1.2%)Improved solution 3840 after 31 iter, 39 nodes (gap 1.0%)Improved solution 3850 after 32 iter, 40 nodes (gap 0.7%)Improved solution 3860 after 69 iter, 84 nodes (gap 0.4%)Optimal solution 3860 after 77 iter, 92 nodes (gap 0.4%).Excellent numeric accuracy ||*|| = 9.09495e-013MEMO: lp_solve version 5.5.2.0 for 32 bit OS, with 64 bit REAL variables.In the total iteration count 77, 0 (0.0%) were bound flips.There were 46 refactorizations, 0 triggered by time and 0 by density.... on average 1.7 major pivots per refactorization.The largest [LUSOL v2.2.1.0] fact(B) had 7 NZ entries, 1.0xlargest basis.The maximum B&B level was 22, 3.7x MIP order, 16 at the optimal solution.The constraint matrix inf-norm is 95, with a dynamic range of47.5.Time to load data was 0.000 seconds, presolve used 0.000 seconds, ... 0.002 seconds in simplex solver, in total 0.002 seconds.ans =yalmiptime: 0.0990solvertime: 0.0020info: 'No problems detected (LPSOLVE-MXLPSOLVE)'problem: 0dimacs: [NaN NaN NaN NaN NaN NaN]Z =3860m =30n =27g =32type 2.m%1x=sdpvar(1,3);%f=[2 -2 3]*x';f=2*x(1)-2*x(2)+3*x(3);F=set(x(1)<=0)+set(x(2)>=0);%F=F+set([-1 1 1]*x'<=4)+set([-1 1 1]*x'>=4)+set([-2 1 -1]*x'<=6); F=F+set([-1 1 1]*x'==4)+set([-2 1 -1]*x'<=6);solvesdp(F,f)double(f)double(x)%2x=intvar(1,2);f=[3 -1]*x';F=set(x>=0);F=F+set([3 -2]*x'<=3)+set([5 4]*x'>=10)+set(2*x(1)+x(2)<=5); solvesdp(F,-f)double(f)double(x)%3x=binvar(1,3);f=[3 -2 5]*x';F=set([1 2 -1]*x'<=2)+set([1 4 1]*x'<=4)+set([1 10]*x'<=3)+set(4*x(2)+x(3)<=6);solvesdp(F,-f)double(f)double(x)%4x=sdpvar(1,2);f=[1 1]*(x'.^2)+8;F=set(x>=0);F=F+set([1 -1]*(x'.^2)>=0)+set(-x(1)-x(2)^2+2>=0)+set(-x(1)-x(2)^2+2<=0);solvesdp(F,f)double(f)double(x)%微分方程%无显性求解,只能用数值解了。