版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 MATLAB科学计算,7.1 方程求解,本节将分别讨论线性方程组、非线性方程组和常微分方程三种常见方程的解法。,7.1.1 线性方程组,线性方程组是线性代数中的主要内容之一,也是理论发展最为完整的部分。在MATLAB中也包含多种处理线性方程组的命令,下面详细进行介绍。,1.问题描述 在实际应用中,经常需要求解如下所示的两类线性方程组,其中第一种更常见。 AX=B XA=B 按照数学的严格定义,并没有矩阵除法的概念,而MATLAB为了书写简便提供了用除号求解线性方程组解的方式,其具体用法如下: X=AB:左除,计算方程组AX=B的解。 X=B/A:右除,计算方程组XA=B的解。 下面针对
2、AX=B的形式进行说明。系数矩阵A是mn的矩阵,根据其维数可以分为如下3种情况: m=n为恰定方程组,即方程数等于未知量数。 mn为超定方程组,即方程数大于未知量数。 mn为欠定方程组,即方程数小于未知量数。,线性方程组解的类型也可以分为3种情况: rank(A)= rank(A, B)且对应齐次方程组AX=0不存在非0解,则方程组有唯一解,如矩阵A可逆。 rank(A)= rank(A, B)且对应齐次方程组AX=0存在非0解,则方程组有无穷解,如rank(A)= rank(A, B)且为欠定方程组。 rank(A)= rank(A, B),则方程组无解。 不难看出,线性方程组解的类型是由对
3、应齐次方程组的解,对应系数矩阵和增广矩阵间的关系决定的。,2.解的形式 线性方程组AX=B解的形式可以如下描述: 首先可以使用null函数求解对应齐次方程组AX=0的基础解系,也可以称为通解,则AX=B的解都可以通过通解的线性组合表示。 其次求解非齐次线性方程组AX=B的特解。 最后非齐次线性方程组AX=B解的形式为通解的线性组合加上特解。 3.除法及求逆的解法 (1)除法解法 若线性方程组AX=B的系数矩阵可逆,则AB给出方程组的唯一解。,【例7-2】使用除法求解系数矩阵不可逆的恰定线性方程组。 在命令窗口中输入如下语句: A=1 3 7;-1 4 4;1 10 18; det_A=det(
4、A) B=6;4;15 X=AB det_A = 0 B = 6 4 15 Warning: Matrix is singular to working precision. X = NaN Inf -Inf 从以上的结果可以看出,MATLAB会显示提示信息,表示该矩阵是奇异矩阵,因此无法得到精确的数值解。,【例7-3】使用除法求解欠定线性方程组。 在命令窗口中输入如下语句: C=magic(4); A=C(1:3,:) B=1;0;0; X=AB 命令窗口中的输出结果如下所示: A = 16 2 3 13 5 11 10 8 9 7 6 12 X = 0.1863 0.0294 0 -0.1
5、569,(2)求解逆法 在例7-1中,已经介绍了通过求逆的方法求解方程组的解,这里着重介绍伪逆的用法。对于系数矩阵而言,它可能是方阵但不可逆,也可能不是方阵,上述情况都导致它的逆不存在或无定义,这就需要引入伪逆的概念。伪逆包含很多种形式(详见矩阵的有关书籍),下面介绍最常用的基于最小二乘意义下的最优伪逆,在MATLAB中通过pinv函数可以实现,即可以使用矩阵A的伪逆矩阵pinv(A)来得到方程的一个解,其对应的数值解为pinv(A)*B。,【例7-5】使用伪逆矩阵的方法求解奇异矩阵的线性方程的解。 在命令窗口中输入如下语句: A=1 3 7;-1 4 4;1 10 18; B=5;2;12;
6、 X=pinv(A)*B C=A*X 命令窗口中的输出结果如下所示: X = 0.3850 -0.1103 0.7066 C = 5.0000 2.0000 12.0000 从上面的结果可以看出,通过使用伪逆矩阵的方法,可以求解得到数值解,同时该数值解可以精确地满足结果。,上面都是介绍如何计算特解,下面介绍如何计算线性方程组的所有解。 【例7-6】使用求逆法计算线性方程组的所有解。 在命令窗口中输入如下语句: A=1 2 3 4;5 6 7 8;9 10 11 12; B=1;1;2; X1=null(A) X2=pinv(A)*B 命令窗口中的输出结果如下所示: X1 = 0.5135 0.
7、1906 -0.8267 0.1287 0.1129 -0.8290 0.2003 0.5098 X2 = -0.1250 -0.0208 0.0833 0.1875 此时线性方程组的所有解为X=a*X1(:,1)+b*X1(:,2)+X2,其中a、b为任意实数。,4.矩阵分解的解法 (1)LU分解 LU分解又可称为Gauss(高斯)消去法。若系数矩阵为方阵,它可以表示为下三角矩阵和上三角矩阵的乘积,即A=LU,其中L为下三角阵,U为上三角阵。在MATLAB中通过lu函数可实现LU分解。 针对LU分解,线性方程组AX=B可以表示为LUX=B,由于L和U的特殊性,通过X=U/(L/B)求解可以大
8、大提高运算速度。 LU函数的具体语法形式如下: L,U=lu(X):X是任意方阵,L是下三角阵,U是上三角阵,这三个变量满足的条件式为X=LU。 L,U,P=lu(X):X是任意方阵,L是下三角阵,U是上三角阵,P是置换矩阵,满足的条件式为PX=LU。 Y=lu(X):X是任意方阵,把上三角矩阵和下三角矩阵合并在矩阵Y中给出,满足的条件式为Y=L+U-I,但是将损失置换矩阵P的信息。,【例7-7】使用LU分解法求解线性方程组 在命令窗口中输入如下语句: A=2 1 1;1 -2 3;6 -5 1; B=1;5;7; C=det(A) L,U=lu(A) X=U(LB) 命令窗口中的输出结果如下
9、所示: C = 0 0 3.1250 50 X = L = 0.3600 0.3333 1.0000 0 -0.7600 0.1667 -0.4375 1.0000 -0.7600 1.0000 0 0 U = 6.0000 -5.0000 1.0000 0 2.6667 0.6667,(2)Cholesky分解 若系数矩阵为对称正定矩阵,可以表示为上三角矩阵和其转置的乘积,即A=RR,其中R为上三角矩阵,R为下三角矩阵。在MATLAB中通过chol函数可以实现Cholesky分解。 从理论角度来讲,并不是所有的对称矩阵都可以进行Cholesky分解,可以进行Cholesky分解的矩阵必须是正
10、定的。针对Cholesky分解,线性方程组AX=B可以表示为RRX=B,由于R的特殊性,通过X=R/(R/B)求解可以大大提高运算速度。 Chol函数的具体语法形式如下。 R=chol(X):X是对称的正定矩阵,R是上三角矩阵,使得X=RR。如果矩阵X是非正定矩阵,该命令会返回错误信息。 R,p=chol(X):该命令返回两个参数,并不返回错误信息。当X是正定矩阵时,返回的矩阵R是上三角矩阵,而且满足X=RR,同时返回参数p=0;当X不是正定矩阵时,返回的参数p是正整数,R是三角矩阵,矩阵阶数是p-1,并且满足X=X(1:p-1,1:p-1)=RR。,【例7-9】使用Cholesky分解法求解
11、线性方程组 在命令窗口中输入如下语句: A=2 1 3;1 5 4;3 4 6; B=1;3;5; C=det(A) R=chol(A) TR=R X=R(TRB) 命令窗口中的输出结果如下所示: C = X = 1 -23.0000 R = -10.0000 1.4142 0.7071 2.1213 -10.0000 0 2.1213 1.1785 0 0 0.3333 TR = 1.4142 0 0 0.7071 2.1213 0 2.1213 1.1785 0.3333,(3)QR分解 对于任何系数矩阵,可以表示为正交矩阵和上三角矩阵的乘积,即A=QR,其中Q为正交矩阵,R为上三角矩阵。
12、在MATLAB中通过qr函数可以实现QR分解。 针对QR分解,线性方程组AX=B可以表示为QRX=B,由于Q和R的特殊性,通过X=R/(Q/B)求解可以大大提高运算速度。 Qr函数的具体语法形式如下: Q,R=qr(A):矩阵R和矩阵A的大小相同,Q是正交矩阵,满足A=QR,该调用方式适合于满矩阵和稀疏矩阵。,5.共轭梯度的解法 MATLAB还提供了一系列的线性方程组AX=B的共轭梯度解法,这里主要介绍双共轭梯度法,它可由bicg函数实现。bicg函数要求系数矩阵A必须为方阵。,【例7-12】使用共轭梯度法求解线性方程组 在命令窗口中输入如下语句: A=3 1 1;2 -1 5;8 -4 0;
13、 B=2;4;1; X, flag,relres,iter,resvec=bicg(A,B) 命令窗口中的输出结果如下所示: X = 0.3000 0.3500 0.7500 其中,flag表示在默认迭代次数内收敛,relres表示相 flag = 对残差norm(B-A*x)/norm(B),iter表示终止的迭代 0 次数,resvec表示每次迭代的残差。 relres = 5.4820e-016 iter = 3 resvec = 4.5826 3.9370 6.6052 0.0000,7.1.2 非线性方程,1.函数的零点 对于任意函数,在求解范围内可能有零点,也可能没有;可能只有一个
14、零点,也可能有多个甚至无数个零点。MATLAB没有可以求解所以函数零点的通用命令,本节将分别讨论一元函数和多元函数的零点求解问题。 (1)一元函数的零点 在所有函数中,一元函数是最简单的,在MATLAB中可以使用fzero函数来计算一元函数的零点,它的具体使用方法如下: x=fzero(fun,x0):在x0点附近寻找函数fun的零点。 x=fzero(fun,x0,options):使用options设定优化器参数。 x=fzero(fun,x0,x1):在x0,x1区间寻找函数fun的零点。,(2)多元函数的零点 多元函数的零点问题比一元函数的零点问题更难解决,但是当零点大致位置和性质比较
15、好预测时,也可以使用数值方法来搜索精确的零点。 非线性方程组的标准形式为F(x)=0,其中x为向量,F(x)为函数向量。在MATLAB中,求解多元函数的命令是fsolve,它的具体使用方法如下: X=fsolve(fun,x0):在向量x0附近寻找函数fun的解。 X=fsolve(fun,x0,options):使用options设定优化器参数。 其中options设定优化器参数的方法同前。,2.非线性方程组的解 求非线性方程组的解的问题,也就是求多元函数的零点的问题。在MATLAB中使用fsolve函数计算非线性方程组的解,使用方法见上一小节。 【例7-15】求解 首先对非线性方程组进行函
16、数描述,并保存为myfun7_15.m,其内容如下所示: function T=myfun7_15(x) T=x4-1,7;-11,9; 其次对非线性方程组进行求解,在命令窗口中输入如下语句: x0=3 1;2 1; options=optimset(Display,off); X=fsolve(myfun7_15,x0,options) 命令窗口中的输出结果如下所示: X = 1.4693 0.3875 -0.6089 1.9121,7.1.3 常微分方程,1.求解常微分方程的函数 在MATLAB中使用ode45、 ode23、ode113、ode15s、ode23s、ode23t、ode2
17、3tb等函数求常微分方程(ODE)的数值解,这些函数的介绍如表7-2所示。它们的具体使用方法类似,为了方便后面的描述,这里用solver统一代替它们。 在介绍具体用法之前,首先介绍其涉及的参数,如表7-3所示。 其次介绍它们的具体用法,如下所述: T,Y=solver(odefun,tspan,y0) 在区间tspan=t0,tf上,使用初始条件 y0求解常微分方程。常微分方程 odefun解向量 Y中的每行结果对应于时间向量T中每个时间点。,表7-2 常微分方程的求解算法,表7-3 solver中的参数,在tspan=t0,t1,t2,tf指定时间点上,使用初始条件y0求解常微分方程。常微分
18、方程odefun解向量Y中的每行结果对应于时间向量T中的每个时间点。 T,Y=solver(odefun,tspan,y0,options),2.求解常微分方程的类型 MATLAB可以求解3种一阶常微分方程,即显式常微分方程、线性隐式常微分方程和完全隐式常微分方程。 显式常微分方程的形式如下: 线性隐式常微分方程的形式如下: 完全隐式常微分方程的形式如下: 对于高阶常微分方,可以将其转换成如下所示的一阶常微分方程组:,7.2 数据处理统计,本节主要介绍MATLAB在数据统计处理方面的应用,包括最大值和最小值、求和和求积、平均值和中值、标准方差、相关系数以及排序等内容。 1.随机数的生成 可以通
19、过随机数生成函数生成 2.数据分析基本函数 在MATLAB中提供了大量数据分析函数,在分类介绍这些函数之前,首先给出如下约定: 进行一维数据分析时,数据可以用行向量或者列向量来表示,无论哪种表示方法,函数的运算都是对整个向量进行的。 进行二维数据分析时,数据可以用多个向量或者二维矩阵来表示。对于二维矩阵,函数的运算总是按列进行的。 MATLAB提供了包括计算随机变量数字特征在内的大量数据分析函数,详见以下小节内容。,7.2.1 最大值和最小值,在MATLAB中计算最大值和最小值的函数分别是max和min,具体用法如下: 计算最大值函数:C=max(A),如果A是向量,返回向量中的最大值;如果A
20、是矩阵,返回一个包含各列最大值的行向量。 计算最小值函数:C=max(A),min和max函数使用方法类似。,7.2.2 求和和求积,在MATLAB中求和和求积的函数分别为sum和prod,具体用法如下: 计算元素和:B=sum(A),如果A是向量,返回向量A的各元素之和;如果A是矩阵,返回含有各列元素之和的行向量。 计算元素连乘积:B=prod(A),如果A是向量,返回向量A的各元素连乘积;如果A是矩阵,返回含有各列元素连乘积的行向量。 【例7-21】应用求和与求积的函数。 在命令窗口中输入如下语句: x=1:20; y=randn(1,20); y_sum=sum(y) y_prod=pr
21、od(y) 命令窗口中的输出结果如下所示: y_sum = -1.3643 y_prod = -1.6120e-005,7.2.3 平均值和中值,在MATLAB中计算平均值和中值的函数分别为mean和median,具体用法如下: 计算均值也叫数学期望:M=mean(A),如果A是向量,返回向量A的平均值;如果A是矩阵,返回含有各列平均值的行向量。 计算中值:M=median(A),与mean函数使用方法类似。 【例7-22】应用求平均值和中值的函数,在命令窗口中输入如下语句: x=1:20; y=randn(1,20); y_mean=mean(y) %求向量平均值 y_median=medi
22、an(y) %求向量中间值 命令窗口中的输出结果如下所示: y_mean = 0.0283 y_median = 0.1461,7.2.4 标准方差,在MATLAB中求标准方差的函数为std,具体用法如下: s=std(A):如果A是向量,返回向量的标准差;如果A是矩阵,返回含有各列标准差的行向量。 另外,MATLAB计算方差(即标准差的平方)的函数为var: v=var(X):如果A是向量,返回向量的方差;如果A是矩阵,返回含有各列方差的行向量。 向量的标准差定义如下: 向量的方差是标准差的平方,即: 其中是向量的长度, ,即平均值。 当较大时,取 有时称此为样本方差,而称上式的为样本修正方
23、差。,7.2.5 相关系数,MATLAB提供了corrcoef函数计算相关系数,具体用法如下: Corrcoef(X,Y):计算列向量X,Y的相关系数,等价于corrcoef(X,Y);corrcoef(A)计算矩阵A的列向量的相关系数矩阵。 另外,cov函数用来计算协方差: cov(X)计算向量X的协方差;cov(A)计算矩阵A各列的协方差矩阵,该协方差矩阵的对角线元素是A的各列的方差;cov(X,Y)等价于cov(X,Y)。,7.2.6 排序,在MATLAB中用函数sort()来实现数值的排序,具体用法如下: B=sort(A):如果A是向量,升序排列向量;如果A是矩阵,升序排列各个列。
24、B=sort(,mode):用mode选择排序方式, ascend为升序, descend为降序。,7.3 数据插值,插值是图像处理和信号处理等领域常用的方法。在已知的数据之间寻找估计值的过程即为插值。MATLAB2010中提供了大量用于获取数据时间复杂度、空间复杂度以及平滑度等的插值函数,这些函数保存在MATLAB2010安装目录下的ployfun工具箱中。,7.3.1 一维插值,对一维函数 进行插值即为一维插值。如图7-7所示,图中实心点表示已知数据点,空心点表示未知数据点,需要通过插值过程对横坐标x所对应的y值进行估计。在MATLAB7中存在两种类型的插值,即基于多项式的插值和基于傅立叶
25、的插值。,一维多项式插值可以通过函数interp1()来实现,interp1()的格式如下: yi=interp1(x,y,xi,method),其中x必须是矩阵,y可以是向量也可以是矩阵。若y是向量,则必须与x长度相同,此时xi可以是标量、向量或任意维矩阵,yi与xi大小相同;若y是矩阵,则其大小必须是n,d1,d2,dk,n为向量x的长度,函数对d1*d2*dk组y值都进行插值; yi=interp1(y,xi),默认x为1:n,其中n为向量y的长度; yi=interp1(x,y,xi,method),输入变量method用于指定插值的方法。 yi=interp1(x,y,xi,meth
26、od,extrap),对超出数据范围的插值数据指定外推方法; yi=interp1(x,y,xi,method,extrapval) 对超出数据范围的插值数据返回extrapval值,一般设为NaN或者0; yi=interp1(x,y,xi,pp),返回值pp为数据y的分段多项式形式。method指定产生分段多项式pp的方法,它可以是插值方法中除了的任何方法。 一维插值可以指定的方法如下: 最邻近插值(method取值为neaest),这种插值方法在已知数据的最邻近点设置插值点,对插值点的数进行四舍五入。对超出范围的点将返回NaN。最邻近插值是最快的插值方法,但在数据平滑方面效果最差,得到的
27、数据是不连续的。 线性插值(method取值为linear),该方法是未指定插值方法时所采用的方法,该方法直接连接相邻的两点,对超出范围的点将返回NaN。比最邻近插值占用更多的内存,执行速度也稍慢,但在数据平滑方面优于最邻近插值,且线性插值的数据变化是连续的。 三次样条插值(method取值为spline),该方法采用三次样条函数来获得插值点。在已知点为端点的情况下,插值函数至少具有相同的一阶和二阶导数。处理速度最慢,占用内存小于分段三次厄米多项式插值,可以产生最光滑的结果,但在输入数据分布不均匀或数据点间距过近时将产生错误。样条插值是非常有用的插值方法。,分段三次厄米多项式插值(method
28、取值为pchip),该参数取值的特点可参考帮助文档。在处理速度和内存消耗方面比线性插值差,但插值得到的数据和一阶导数是连续的。 三次多项式插值(method取值为cublic),该参数取值的特点可参考帮助文档。在处理速度和内存消耗方面比线性插值),与分段三次厄米多项式插值相同。 三次多项式插值拟合已知数据(method取值为 v5cublic),该参数取值的特点可参考帮助文档。在处理速度和内存消耗方面比线性插值),该方法使用三次多项式函数对已知数据进行拟合。 上述方法的相对优劣不仅适用于一维插值,同样适用于二维或更高维度的情况。当选择一个插值方法时,应充分考虑其执行速度、内存占用以及数据平滑度
29、等方面的优劣。,7.3.2 二维插值,二维插值主要应用于图像处理和数据可视化方面,其基本原理与一维插值一样,不同的是它是对两个变量的函数进行插值。MATLAB中二维插值的函数为interp2(),其调用格式如下: zi=interp2(x,y,z,xi,yi),原始数据x,y,z决定插值函数,返回值zi是(xi,yi)在函数f(x,y)上的值; zi=interp2(z,xi,yi),若,则x=1 ,y=1:m; zi=interp2(z,ntimes),在两点之间递归地插值ntimes次; zi=interp2(x,y,z,xi,yi,method),可采用的不同的插值方法method; z
30、i=interp2(method,extrapval),当数据超过原始数据范围时,用输入extrapval指定一种外推方法。 二维插值可采用的方法如下: 最近邻插值(method=nearest),这种插值方法在已知数据的最近邻点设置插值点,对插值的数进行四舍五入。对超出范围的点将返回一个NaN。 双线性插值(method=linear),该方法是未指定插值方法时MATLAB默认采用的方法。插值点值取决于最近邻的四个点的值。 三次样条插值(method=spline),该方法采用三次样条函数来获得插值数据。 双三次多项式插值(method=cublic)。,7.3.3 三维插值,三维插值的思想
31、与一维、二维插值基本相同,区别在于它是对三维函数的插值。MATLAB提供了函数interp3实现三维插值,具体方法如下: vi=interp3(x,y,z,v,xi,yi,zi),返回值vi是对于自变量(xi,yi,zi)的插值,需要说明的是xi,yi,zi,vi应为同维。 vi=interp3(x,y,z,v,xi,yi,zi,method),method用于指定插值方法,其取值及意义与二维插值的method方法相同。 vi=interp3(x,y,z,v,xi,yi,zi,method,extrapval),当数据超过原始数据范围时,输入extrapval指定一种外推方法。,7.4 数值积
32、分,MATLAB 2010提供的数值积分函数及其功能描述如表7-7所示。,7.4.1 一元函数积分,MATLAB 2010提供了两个函数quad()和quadl()计算一元函数的积分。函数quad()采用低阶的自适应递归Simpson方法,函数quadl()则采用高阶的自适应Lobatto方法。函数quad()函数的调用格式如下: q=quad(fun,a,b),计算函数fun在a b区间内的定积分。fun为函数句柄,a和b都是标量,它们分别是积分区间的下届和上届; q=quad(fun,a,b,tol),以绝对误差容限tol计算函数fun在a b区间内的定积分,取代MATLAB中默认的绝对误
33、差容限值; q=quad(fun,a,b,tol,trace),当trace不为零时,显示计算定积分的迭代过程中向量fcnt a b-a Q; q=quad(fun,a,b,.),多返回一个输出变量fcnt,表示计算定积分过程中计算函数值得次数。,7.4.2 矢量积分,矢量积分相当于多个一元定积分,例如求 , 就可以用矢量积分,具体代码如下: %quadv_exam.m %求矢量积分 y=(x,n)1./(sqrt(2*pi).*(1:n).*exp(-x.2./(2*(1:n).2); %归一化高斯函数 quadv(x)y(x,5),-1,1) 由上述语句得到的输出结果如下: ans = 0
34、.6827 0.3829 0.2611 0.1974 0.1585 矢量积分的结果是一个向量,其每一元素的值为一个一元函数定积分的值。,7.4.3 二元函数积分,二元函数的积分形式如 所示。 MATLAB2010中使用函数dblquad()来计算二重积分。该函数先计算内层积分值,然后利用内层积分的中间结果计算二重积分。根据dxdy的顺序,称x为内积分变量,y为外积分变量。函数dblquad()的基本格式如下: q=dblquad(fun,xmin,xmax,ymin,ymax),计算二元函数fun在矩形区域xmin,xmax,ymin,ymax上二重积分。fun为函数句柄,xmin、ymin、
35、xmax和ymax都是标量,它们分别是积分区间的下限和上限; q=dblquad(fun,xmin,xmax,ymin,ymax,tol),其中tol参数用于指定绝对计算精度; q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method),用method方法指定计算一维积分时采用的函数。Matalb默认采用函数quad()计算一维积分。用户还可以编写自己的一维积分函数,以用于计算二维积分,该函数的调用格式须与quad()一致。,7.5 最优化问题求解,最优化问题是工程中经常遇到的问题,下面从无约束非线性极小化、有约束极小化、二次规划和线性规划、线性最小二乘、非线性
36、最小二乘和多目标寻优方法等方面进行介绍。,7.5.1 无约束非线性极小化,在MATLAB中无约束非线性极小化问题的处理,使用的是fminsearch函数。具体方法如下: x=fminsearch(fun,x0):fun代表目标函数,x0为初值,它可以是标量、向量或矩阵。 x=fminsearch(fun,x0,options):options为进行优化的各种属性,由参数optimset函数设置。 x=fminsearch(.):x代表极小值点,fval代表最小值。 此外,还有一个fminunc函数,也是解决无约束非线性极小化问题的函数,其用法与fminsearch函数类似,该函数求的是局部解。
37、,7.5.2 有约束极小化,有约束条件的极小化问题相比于无约束条件极小化情况复杂很多,种类也比较繁多,这里只简单介绍函数fmincon的使用。 fmincon函数用于解决如下约束条件的极小化问题: min F(X) subject to: A*X = B, Aeq*X = Beq (线性约束) C(X)= 0, Ceq(X) = 0 (非线性约束) LB = X = UB (边界),fmincon函数的具体用法如下: x=fmincon(fun,x0,A,B):fun代表目标函数,x0为初值,它可以是标量,向量或矩阵,线性约束条件为A*B = B时,找到目标函数的极小值点。 x=fmincon
38、(fun,x0,A,B,Aeq,Beq):线性约束条件为A*X = B和Aeq*X = Beq,无不等式存在时设A=,B=。 x=fmincon(fun,x0,A,B,Aeq,Beq,LB,UB,nonlcon):计算非线性有约束条件(C(x) = 0,Ceq(x) = 0)下fun函数的极小值点,如果没有边界则设定LB = ,UB = 。,7.5.3 二次规划和线性规划,1.二次规划 用下式对二次规划的标准问题进行描述,其中X、b、beq、lb和ub都为列向量,A、Aeq和H都为符合维数要求的矩阵。 函数quadprog用来处理二次规划问题,该函数的具体用法如下:,x=quadprog(H,f,A,b):计算 线性规划的最优解。 x=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options):由指定设置options和初值x0开 始计算 线性规划的最优解,其中options可以由函 数optimset设定。 x,fval=(H,f,A,b,Aeq,beq,lb,ub,x0,options):附加返回最小值。,2.线性规划 用下式对线性规划问题进行数学描述,其中X、f、b、beq、lb和ub都为列向量,A和Aeq都为符合维数要求的矩阵。 函数linprog用来处理线性规划问题,下面详细
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 露天矿长岗位责任制度
- 项目书记安全责任制度
- 项目经理承包责任制度
- 食品安全安全责任制度
- 2026浙江招聘衢州市乡村振兴发展有限公司劳务外包工作人员6人备考题库及参考答案详解(考试直接用)
- 餐厅前厅破损责任制度
- 驻所检察责任制度
- 高压氧科护士责任制度
- 2026湖南永州市双牌县融媒体中心(双牌县广播电视台)招聘1人备考题库及答案详解1套
- 2026贵州红星电子材料有限公司招聘6人备考题库附答案详解(预热题)
- 工会安全监督工作内容
- 2025年内外妇儿联考试题及答案
- 部编人教版六年级语文下册六年级下册教学计划教学进度教学教案(2025-2026学年)
- 初中英语集体备课教学案例
- 2026年证券从业之证券市场基本法律法规考试题库500道含答案(模拟题)
- JJG 1206-2025 热式燃气表检定规程(试行)
- 涉外法律知识培训课件
- 医院医学装备管理制度
- 绿色低碳1000吨日城市建筑垃圾资源化利用项目可行性研究报告
- 湖北省恩施州2026届高三第一次质量监测暨9月起点考试物理试卷(含答案)
- 工程停电计划方案模板(3篇)
评论
0/150
提交评论