符号运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

…………………………………………………………………………………………… [ .96274843969420649872171548984002-.57475793354361098651731421962321*i]
[例5] 例
生成一个符号矩阵。 生成一个符号矩阵。
MATLAB命令窗口输入命令 命令窗口输入命令: 解 在MATLAB命令窗口输入命令: >> syms a b c d e f g h i j k l
1+ 5 运行后屏幕显示 的符号表达式为 a= a = 2 (1+sqrt(5))/2
运行后屏幕显示 ans =
1 + 5 的相同数值形式为 a= 2
1.6180
将多项式的符号形式转换为对应的系数的数值形式 的向量
将多项式的符号形式转换为对应的系数的数值形式的向 量主要用MATLAB函数sym2poly来实现。 量主要用MATLAB函数 来实现。 MATLAB函数 来实现 [例7] 将 y = 5 x 2 6 转换为对应的系数的数值形式的向量。 例 转换为对应的系数的数值形式的向量。
解 输入: 输入: >> syms x y,y=5*x^2-6; yc=sym2poly(y) 运行后屏幕显示的系数的数值形式的向量为 yc = 5 0 -6
符号形式与数值形式相互 相互转换 2. 符号形式与数值形式相互转换 将数值形式转换为符号形式常用的方法有两类,一类是 将数值形式转换为符号形式常用的方法有两类, 将数的数值形式转换为符号形式; 将数的数值形式转换为符号形式;另一类是将多项式的系数的 数值形式的向量转换为对应的符号形式。 数值形式的向量转换为对应的符号形式。 将数的数值形式转换为符号形式 将数的数值形式转换为符号形式主要用MATLAB函数sym来实现。 来实现。 将数的数值形式转换为符号形式主要用MATLAB函数 MATLAB函数 来实现 [例8] 将π的近似值pi=3.141593 转化为符号形式。 例 的近似值pi=3.141593 转化为符号形式。 的近似值 输入: 解 输入:>> pi=3.141593; pj=sym(pj) 运行后屏幕显示: 运行后屏幕显示: pi = 7074238532074879*2^(-51)
1. 变换和化简
expand(表达式 表达式) 表达式 factor(表达式 表达式) 表达式 horner(表达式 表达式) 表达式 collect(表达式 表达式) 表达式
将表达式中的括号进行展开,即 将表达式中的括号进行展开 即将乘积展开为和式 将表达式进行分解, 将表达式进行分解,即把多项式转换为乘积形式 将一般的表达式变为嵌套的形式 合并同类项
y=2*a- 5*exp(sqrt(x -b))
运行后屏幕显示: 运行后屏幕显示:
y = 2*a-5*exp((x-b)^(1/2))
2. 符号表达式的生成 当符号变量生成以后, 当符号变量生成以后,就可以进一步生成含有这些变量 符号的表达式,常用的形式有如下两种: 符号的表达式,常用的形式有如下两种: 数学表达式’ 方法一 f=sym(‘数学表达式’) 数学表达式 或 f= ‘数学表达式’ 数学表达式’ 数学表达式 方法二 f=syms a b c x f=含有 ,b,c,x的数学表达式 含有a 含有 , , 的数学表达式 [ 例 3] 试 将 z = a ( 2 x t ) 3 + b sin( 4 y ) 生 成 为 符 号 表达式 。 表达式。 输入: 解 方法一 输入:>> f=sym(‘a*(2*x-t)^3+b*sin(4*y)’), 或 f='a*(2*x-t)^3+b*sin(4*y)'
A=[ a b c;d e f;g h i;j k l] 则运行后输出结果: 则运行后输出结果: A = [ [ [ [ a, d, g, j, b, e, h, k, c] f] i] l]
3.1.2 符号形式与数值形式的相互转换 在用MATLAB 软件处理数学问题时,经常需要符 在用MATLAB 软件处理数学问题时, 号形式与数值形式的相互转换。 号形式与数值形式的相互转换 。 下面分别介绍它们 的转换方法。 的转换方法。
x=solve(f)
方法二 方法三
则运行后输出相同的结果: 则运行后输出相同的结果:
x =
[ [ .96274843969420649872171548984002+.57475793354361098651731421962321*i] .26762926822201693804563287259316+.19580612317589362415618068133297*i]
将数的符号形式转换为数值形式主要用MATLAB函 将数的符号形式转换为数值形式主要用MATLAB函 MATLAB 和 来实现。 数eval和numeric来实现。 来实现
[例6] 例
生成为符号表达式, 首先将 a = 1 + 5 生成为符号表达式,然后再
转换为数值形式。 转换为数值形式。
2
首先输入: 解 首先输入:>> a='(1+sqrt(5))/2' 再输入: 再输入:>> eval(a) 或输入: 或输入: >> numeric(a)
1. 将符号形式转换为数值形式 将符号形式转换为数值形式常用的方法有两类,一类是 将符号形式转换为数值形式常用的方法有两类, 将数的符号形式转换为数值形式; 将数的符号形式转换为数值形式;另一类是将多项式的符号形 式转换为对应的系数的数值形式的向量。 式转换为对应的系数的数值形式的向量。 将数的符号形式转换为数值形式
simplify(表达式 表达式) 表达式
利用各种恒等式关系、 利用各种恒等式关系、函数关系表达式
进行化简, (1)f=simple(S) 对表达式 S 进行化简, ) 输出长度最短的表达式 f; ; 进行化简, (2)simple(S) 对表达式 S 进行化简,输 ) 出用各种函数化简的结果及长度最短的表达式; 出用各种函数化简的结果及长度最短的表达式; ( 3) [f,how]=simple(S) 对表达式 S 进 ) 行化简, 行化简,输出长度最短的表达式 f及f是哪一个函 及 是哪一个函 数作用的结果how。 数作用的结果 。 确认符号表达式中的符号
方法一
>> f=sym('8*x^9+17*x^3-3*x=-1'), , solve是MATLAB软件解方程的函数 % solve是MATLAB软件解方程的函数 >> f='8*x^9+17*x^3-3*x=-1',x=solve(f) ) >> x=solve('8*x^9+17*x^3-3*x=-1')
用sym 生成符号变量 形式一: 形式一:x=sym(‘x’) %符号变量的值为单引号内的字符或字符串 形式二: 同上, 形式二:x=sym(‘x’,‘Variable Format’) %同上,但设定
变量x 变量x的类型
[例1] 试将 y=a+b x 中的系数 a , b ,自变量 x 和数学表达 例 式 a+b x 分别生成符号变量,要求自变量 x 为实型变量。 分别生成符号变量, 为实型变量。 + 输入: 解 输入: >>x=sym('x', 'real') %设定了变量 为实型变量 设定了变量x为实型变量 设定了变量 a=sym('a') b=sym('b') r=sym('a+ bsqrt(x)') 运行后屏幕显示: 运行后屏幕显示: x= a= b= b x a r = a+ bsqrt(x)
将多项式的系数的数值形式的向量转换为对应的符号形式 将多项式的符号形式转换为对应的系数的数值形式的向 量主要用MATLAB函数poly2sym来实现。 MATLAB函数 来实现。 量主要用MATLAB函数 来实现 [例9] 将 y = 5 x 2 6 的系数的向量yc =[ 5 例 的系数的向量yc 换为对应的符号形式。 换为对应的符号形式。 解 输入: 输入: >> yc =[ 5 0 -6]; y=poly2sym (yc) 运行后屏幕显示为 y = 5*x^2-6 0 -6] 转
[ 例 4] solve 是 MATLAB 软件解方程的函数,调用格式为: 软件解方程的函数,调用格式为: 9 3 x=solve(f)。 x=solve(f)。试用函数 solve 解方程 8x + 17x 3x = 1 。
MATLAB命令窗口输入命令 命令窗口输入命令: 解 在MATLAB命令窗口输入命令:
运行后屏幕显示: 运行后屏幕显示: f = a*(2*x-t)^3+b*sin(4*y) f = a*(2*x-t)^3+b*sin(4*y) 输入: 方法二 输入: >> syms a b c k t y f=a*(2*x-t)^3+b*sin(4*y) 运行后屏幕显示: 运行后屏幕显示: f = a*(2*x-t)^3+b*sin(4*y) 注意:如果要生成方程的符号表达式,则不能用方法二, 注意:如果要生成方程的符号表达式,则不能用方法二, 只能用方法一
3.1.3 符号表达式的初等运算
符号表达式的初等运算是指符号表达式的变换和化简、 符号表达式的初等运算是指符号表达式的变换和化简、 符号的代换、复合函数的运算和反函数的运算,包括加 符号的代换、复合函数的运算和反函数的运算,包括加、减、 乘方和开方运算。有关加、 除运算、 乘、除、乘方和开方运算。有关加、减、乘、除运算、乘方和 开方运算在第一章实验的内容中我们已经作了介绍。 开方运算在第一章实验的内容中我们已经作了介绍。下面主要 介绍符号表达式的变换和化简、符号的代换、 介绍符号表达式的变换和化简、符号的代换、复合函数和反函 数的运算。 MATLAB中 这些运算的常用函数如下 数的运算。在MATLAB中,这些运算的常用函数如下:
findsym(表达 表达 式)
2. 代换和复合函数运算
代 换
复合 函数 运算 subs(f,old, new) subexpr(f) y=compose(f ,g) y=compose(f ,g,t) 用符号new代替表达式 中的符号 代替表达式f中的符号 用符号 代替表达式 中的符号old 将表达式f中的公共部分用 将表达式 中的公共部分用sigma表示 中的公共部分用 表示 输出y=f(u)和u=g(x)的复合函数 和 的复合函数y=f(g(x)) 输出 的复合函数 输出y=f(u)和u=g(t)的复合函数 和 的复合函数y=f(g(t)) 输出 的复合函数
3.1 符号运算与符号表达式
3.1.1 符号变量与符号 表达式的生成 3.1.2 符号形式与数值 形式的相互转换 3.1.3 符号表达式的初 等运算
3.1.1 符号变量和符号表达式的生成 符号运算是指运算的主要对象是符号、文字,或者是 符号运算是指运算的主要对象是符号、 文字, 变量所进行的运算,自然是精确公式解中的运算。 变量所进行的运算,自然是精确公式解中的运算。符号运 算和符号表达式总称为符号对象。本节介绍MATLAB MATLAB符号运 算和符号表达式总称为符号对象。本节介绍MATLAB 符号运 算及相关的问题。 算及相关的问题。 在MATLAB工具箱用来生成符号对象的函数有如下两种: MATLAB工具箱用来生成符号对象的函数有如下两种: 工具箱用来生成符号对象的函数有如下两种 sym 来定义一个符号或符号表达式, 来定义一个符号或符号表达式, syms 可定义多个符号。 可定义多个符号。 1. 符号变量的生成 要使符号变量有意义,必须首先生成符号变量, 要使符号变量有意义,必须首先生成符号变量,生成符 号变量可用sym或syms。 号变量可用 或 。
用syms 生成符号变量 syms 可定义多个符号 , 用 syms生成符号变量的常 可定义多个符号, 生成符号变量的常 用形式请看下例。 用形式请看下例。
[例 2] 试将 y = 2a 5 e 例
x b
生成符号变量。 中的系数 a, b 和自变量 x 生成符号变量。
解 输入: 输入: >> syms a b x
相关文档
最新文档