张志涌《Matlab》第二章:符号计算与变量操作

需积分: 9 6 下载量 174 浏览量 更新于2024-07-31 收藏 3.34MB DOC 举报
张志涌编著的《MATLAB教程》第二章深入探讨了符号计算在MATLAB 2010a中的应用。这一章节主要关注符号对象和符号表达式的创建与操作,这对于理解和处理数学问题中的复杂公式和方程至关重要。 **1. 符号对象的创建与衍生** 符号计算在MATLAB中通过`sym`函数实现,它用于创建符号对象。与普通的数值对象(如`double`)不同,符号对象可以处理代数运算而不进行实际数值计算,直到需要时才求值。例如,`sa = sym('pi+sqrt(5)')`创建了一个符号对象,存储了表达式`pi + sqrt(5)`,而不是立即求得近似值`5.3777`。 **2. 符号数字和符号常数** 章节介绍了如何区分符号数字(如`pi`)和符号常数(如`'pi+sqrt(5)'`),前者是MATLAB内置的特殊符号,后者则是字符串形式的表达式。通过`class`函数,可以检查变量类型,如`Ca=class(a)`和`Csa=class(sa)`展示了`a`为`double`类型,而`sa`为`sym`类型。 **3. 自由符号变量** 在处理涉及多个未知数的方程时,可以使用`syms`命令定义自由符号变量。例如,`syms uvwza5`声明了变量`u`, `v`, `w`, `z`, 和 `a5`为自由符号变量。这样,`eq = sin(f)*u*z^2+v*z+f*w-a5`中的`f`也自动被视为符号变量,方便后续求解。 **4. 方程求解与符号变量管理** `solve`函数用于求解符号方程。在例子中,`solve(Eq)`给出了一个关于`a5`的解,而`solve(Eq, z)`则提供了`z`的解,这些解通常以根的形式表示。`symvar`函数用于确定方程中的独立变量,`symvar(Eq)`会列出所有变量,指定不同的参数(如`100`或`1`)可以改变返回变量的数量。 **5. 多元表达式和符号变量选择** 在处理更复杂的表达式如`EXPR = a*z*X + (b*x^2+k)*Y`时,`symvar(EXPR)`会显示所有出现的变量,`symvar(EXPR,10)`指定返回前10个变量,而`symvar(EXPR,1)`仅返回一个独立变量`x`,`symvar(EXPR,3)`则选择最相关的三个变量`[x,y,t]`。 在尝试执行某些操作时,如`E3 = sym('a*sqrt(theta)')`,可能会遇到错误,因为`sqrt`函数需要一个数值输入。这提示在处理符号表达式时,必须确保所有函数调用都是与符号对象兼容的。 张志涌编著的MATLAB教程第二章介绍了符号计算的核心概念和方法,包括符号对象的创建、变量管理和方程求解,这对于在MATLAB中高效地处理数学问题和符号运算至关重要。通过掌握这些技能,用户能够更好地利用MATLAB的符号计算功能来解决复杂的数学问题。