第7章 matlab代数方程与最优化问题的求解
Matlab中的最优化问题求解方法

Matlab中的最优化问题求解方法近年来,最优化问题在各个领域中都扮演着重要的角色。
无论是在工程、经济学还是科学研究中,我们都需要找到最优解来满足特定的需求。
而Matlab作为一种强大的数值计算软件,在解决最优化问题方面有着广泛的应用。
本文将介绍一些Matlab中常用的最优化问题求解方法,并探讨其优缺点以及适用范围。
一. 无约束问题求解方法1. 最速下降法最速下降法是最简单且直观的无约束问题求解方法之一。
其基本思想是沿着梯度的反方向迭代求解,直到达到所需的精度要求。
然而,最速下降法的收敛速度通常很慢,特别是在局部极小值点附近。
2. 共轭梯度法共轭梯度法是一种改进的最速下降法。
它利用了无约束问题的二次函数特性,通过选择一组相互共轭的搜索方向来提高收敛速度。
相比于最速下降法,共轭梯度法的收敛速度更快,尤其适用于大规模优化问题。
3. 牛顿法牛顿法是一种基于二阶导数信息的优化方法。
它通过构建并求解特定的二次逼近模型来求解无约束问题。
然而,牛顿法在高维问题中的计算复杂度较高,并且需要矩阵求逆运算,可能导致数值不稳定。
二. 线性规划问题求解方法1. 单纯形法单纯形法是一种经典的线性规划问题求解方法。
它通过在可行域内进行边界移动来寻找最优解。
然而,当问题规模较大时,单纯形法的计算复杂度会大幅增加,导致求解效率低下。
2. 内点法内点法是一种改进的线性规划问题求解方法。
与单纯形法不同,内点法通过将问题转化为一系列等价的非线性问题来求解。
内点法的优势在于其计算复杂度相对较低,尤其适用于大规模线性规划问题。
三. 非线性规划问题求解方法1. 信赖域算法信赖域算法是一种常用的非线性规划问题求解方法。
它通过构建局部模型,并通过逐步调整信赖域半径来寻找最优解。
信赖域算法既考虑了收敛速度,又保持了数值稳定性。
2. 遗传算法遗传算法是一种基于自然进化过程的优化算法。
它模拟遗传操作,并通过选择、交叉和变异等操作来搜索最优解。
遗传算法的优势在于其适用于复杂的非线性规划问题,但可能需要较长的计算时间。
Matlab中的优化问题求解方法与示例分析

Matlab中的优化问题求解方法与示例分析介绍在科学与工程领域,优化问题是一个常见且重要的研究方向。
优化问题的目标是在给定的约束条件下,找到使得目标函数取得最优值的变量取值。
Matlab作为一个著名的科学计算软件,提供了丰富的优化问题求解方法。
本文将介绍Matlab中常用的优化问题求解方法,并通过实例分析来展示其应用。
一、线性规划问题的求解方法线性规划问题(Linear Programming)是一类目标函数与约束条件均为线性关系的优化问题。
Matlab中提供了线性规划问题求解的函数“linprog”和“intlinprog”。
1. linprog函数linprog函数用于求解线性规划问题,其使用方法如下:```[x, fval, exitflag, output] = linprog(f, A, b, Aeq, beq, lb, ub)```其中,f为目标函数的系数向量,A和b为不等式约束的系数矩阵和常数向量,Aeq和beq为等式约束的系数矩阵和常数向量,lb和ub为变量的下界和上界。
2. intlinprog函数intlinprog函数用于求解整数线性规划问题,即变量取值为整数的线性规划问题。
其使用方法与linprog类似,但需要添加一个参数“options”,用于设置求解器的选项。
二、非线性规划问题的求解方法非线性规划问题(Nonlinear Programming)是一类目标函数或约束条件存在非线性关系的优化问题。
Matlab中提供了多种非线性规划问题求解的函数,包括“fminunc”、“fmincon”和“lsqnonlin”。
1. fminunc函数fminunc函数用于求解没有约束条件的非线性规划问题,其使用方法如下:```[x, fval, exitflag, output] = fminunc(fun, x0)```其中,fun为目标函数的句柄,x0为变量的初始猜测值。
2. fmincon函数fmincon函数用于求解带约束条件的非线性规划问题,其使用方法如下:```[x, fval, exitflag, output, lambda] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub)```参数的含义与linprog函数中的相对应参数相似,但需要注意的是,A、b、Aeq 和beq都是针对不等式约束和等式约束的系数矩阵和常数向量;lb和ub为变量的下界和上界。
MATLAB课件第七章 最优化计算方法

