MATLAB学习之符号运算
2016-03-11 15:41
537 查看
创建符号变量
数值与符号的转换
数值矩阵转换为符号矩阵
符号替换
本文介绍MATLAB中的符号运算;
sym(‘常量’):创建符号常量。
sym 命令也可以把数值转换成某种格式的符号常量。
sym(常量,参数):参数可以选择为 d、f、e 或 r 四种格式,也可以省略。d 表示返回最接近的十进制数值(默认位数为32位)。f 表示返回该符号值最接近的浮点数。r 表示返回该符号值最接近的有理数型(为系统默认方式),可表示为 p/q、p*q、10^q、pi/q、2^q 和 sqrt(p) 形式之一。e 表示返回最接近的带有机器浮点误差的有理值。
sym(‘变量’, 参数):把变量定义为符号对象。说明:参数用来设置限定符号变量的数学特性,可以选择为 positive、real和unreal、positive 表示为“整数”、“实数”符号变量,real 表示为“实数”符号变量,unreal 表示为“非实数”符号变量。如果不限定,则参数可以省略。
sym(‘表达式’):创建符号表达式。
syms(‘arg1’,’arg2’,…,参数):把字符变量定义为符号变量。syms 用来创建多个符号变量,这种方式创建的符号对象是相同的。参数设置和前面的 sym 命令相同,省略时符号表达式直接由各符号变量组成。
A=sym(‘[a , b ; c , d]’):创建符号矩阵。
下面我们通过一个简单的例子来比较符号矩阵与字符串矩阵的不同。
运行结果如下:
![](https://img-blog.csdn.net/20160311174010479)
sym(a1,’f’) 表示返回符号浮点表达式
sym(a1,’r’) 表示返回符号有理数表达式
sym(a1,’e’) 表示返回符号有理数表达式,同时根据eps给出r的理论和实际计算差
sym(a1,’d’) 表示返回符号十进制小数
sym(矩阵名):数值矩阵转换为符号矩阵。
运行结果如下:
![](https://img-blog.csdn.net/20160311222245546)
subs(S, new):表示用新的变量 new 替换 S 中的默认变量 。
subs(S, old, new):表示用新变量 new 替换 S 中的指定的变量 old 。如果新变量是符号变量,必须将新变量名以 ‘new’ 形式给出。
数值与符号的转换
数值矩阵转换为符号矩阵
符号替换
本文介绍MATLAB中的符号运算;
1. 创建符号变量
符号常量是不含变量的符号表达式,用 sym 命令来创建符号常量。sym(‘常量’):创建符号常量。
a=sym('sin(2)')
sym 命令也可以把数值转换成某种格式的符号常量。
sym(常量,参数):参数可以选择为 d、f、e 或 r 四种格式,也可以省略。d 表示返回最接近的十进制数值(默认位数为32位)。f 表示返回该符号值最接近的浮点数。r 表示返回该符号值最接近的有理数型(为系统默认方式),可表示为 p/q、p*q、10^q、pi/q、2^q 和 sqrt(p) 形式之一。e 表示返回最接近的带有机器浮点误差的有理值。
% 创建数值常量和符号常量 a1 = 3*sqrt(5)+pi %创建数值常量 a2 = sym('3*sqrt(5)+pi') %创建符号表达式 a3 = sym(3*sqrt(5)+pi) %按最近的有理数型表示符号常量 a4 = sym(3*sqrt(5)+pi,'d') %按最近的十进制浮点数表示符号常量 a31= a3-a1 %数值常量和符号常量的计算 a5 = '3*sqrt(5)+pi' %字符串常量
sym(‘变量’, 参数):把变量定义为符号对象。说明:参数用来设置限定符号变量的数学特性,可以选择为 positive、real和unreal、positive 表示为“整数”、“实数”符号变量,real 表示为“实数”符号变量,unreal 表示为“非实数”符号变量。如果不限定,则参数可以省略。
% 创建符号变量,用参数设置其特性 syms x y real % 创建实数符号变量 z=x+i*y; % 创建z为复数符号变量 real(z) % 复数z的实部是实数x sym('x','unreal'); % 清除符号变量的实数特性 real(z) % 复数z的实部
sym(‘表达式’):创建符号表达式。
f1=sym('a*x^3+b*x+c')
syms(‘arg1’,’arg2’,…,参数):把字符变量定义为符号变量。syms 用来创建多个符号变量,这种方式创建的符号对象是相同的。参数设置和前面的 sym 命令相同,省略时符号表达式直接由各符号变量组成。
% 使用syms命令创建符号变量和符号表达式 syms a b c x % 创建多个符号变量 f2 = a*x^2 + b*x + c % 创建符号表达式 syms('a','b','c','x')
A=sym(‘[a , b ; c , d]’):创建符号矩阵。
syms a b c d A = [a b;c d]
下面我们通过一个简单的例子来比较符号矩阵与字符串矩阵的不同。
A=sym('[a,b;c,d]') % 创建符号矩阵 B='[a,b;c,d]' % 创建字符矩阵 syms a b c d C=[a,b;c,d] % 创建数值矩阵
运行结果如下:
2. 数值与符号的转换
在MATLAB中,利用 sym 函数将数值结果转换为符号表达式。调用方法如下:sym(a1,’f’) 表示返回符号浮点表达式
sym(a1,’r’) 表示返回符号有理数表达式
sym(a1,’e’) 表示返回符号有理数表达式,同时根据eps给出r的理论和实际计算差
sym(a1,’d’) 表示返回符号十进制小数
3. 数值矩阵转换为符号矩阵
在 MATLAB 中,必须事先定义符号矩阵,才能对矩阵进行符号运算。sym(矩阵名):数值矩阵转换为符号矩阵。
A=hilb(3) A=sym(A)
运行结果如下:
4. 符号替换
在 MATLAB 中,subs 函数用于符号变量的替换,该命令适用于单个符号矩阵、符号表达式、符号代数方程和微分方程,该函数的使用方法如下:subs(S, new):表示用新的变量 new 替换 S 中的默认变量 。
subs(S, old, new):表示用新变量 new 替换 S 中的指定的变量 old 。如果新变量是符号变量,必须将新变量名以 ‘new’ 形式给出。
% 以符号变量 '5' 替换符号表达式 f 中的 'A' f=sym('sin(1/2*A*pi)'); subs(f, 'A', '5')
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 从java中调用matlab详细介绍
- 稀疏自动编码器 (Sparse Autoencoder)
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- matlab神经网络工具箱创建神经网络
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- MATLAB 添加自定义的模块到simulink库浏览器
- Export Figures for LaTeX Writing
- Image Batch Processing with Matlab
- MATLAB for Mac使编辑器支持中文
- [转]matlab中plot用法
- 初学数模-MATLAB Quick Start! Part I