• MATLAB学习笔记(九)——MATLAB符号计算


    (一)符号对象

    一、建立符号对象

    1、建立符号变量和符号常量(sym,syms):

    image

    只可以建立一个符号变量

    image

    可以一次性建立多个符号变量

    PS:符号常量计算的结果是精确的数学表达式,而数值常量是进行约分后的常数

    2、建立符号表达式:

    (1)利用单引号来生成符号表达式:

    y='1/sqrt(2*x)';        %符号表达式
    g='cos(x^2)-sin(x)=0’   %符号方程

    (2)用sym函数建立符号表达式:

    Y=sym('3*x');   %符号表达式:
    G=sym ('[a,b;c,d]');         %矩阵表达式

    (3)使用已经定义的符号变量组成符号表达式

    syms x y;
    V=3*x^2-5*y+2*x*y+6;

    二、符号表达式的计算

    1、符号表达式的四则运算

    符号表达是的加减乘除运算的实现方法:

    (1)使用函数:

    %其中f,g为符号表达式
    symadd(f,g);    %加法
    symsub(f,g);    %减法
    symmul(f,g);    %乘法
    symdiv(f,g);    %除法
    sympow(f,g);    %幂运算

    (2)可以直接使用”+,-,*,/,^“运算符实现运算。

    PS:但是MATLAB不一定会化简到最简的形式

    2、符号表达式提取分子和分母的运算

    [n,d]=numden(s);   %s为符号表达是,n为分子,,d为分母

    PS:无论s是什么,MATLAB会进行运算,使得s化为一个分式

    3、符号表达式的因式分解与展开

    factor(s);   %对符号表示式分解分解因式
    expands(s);  %对s进行展开
    collect(s);  %对s合并同类项
    collect(s,v);%对s按变量v合并同类项。

    4、符号表达式的化简

    simplify(s);    %应用函数规则对s进行化简。
    simple(s);      %调用MATLAB的其他函数对表示式进行综合化简。并显示化简过程

    5、符号表达式与数值表达式之间的转换

    sym(1.5);                 %数值表达式转换为符号表达式
    numeric('sqrt(5)');       %符号表达式转换为数值表达式
    eval('sqrt(5)');          %符号表达式转换为数值表达式

    三、符号表达式中变量的确定

    findsym(s,n);
    %返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。

    PS:在求函数的极限导数和积分时:如果用户没有明确指定自变量,MATLAB将按缺省原则findsym(s,1)找到缺省变量(离x最近的符号变量);

    四、符号矩阵:

    使用sym函数可以建立符号矩阵并化简

    m=sym('[1/(a+x),1;2;1/(b+y)'];

    对矩阵使用的函数同样可以对符号矩阵使用

    transpose(s);       %返回s矩阵的转置矩阵
    determ(s);          %返回s矩阵的行列式值
    diag(s);            %以矩阵s的元素作为矩阵X的主对角线元素
    triu(s);            %返回矩阵s上三角矩阵
    tril(s);            %返回矩阵s下三角矩阵
    inv(s);             %返回矩阵s的逆矩阵
    det(s);             %返回矩阵s的行列式的值
    rank(s);            %返回矩阵的秩
    eig(s);             %返回矩阵的特征值和特征向量

    (二)符号微积分

    一、符号极限limit

    image

    image

    二、符号导数diff

    image

    三、符号积分int

    image

    四、积分变换

    1、傅里叶变换

    (1)概念

    image

    (2)MATLAB实现

    fourier(f,x,t);     %求函数f(x)的傅里叶像函数F(t)
    ifourier(f,t,x);    %求傅里叶像函数F(t)的原函数f(x).

    2、拉普拉斯变换

    (1)概念

    image

    (2)MATLAB实现

    laplace(fx,x,t);     %求函数f(x)的拉普拉斯像函数F(t)
    ilaplace(Fw,t,x);    %求拉普拉斯像函数F(t)的原函数f(x)

    3、Z变换

    (1)概念

    image

    (2)MATLAB实现

    ztrans(fn,n,z);      %求函数f(n)的Z变换像函数F(z)
    iztrans(Fz,z,n);     %求函数F(z)的Z变换原函数f(n)

    (三)级数

    一、级数符号求和

    symsum(s,v,n,m);     %s表示一个技术的通项,是一个符号表达。
                             %v是求和向量
                             %n和m是开始项和末项(m可以取inf)

    二、函数的泰勒级数

    taylor(f,v,n,a);     %将函数f按变量v展开为泰勒级数
                             %展开到第n想为止,n的缺省值为6
                         %a为在何处展开,默认a=0

    (四)符号方程求解

    一、符号代数方程求解solve

    image

    二、符号常微分方程的求解dsolve

    image

  • 相关阅读:
    论独立思考的重要性及策略
    linux的iptables和firewall的区别
    CentOS中防火墙相关的命令(CentOS7中演示)
    Capistrano:自动完成多台服务器上新版本的同步更新,包括数据库的改变
    CentOS7.0下安装FTP服务的方法
    nginx服务器究竟是怎么执行php项目
    centos7.0 可以访问HTML文件,不能访问PHP文件,因为php-fpm没有扩展包
    (二)Centos7下Yum更新安装PHP5.5,5.6,7.0
    centos7重启apache、nginx、mysql、php-fpm命令
    centOS 重启 php-fpm
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4296365.html
Copyright © 2020-2023  润新知