5数值计算功能

合集下载

数值计算1-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数值计算功能
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函数是一个非常实用的函数,可以帮助我们进行条件计数。

本文将介绍如何使用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插值法

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软件在材料科学中的运用,体现出了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分解法

数值分析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分解法在科学计算领域有着广泛的应用,可以用于求解工程问题中的大规模线性方程组,解非线性方程组,求逆矩阵等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)%微分方程%无显性求解,只能用数值解了。

相关文档
最新文档