MATLAB控制系统仿真课件第五章.ppt
文本预览下载声明
最优化求解小结 ?最优化问题求解时可以描述目标函数 ?M-函数、函数句柄 ?约束条件返回等式和不等式,不能用函数句柄 ?最优化问题求解函数 ?无约束最优化:fminsearch、fminunc ?有约束最优化:fmincon、fminsearchbnd ?全局最优解尝试:fminunc_global, fmincon_global ?数据拟合:lsqcurvefit()、polyfit() syms s k collect((2*s+1)*(s^3+7*s^2+10*s+1)+k*(s+1), s) * Riccati 方程与数值求解 数学形式 ? 二次型方程,非线性 ? MATLAB求解 ? 例 Riccati方程的数值解 ?Riccati方程 ? 识别 A, B, C 矩阵,直接求解并检验 A=[-2,1,-3;-1,0,-2;0,-1,-2]; B=[2,2,-2;-1,5,-2;-1,1,2]; C=[5,-4,4;1,0,4;1,-2,5]; X=are(A,B,C), norm(A*X+X*A-X*B*X+C) 线性代数方程求解小结 ?仿照线性代数介绍AX=B 方程求解 ?三种情况:inv()、null()、pinv()、rank()、rref() ?Lyapunov与Sylvester 方程 ?涉及的函数:lyap(), Sylvester ?基于Kronecker乘积的解析求解 lyapsym() ?Riccati方程的数值求解 ?直接求解 are 一般非线性方程的求解 非线性方程的解析解法 F(x) = 0 ?例:鸡兔同笼问题 ?求解 syms x y; [x,y]=solve(x+y-14,2*x+4*y-36) 例:复杂多项式方程求解 ?二元方程 ?求解 syms x y; [x,y]=vpasolve(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==0); size(x) ?解的检验 norm(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) 非线性方程的图解法 ?fimplicit 或 ezplot 函数绘制隐函数曲线 ?可以由其联立方程交点读出 ?直观,可以求出感兴趣区域内全部实根 ?局部放大,但精度不高 ?最多适合于求解两个变量的方程 例 非线性方程图解法举例 ?已知非线性方程组 ? 感兴趣区间 ?MATLAB图示求解 syms x y; xx=[-2*pi,2*pi]; ezplot(x^2*exp(-x*y^2/2)+exp(-x/2)*sin(x*y),xx) hold on; ezplot(y^2*cos(y^2)+x^2*exp(x+y),xx) %ginput 一般非线性方程的数值解法 ?fsolve() 求解方程的步骤: ?1. 将代数方程写成标准型 Y = F(x) = 0 ?2. 用MATLAB描述方程 ?a.编写M-函数: 入口: function y=funname(x) ?b.函数句柄: y=@(x)[......] ?3.调用 fsolve() 函数直接求解,选择初值 例 非线性方程组求解实例 ?变量替换 ?变换成标准型 F(X) = 0 直接求解 f=@(x)[x(1)^2*exp(-x(1)*x(2)^2/2)+... exp(-x(1)/2)*sin(x(1)*x(2)); x(2)*cos(x(2)+x(1)^2)+x(1)^2*exp(x(1)+x(2))]; x0=rand(2,1); x=fsolve(f,x0), %只能求到一个值 more_sols(f,[0;0],12) 微分方程的求解 ? 连续控制系统数学模型的理论基础是微分方程,研究微分方程对其仿真分析有意义 ? 只有少数微分方程(线性定常或极少量非线性方程)有解析解,其他的微分方程得借助数值方法求解 ? 微分方程的求解主要介绍 ? 一阶显式微分方程组的数值解 ? 如何将一般微分方程化为可解形式、解的验证 ? 常微分方程的解析解法 一阶常微分方程组的数值解法 ? 一阶显式微分方程的标准型 ? 微分方程数值解算法 Runge–Kutta法、Adams法、Gear法等 ? 传统定步长方法不适合应用 ? 变步长方法、MAT
显示全部