以fun702为文件名保存此函数文件。 在命令窗口输入: x0=[-2;4]; x=fminunc('fun702',x0) 结果显示:
f=
-1.0000 x=
Matlab程序: ch702.m
1.0000 1.0000
即极小值为-1,是x1=1,x2=1时取得。
【例 3】 解非线性方程组
x1 2 x 2 1 0 ( x1 2 ) 2 ( x 2 0 .5 ) 2 1 0
max f 3x1 x 2 x 3 x 1 2 x 2 x 3 11 4 x 1 x 2 2 x 3 3 2 x1 x 3 1 x 0 , i 1, 2 , 3 i
s .t .
解:考虑到linprog函数只解决形如
【例 4】 求解约束非线性规划:
max s .t . e
e
x1
x1
x 2 (3 e
2
2
x1
x2 )
(初值为[1;1])
2
x2
3
首先将问题转化为matlab要求的格式;即求出 fun,A,b,Aeq,Beq,X0,Lb,Ub
解:首先建立一个m文件fun7041.m
function y=fun7041(x) y=-exp(x(1))*x(2)^2*(3-exp(x(1))-x(2)^2);
k 1
k
k
k
由此得到下一个点 4) 检验新得到的点
x
k
P
k
k
k 1
是否满足精度要求的最
优解。
如果是,则结束运算;
否则,令 k k 1, 返回 ( 2 ) 继续迭代
MATLAB程序设计教程第7章MATLAB解方程与函数极值

