matlab化简符号表达式

化简符号表达式计算机毕竟还是挺笨的, 经过一系列的符号计算后, 得到的结果可能只有它自己才能看懂, Matlab提供大量函数以用于符号表达式的化简.

  1. collect(f): 函数用途是合并多项式中相同的项, 如:

    syms x t
    f=(1+x)*t+x*t;
    collect(f)

  2. expand(f):展开多项式,

    syms x
    f=x*(x*(x-1)+3)+2;
    expand(f);

  3. horner(f) 对转换多项式为Horner形式, 这种形式的特点是乘法嵌套, 其有着不错的数值计算性质.

    syms x;
    f=x^3+2*x^2+5*x-2
    horner(f)

  4. factor(f): 多项式的因式分解. 如果无法在有理数的范围内作分解, 那么返回的结果还是输入值.

    syms x;
    f=x^3-6*x^2+11*x-6;
    factor(f)

  5. simplify(f): 通过数学运算化简符号表达式

    syms x; 
    f=cos(x)^2+sin(x)^2
    simplify(f)

  6. simple(f): 威力比较强大, 它会尝试各种办法来化简符号表达式, 其化简的标准是使得符号表达式的长度最短.

    syms x 
    f=sin(x)^2+cos(x)^2; 
    simple(f)

  7. subexpr(f): 通过计算机自动寻找, 将表达式中多次出现的因式用简短的符号表示, 返回的结果中包含替换之后的表达式, 以及被替换的因式.

    syms x a; 
    f=solve(x^2+a*x-1);
    r=subexpr(f);

  8. pretty(f): 用"我们人能看到懂"的表示方法表示出符号表达式. 不过做好心理准备, 可能这样显示出来的表达式更发指!

    syms a x; 
    f=solve(x^2+a*x-1); 
    pretty(f);

本文引用地址:http://blog.sciencenet.cn/blog-1373583-826881.html 此文来自科学网温刚博客,转载请注明出处。

时间: 2024-10-20 22:24:02

matlab化简符号表达式的相关文章

卡诺图简单逻辑化简与五变量卡诺图化简

一.格雷码编码规则 画卡诺图的时候需要先将所有变量可能以格雷码的形式排列在方格两侧,所有变量有2^n个,虽然我们常用的变量为四个及以下,可以熟记格雷码,但为了学习还是有必要了解格雷码的编码规则.格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不同,这样在数字电路中变化时每次就只有一位发生变化,提高了电路的稳定性. 规则: 自然二进制数到格雷码: 保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似. 格雷码到自然二进制数

逻辑函数的化简 【数字电路】

逻辑函数的化简 先补点各种门的 basic knowledge NAND 与非 NOR或非 XOR异或 XNOR 同或 对于同或,异或之前一直没搞明白....那个该死的标记老是混淆,也不知道为嘛标记的发明人为嘛要那么标记 ...现在知道了XOR...所以异或的标记是一个圈中间一把×             化简: 上面预设的ABCD的值输出结果是1 至于化简过程是为嘛...这个就是一步步化简....各种求并消项 切记!不要搞这种傻事! 然后就是另外一个很重要的化简方法--卡诺图 将n变量的全部最

HDU 5912 Fraction(模拟——分子式化简求解)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5912 Problem Description Mr. Frog recently studied how to add two fractions up, and he came up with an evil idea to trouble you by asking you to calculate the result of the formula below: As a talent, c

线性代数-矩阵-【5】矩阵化简 C和C++实现

点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html [2]矩阵生成:http://www.cnblogs.com/HongYi-Liang/p/7275278.html [3]矩阵加减:http://www.cnblogs.com/HongYi-Liang/p/7287403.html [4]矩阵点乘:http://www.cnblogs.com/HongYi-Liang/p/7287324.html [5]矩

UVA - 10886 - Standard Deviation(化简 + 暴力)

题意:求如下函数产生的值的前 n 项的标准差(1 <= n <= 10000000,0 <= seed < 2^64). long double gen(){ static const long double Z = ( long double )1.0 / (1LL<<32); seed >>= 16; seed &= ( 1ULL << 32 ) - 1; seed *= seed; return seed * Z; } 写出方差的式

ios开发小技巧-用宏化简代码

在IOS开发中,要做字典转模型一般情况如下: 1 /** 2 * 声明方法 3 */ 4 - (instancetype) initWithDictionary:(NSDictionary *)dict; 5 + (instancetype) carWithDictionary:(NSDictionary *)dict; 6 7 /** 8 * 实现方法 9 */ 10 - (instancetype)initWithDictionary:(NSDictionary *)dict 11 { 12

YZOI Easy Round 2_化简(simplify.c/cpp/pas)

Description 给定一个多项式,输出其化简后的结果. Input 一个字符串,只含有关于字母x 的多项式,不含括号与分式,没有多余的空格. Output 一个字符串,化简后的多项式,按照次数从大到小的顺序输出各项. Input Sample x^3+3*x^4-2*x^3+1-x Output Sample 3*x^4-x^3-x+1 Hint 每项系数<10,次数<6,项数<20.字符串长度不超过100. 很烦的模拟   代码如下: #include<iostream&g

HDU 4565 So Easy! 数学 + 矩阵 + 整体思路化简

http://acm.hdu.edu.cn/showproblem.php?pid=4565 首先知道里面那个东西,是肯定有小数的,就是说小数部分是约不走的,(因为b限定了不是一个完全平方数). 因为(a - 1)^2 < b < (a ^ 2),所以其不是完全平方数,假如是,那么设其为c,则有a - 1 < c < a,这是矛盾的 所以,向上取整这个步骤,是必不可少的了. 那么,我在它后面加上一个< 1的数,同时使得它们结合成为整数,那就相当于帮它取整了.根据二项式定理 (

文法的二义性和化简

1,判断一个文法是否存在二义性 一个文法,如果它的一个句子有两棵或两棵以上的语法树,则称此句子具有二义性.如果一个文法含有二义性的句子,则该文法具有二义性.这里的二义性是指语法结构上的.如果一个句子具有二义性,那么对于这个句子的结构可能有多种"正确"的解释.通常情况下,句子的语义要通过其语法结构来定义,所以,二义性一般是有害的. 2,文法的二义性是否能够判定呢??? 文法的二义性是不可判定的.即不存在一个算法,它能在有限的步骤内确切地判定一个文法是否具有二义性. 3,怎么消除文法的二义