7.3 常微分方程初值问题的数值解法 7.3.1 龙格-库塔法简介 7.3.2 龙格-库塔法的实现
基于龙格-库塔法,MATLAB提供了求常微分方程数值 解的函数,一般调用格式为:
[t,y]=ode23('fname',tspan,y0)
[t,y]=ode45('fname',tspan,y0) 其中fname是定义f(t,y)的函数文件名,该函数文件必须返回
x=fsolve('myfun',[0.5,0.5]',optimset('Display','off')) x=
0.6354 0.3734
将求得的解代回原方程,可以检验结果是否正确,命令如下: q=myfun(x) q=
1.0e-009 * 0.2375 0.2957 可见得到了较高精度的结果。
命令如下:
a=[1,2,-2;1,1,1;2,2,1]; b=[9;7;6]; [x,n]=jacobi(a,b,[0;0;0]) [x,n]=gauseidel(a,b,[0;0;0])
7.2 非线性方程数值求解 7.2.1 单变量非线性方程求解
在MATLAB中提供了一个fzero函数,可以用来求 单变量非线性方程的根。该函数的调用格式为:
和一个上三角矩阵的乘积形式。线性代数中已经证明,只 要方阵A是非奇异的,LU分解总是可以进行的。 MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格 式为: [L,U]=lu(X):产生一个上三角阵U和一个变换形式的下三角 阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须 是方阵。 [L,U,P]=lu(X):产生一个上三角阵U和一个下三角阵L以及 一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须 是方阵。 实现LU分解后,线性方程组Ax=b的解x=U\(L\b)或 x=U\(L\Pb),这样可以大大提高运算速度。
使用Matlab进行优化与最优化问题求解

使用Matlab进行优化与最优化问题求解引言:优化与最优化问题在科学、工程和金融等领域中具有重要的应用价值。
在解决这些问题时,选择一个合适的优化算法是至关重要的。
Matlab提供了许多用于求解优化问题的函数和工具箱,能够帮助我们高效地解决各种复杂的优化与最优化问题。
一、优化问题的定义优化问题是通过选择一组最佳的决策变量值,使目标函数在约束条件下达到最优值的问题。
通常,我们将优化问题分为线性优化问题和非线性优化问题。
在Matlab中,可以使用线性规划(Linear Programming)工具箱和非线性规划(Nonlinear Programming)工具箱来解决这些问题。
其中,线性规划工具箱包括linprog函数,而非线性规划工具箱则包括fmincon和fminunc等函数。
二、线性规划问题的求解线性规划问题的数学模型可以表示为:```minimize f'*xsubject to A*x ≤ blb ≤ x ≤ ub```其中,f是目标函数的系数矩阵,A是不等式约束条件的系数矩阵,b是不等式约束条件的右侧向量,lb和ub是变量的上下界。
在Matlab中,可以使用linprog函数来求解线性规划问题。
该函数的调用格式为:```[x, fval, exitflag, output] = linprog(f, A, b, Aeq, beq, lb, ub)```其中,x是最优解向量,fval是目标函数的最优值,exitflag标志着求解的结果状态,output包含了详细的求解过程。
三、非线性规划问题的求解非线性规划问题的数学模型可以表示为:```minimize f(x)subject to c(x) ≤ 0ceq(x) = 0lb ≤ x ≤ ub```其中,f(x)是目标函数,c(x)和ceq(x)分别是不等式约束条件和等式约束条件,lb和ub是变量的上下界。
在Matlab中,可以使用fmincon函数来求解非线性规划问题。
Matlab 7最优化问题求解

1.0000
1.0000
f x
其中x = [x1 , x2 … x n ]T ,该数学表示的含义是求一组 x,使得目标函数 f(x)最小,且满 足约束条件 G(x)小于或等于 0.这种问题也称为最小化问题.
2.1 约束条件分类 ·线性不等式约束:Ax ≤ b ·线性等式约束:Aeq x = beq ·非线性不等式约束:Cx ≤ 0 ·非线性等式约束:Ceq x = 0 ·x 的上界和下界:Lbnd ≤ x ≤ Ubnd Matlab 提供了 fmincon 函数,用于求解各种约束下的最优解问题,调用格式为: [x,fval]=fmincon(@fname,x0,A,b,Aeq,beq,Lbnd,Ubnd,Nonf ,options) X,fname,fval,x0 和 options 含义与求最小值函数相同, 其余参数为约束条件, 参 数 NonF 为非线性约束函数的 M 文件名,如果该约束不存在则用空矩阵表示. --------------------------------------------------------------------例如:求解有约束最优化问题
例如:求解线性规划问题
min f x = 2x1 + x2 3x1 + x2 ≥ 3 x s. t. 4x1 + 3x2 ≥ 6 x1 ≥ 0, x2 ≥ 0 f=[2;1]; A=[-3,-1;-4,-3;-1,-2]; b=[-3;-6;-2]; lb=[0;0]; options=optimset('Display','off'); [x,f]=linprog(f,A,b,[],[],lb,[]) Optimization terminated.
最优化问题的matlab求解
3. 建立主程序.非线性规划求解的函数是fmincon,命令的基本格 式如下:
(1) x=fmincon(‘fun’,X0,A,b) (2) x=fmincon(‘fun’,X0,A,b,Aeq,beq) (3) x=fmincon(‘fun’,X0,A,b, Aeq,beq,VLB,VUB)
x13
x
2 2
x3
80
2个不等式约束,
2个等式约束
3个决策变量x1,x2,x3 如果nonlcon以‘mycon1’作为参数值,则程序 mycon1.m如下
功能:各个参数的解释如前,若各个约束条件不存 在,则用空矩阵来代替。
例:求解 min 2x1 x2 4x3 3x4 x5 2x2 x3 4x4 2x5 54
s.t. 3x1 4x2 5x3 x4 x5 62 x1, x2 0, x3 3.32, x4 0.678, x5 2.57
function y=fun071(x,a,b) y=x(1)^2/a+x(2)^2/b;
x0=[1,1];a=2;b=2;
x=fminunc(@fun071,x0,[],a,b)
X=(0,0)
3、全局最优解和局部最优解
例:已知函数 y(t) e2t cos10t e3t6 sin 2t,t 0, 试观察不同 的初值得出其最小值。
fun.m ~ f(x)的m文件名
x0 ~初始点; x ~最优解
优化问题的Matlab求解方法
优化问题的Matlab求解方法引言优化问题在实际生活中有着广泛应用,可以用来解决很多实际问题。
Matlab作为一款强大的数学计算软件,提供了多种求解优化问题的方法。
本文将介绍在Matlab中求解优化问题的常见方法,并比较它们的优缺点。
一、无约束无约束优化问题是指没有约束条件的优化问题,即只需要考虑目标函数的最大或最小值。
在Matlab中,可以使用fminunc函数来求解无约束优化问题。
该函数使用的是拟牛顿法(quasi-Newton method),可以迭代地逼近最优解。
拟牛顿法是一种迭代方法,通过逐步近似目标函数的梯度和Hessian矩阵来求解最优解。
在使用fminunc函数时,需要提供目标函数和初始点,并可以设置其他参数,如迭代次数、容差等。
通过不断迭代,拟牛顿法可以逐步逼近最优解。
二、有约束有约束优化问题是指在优化问题中加入了约束条件。
对于有约束优化问题,Matlab提供了多种求解方法,包括线性规划、二次规划、非线性规划等。
1. 线性规划线性规划是指目标函数和约束条件都为线性的优化问题。
在Matlab中,可以使用linprog函数来求解线性规划问题。
该函数使用的是单纯形法(simplex method),通过不断迭代来逼近最优解。
linprog函数需要提供目标函数的系数矩阵、不等式约束矩阵和约束条件的右手边向量。
通过调整这些参数,可以得到线性规划问题的最优解。
2. 二次规划二次规划是指目标函数为二次型,约束条件线性的优化问题。
在Matlab中,可以使用quadprog函数来求解二次规划问题。
该函数使用的是求解二次规划问题的内点法(interior-point method),通过迭代来求解最优解。
quadprog函数需要提供目标函数的二次项系数矩阵、线性项系数矩阵、不等式约束矩阵和约束条件的右手边向量。
通过调整这些参数,可以得到二次规划问题的最优解。
3. 非线性规划非线性规划是指目标函数或者约束条件中至少有一个是非线性的优化问题。
如何在Matlab中进行数学建模和优化问题求解
如何在Matlab中进行数学建模和优化问题求解在当今信息时代,数学建模和优化问题求解在各个领域都扮演着重要的角色。
而Matlab作为一种功能强大的数学软件,在数学建模和优化问题求解方面具有广泛的应用和影响力。
本文将介绍如何在Matlab中进行数学建模和优化问题求解的具体步骤以及一些常用的工具和技巧。
一、数学建模数学建模是指将实际问题转化为数学模型,并通过数学方法对问题进行分析和求解的过程。
在Matlab中进行数学建模,首先要明确问题的数学模型。
一般来说,数学模型分为离散模型和连续模型两种类型。
离散模型主要是指离散的数据,比如图论、网络流等问题。
在Matlab中,关于离散模型的建模和求解可以使用图论和最短路径算法等工具函数来实现。
比如可以使用graph函数构建图,再使用相应的算法来求解最短路径等问题。
连续模型主要是指连续的函数或方程,比如微分方程、优化问题等。
在Matlab 中,关于连续模型的建模和求解可以使用符号计算工具箱和优化工具箱来实现。
符号计算工具箱可以用来求解微分方程,而优化工具箱可以用来求解优化问题,比如线性规划、非线性规划等。
在进行数学建模时,还需要考虑问题的目标函数和约束条件。
目标函数表示问题的目标是最大化还是最小化,而约束条件则是限制问题解的条件。
在Matlab中,可以使用符号计算工具箱和优化工具箱提供的函数来定义和处理目标函数和约束条件。
比如可以使用syms函数定义符号变量,再使用fmincon函数来求解带有约束条件的优化问题。
在实际进行数学建模时,通常会遇到数据不完整或不准确的情况。
因此,对于这种情况,可以使用插值和拟合技术来对数据进行处理和修复。
在Matlab中,可以使用interp1函数进行插值和拟合,并使用polyfit函数进行多项式拟合。
二、优化问题求解优化问题求解是指在给定的约束条件下,寻找使目标函数达到最优的解。
在Matlab中,有多种常用的优化算法可以用于求解优化问题,比如线性规划、非线性规划、整数规划等。
优化问题的MATLAB求解课件
MATLAB简介
MATLAB是一种高级编程语言和交互 式环境,主要用于数值计算、数据分 析和可视化。
它广泛应用于工程、科学、技术和数 学领域,支持多种编程范式,包括面 向对象编程。
MATLAB编程基础
MATLAB使用类似于数学表达式的语 法,支持多种数据类型,包括数组、 矩阵和结构体。
程序流程控制结构包括条件语句、循 环语句和开关语句等。
05
非线性规划问题求解
非线性规划问题概述
1
非线性规划问题是在满足一定约束条件下,寻找 一组变量使得某个目标函数达到最小或最大的问 题。
2
约束条件可以是等式或不等式,目标函数是非线 性函数。
3
非线性规划问题在许多领域都有广泛应用,如机 器学习、数据挖掘、金融、工程等。
MATLAB求解非线性规划问题
此外,MATLAB优化工具 箱还可以用于图像处理、 信号处理等领域。
在生物医学领域, MATLAB优化工具箱可用 于药物研发、疾病预测等 。
04
线性规划问题求解
线性规划问题概述
线性规划问题是在满足一组线性约束条件下,寻 找线性函数的最大或最小值的问题。
线性规划问题通常用于解决资源分配、生产计划 、运输和分配等问题。
整数规划问题实例
问题描述
以最小化总成本为例,考虑一个 生产计划问题,其中包含多个产 品、多个资源、多个工艺流程和 多个约束条件。
数学模型
使用线性整数规划模型描述该问 题,包括决策变量、目标函数和 约束条件。
求解过程
使用MATLAB的优化工具箱进行 求解,并分析求解结果。
感谢您的观看
THANKS
这些函数使用户能够通过 调用函数并传递参数来定
义和解决优化问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 一般多项式方程的根可为实数,也可为复数。 可用MATLAB符号工具箱中的solve( )函数。 最简调用格式: S=solve(eqn1,eqn2,…,eqnn) (返回一个结构题型变量S,如S.x表示方程的根。)
直接得出根: (变量返回到MATLAB工作空间) [x,…]=solve(eqn1,eqn2,…,eqnn) 同上,并指定变量 [x,…]=solve(eqn1,eqn2,…,eqnn,’x,…’)
• 例:求解 (带参数方程) >> syms a b x y; >> [x,y]=solve('x^2+a*x^2+6*b+3*y^2=0','y=a+(x+3)','x,y') x= [ 1/2/(4+a)*(-6*a-18+2*(-21*a^2-45*a-27-24*b-6*a*b3*a^3)^(1/2))] [ 1/2/(4+a)*(-6*a-18-2*(-21*a^2-45*a-27-24*b-6*a*b3*a^3)^(1/2))] y= [ a+1/2/(4+a)*(-6*a-18+2*(-21*a^2-45*a-27-24*b-6*a*b3*a^3)^(1/2))+3] [ a+1/2/(4+a)*(-6*a-18-2*(-21*a^2-45*a-27-24*b-6*a*b3*a^3)^(1/2))+3]
• 方程的图解法 仅适用于一元、 二元方程的求根 问题。
7.1.2 多项式型方程的准解析解法
• 例:
>> ezplot('x^2+y^2-1'); hold on % 绘制第一方程的曲线 >> ezplot(‘0.75*x^3-y+0.9’) % 绘制第二方程 为关于x的6次多项式方程 应有6对根。图解法只能 显示求解方程的实根。
c= 1 d= iterations: 7 funcCount: 21 algorithm: 'trust-region dogleg' firstorderopt: 1.3061e-010 %解回代的精度 调用inline( )函数: >> f=inline('[p(1)*p(1)+p(2)*p(2)-1; 0.75*p(1)^3-p(2)+0.9]','p'); >> [x,Y] = fsolve(f,[1; 2],OPT); % 结果和上述完全一致,从略。 Optimization terminated successfully: First-order optimality is less than options.TolFun.
可先用用图解法选取初值,再调用fst long >> y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t'); >> ff=optimset; ff.Display='iter'; [t,f]=fsolve(y,3.5203,ff) Norm of First-order Trust-region Iteration Func-count f(x) step optimality radius 1 2 1.8634e-009 5.16e-005 1 2 4 3.67694e-019 3.61071e-005 7.25e-010 1 Optimization terminated successfully: First-order optimality is less than options.TolFun. t= 3.52026389294877 f= -6.063776702980306e-010
初值改变有可能得出另外一组解。故初值的选择 对解的影响很大,在某些初值下甚至无法搜索到方程 的解。
• 例:
用solve( )函数求近似解析解
>> syms t; solve(exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)* cos(2*t) - 0.5) ans = .67374570500134756702960220427474 %不允许手工选择初值,只能获得这样的一个解。
验证:
>> err=[x+3*y.^3+2*z.^2-1/2, x.^2+3*y+z.^3-2, x.^3+2*z+2*y.^22/4]; >> norm(double(eval(err))) ans = 1.4998e-027
• 多项式乘积形式也可,如把第三个方程替换一下。
>> [x,y,z]=solve('x+3*y^3+2*z^2=1/2','x^2+3*y+z^3=2','x^3+ 2*z*y^2=2/4'); >> err=[x+3*y.^3+2*z.^2-1/2, x.^2+3*y+z.^3-2, x.^3+2*z.*y.^2-2/4]; >> norm(double(eval(err))) % 将解代入求误差 ans = 5.4882e-028
• 例:求解 (含变量倒数) >> syms x y; >> [x,y]=solve('x^2/2+x+3/2+2/y+5/(2*y^2)+3/x^3=0',... 'y/2+3/(2*x)+1/x^4+5*y^4','x,y'); >> size(x) ans = 26 1 >> err=[x.^2/2+x+3/2+2./y+5./(2*y.^2)+3./x.^3,y/2+3./ (2*x)+1./x.^4+5*y.^4]; %验证 >> norm(double(eval(err))) ans = 8.9625e-030
若改变初始值 x0=[-1,0]T
>> [x,Y,c,d]=fsolve(f,[-1,0]',OPT); x, Y, kk=d.funcCount Optimization terminated successfully: First-order optimality is less than options.TolFun. x= -0.9817 0.1904 Y= 1.0e-010 * 0.5619 -0.4500 kk = 15
• 验证
>> [eval('x.^2+y.^2-1') eval('75*x.^3/100-y+9/10')] ans = [ 0, 0] [ 0, 0] [ 0, 0] [ -.1e-31, 0] [ .5e-30+.1e-30*i, 0] [ .5e-30-.1e-30*i, 0] 由于方程阶次可能太高,不存在解析解。然而, 可利用MATLAB的符号工具箱得出原始问题的高精 度数值解,故称之为准解析解。
• 例: >> syms x y; >> [x,y]=solve('x^2+y^2-1=0','75*x^3/100-y+9/10=0')
x= [ -.98170264842676789676449828873194] [ -.55395176056834560077984413882735-.35471976465080793456863789934944*i] [ -.55395176056834560077984413882735+.35471976465080793456863789934944*i] [ .35696997189122287798839037801365] [ .86631809883611811016789809418650-1.2153712664671427801318378544391*i] [ .86631809883611811016789809418650+1.2153712664671427801318378544391*i] y= [ .19042035099187730240977756415289] [ .92933830226674362852985276677202-.21143822185895923615623381762210*i] [ .92933830226674362852985276677202+.21143822185895923615623381762210*i] [ .93411585960628007548796029415446] [ -1.4916064075658223174787216959259-.70588200721402267753918827138837*i] [ -1.4916064075658223174787216959259+.70588200721402267753918827138837*i]
第七章代数方程与最优化问题的求解
• 代数方程的求解 • 无约束最优化问题的计算机求解 • 有约束最优化问题的计算机求解 • 整数规划问题的计算机求解
7.1代数方程的求解
7.1.1 代数方程的图解法
• 一元方程的图解法 例:
>> ezplot('exp(-3*t)… *sin(4*t+2)+4*exp… (-0.5*t)*cos(2*t)-… 0.5',[0 5]) >> hold on, >> line([0,5],[0,0]) % 同时绘制横轴