MATLAB基础(三)符号运算
符号对象的建立
符号对象的建立:sym 和 syms
sym 函数用来建立单个符号变量,一般调用格式为:符号变量 = sym(A) 参数 A 可以是一个数或数值矩阵,也可以是字符串
例如:a=sym('a') a 是符号变量
b=sym(1/3) b 是符号常量
C=sym('[1 ab; c d]') C 是符号矩阵
syms 命令用来建立多个符号变量,一般调用格式为:
syms 符号变量1 符号变量2 ... 符号变量n
syms a b c; 等价
>> a=sym('a');
>> b=sym('b');
>> c=sym('c');
建立符号表达式通常有以下2种方法:
(1) 用 sym 函数直接建立符号表达式。
(2) 使用已经定义的符号变量组成符号表达式。
例如: y=sym('sin(x)+cos(x)')
>> x=sym('x');
>> y=sin(x)+cos(x)
>> syms x;
>> y=sin(x)+cos(x)
符号表达式的替换
用给定的数据替换符号表达式中的指定的符号变量
subs(f,x,a)
用 a 替换字符函数 f 中的字符变量 x
a 是可以是 数/数值变量/表达式 或 字符变量/表达式
若 x 是一个由多个字符变量组成的数组或矩阵,
则 a 应该具有与 x 相同的形状的数组或矩阵。
>> f=sym('2*u');
>> subs(f,'u',2)
>> f2=subs(f,'u','u+2')
>> a=3;
>> subs(f2,'u',a+2)
>> subs(f2,'u','a+2')
>> syms x y
>> f3=subs(f,'u',x+y)
>> subs(f3,[x,y],[1,2])
符号矩阵
使用 sym 函数直接生成
>> A=sym('[1+x, sin(x); 5, exp(x)]')
将数值矩阵转化成符号矩阵
>> B=[2/3, sqrt(2); 5.2, log(3)];
>> C=sym(B)
符号矩阵中元素的引用和修改
>> A=sym('[1+x, sin(x); 5, exp(x)]');
>> A(1,2) % 引用
因式分解
factor() 也可用于正整数的分解
>> factor(sym('12345678901234567890')) l 大整数的分解要转化成符号常量
函数展开
expand(f)
l多项式展开
>> syms x; f=(x+1)^6;
>> expand(f)
三角函数展开
>> syms x y; f=sin(x+y);
>> expand(f)
合并同类项
collect(f,v): 按指定变量 v 进行合并
collect(f): 按默认变量进行合并
syms x y;
>> f= x^2*y + y*x - x^2 + 2*x ;
>> collect(f)
>> collect(f,y)
函数简化
y=simple(f): 对 f 尝试多种不同的算法进行简化,返回其中最简短的形式
[How,y]=simple(f): y 为 f 的最简短形式,How 中记录的为简化过程中使用的方法。
f |
R |
HOW |
2*cos(x)^2-sin(x)^2 |
3*cos(x)^2-1 |
simplify |
(x+1)*x*(x-1) |
x^3-x |
combine(trig) |
x^3+3*x^2+3*x+1 |
(x+1)^3 |
factor |
cos(3*acos(x)) |
4*x^3-3*x |
expand |
y=simplify(f): 对 f 进行简化
>> syms x; f=sin(x)^2 + cos(x)^2 ;
>> simplify(f)
>> syms c alpha beta;
>> f=exp(c*log(sqrt(alpha+beta)));
>> simplify(f)
例:简化
>> syms x;
>> f=(1/x^3+6/x^2+12/x+8)^(1/3);
>> y1=simplify(f)
g1=simple(f)
>> g2=simple(g1)
l 多次使用 simple 可以达到最简表达。
分式通分
[N,D]=numden(f):
N 为通分后的分子,D 为通分后的分母
>> syms x y;
>> f=x/y+y/x;
>> [N,D]=numden(f)
>> [n,d]=numden(sym(112/1024))
horner 多项式
horner 多项式:嵌套形式的多项式
列:
>> syms x;
>> f=x^4+2*x^3+4*x^2+x+1;
>> g=horner(f)
计算导数
g=diff(f,v):求符号表达式 f 关于 v 的导数
g=diff(f):求符号表达式 f 关于默认变量的导数
g=diff(f,v,n):求 f 关于 v 的 n 阶导数
>> syms x;
>> f=sin(x)+3*x^2;
>> g=diff(f,x)
计算积分
int(f,v,a,b): 计算定积分
int(f,a,b): 计算关于默认变量的定积分
int(f,v): 计算不定积分
int(f): 计算关于默认变量的不定积分
例:计算 和
>> syms x; f=(x^2+1)/(x^2-2*x+2)^2;
>> I=int(f,x)
>> K=int(exp(-x^2),x,0,inf)
符号求和
symsum(f,v,a,b): 求和
symsum(f,a,b): 关于默认变量求和
例:计算级数 及其前100项的部分和
>> syms n; f=1/n^2;
>> S=symsum(f,n,1,inf)
>> S100=symsum(f,n,1,100)
微分方程求解
dsolve
y=dsolve('eq1','eq2', ... ,'cond1','cond2', ... ,'v')
其中 y 为输出的解, eq1、eq2、. . . 为微分方程,
cond1、cond2、...为初值条件, v 为自变量
例 1:求微分方程的通解,并验证。
>> y=dsolve('Dy+2*x*y=x*exp(-x^2)','x')
>> y= C2*exp(-x^2) + (x^2*exp(-x^2))/2
例2:求微分方程满足初值条件
的特解,并画出解函数的图形
>> y=dsolve('x*Dy+y-exp(x)=0', ...
'y(1)=2*exp(1)', 'x')
>> ezplot(y);
例3:求微分方程组 在初值条件
下的特解,并画出解函数的图形。
[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0', ...
'x(0)=1', 'y(0)=0', 't')
ezplot(x,y,[0,1.3]);
MATLAB基础(三)符号运算相关推荐
- Matlab系列之符号运算(上)
Matlab系列之符号运算 前言 创建符号对象 基本操作 符号变量的基本操作 符号表达式的基本操作 四则运算 多项式的操作 符号表达式化简 符号表达式的替换 反函数求解 复合函数 更多精彩等你发现~ ...
- MATLAB基础——设置符号变量sym,syms,symfun,symvar
在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算:如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理. 这类函数 ...
- MATLAB学习之符号运算
创建符号变量 数值与符号的转换 数值矩阵转换为符号矩阵 符号替换 本文介绍MATLAB中的符号运算: 1. 创建符号变量 符号常量是不含变量的符号表达式,用 sym 命令来创建符号常量. sym('常 ...
- matlab中两个符号矩阵相加,MATLAB矩阵分析及符号运算.ppt
MATLAB矩阵分析及符号运算 第三讲 MATLAB的符号运算 -- matlab 不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包Symbolic Math Toolbox 符 ...
- matlab数值与符号运算
matla数值与符号运算 1. 多项式计算 主函数 clc clear close %多项式 x^4-12*x^3+25*x+116 p=[1 -12 0 25 116]%多项式求值函数 polyva ...
- matlab 无穷符号,MATLAB强大的符号运算
符号对象(Symbolic Objects 不同于普通的数值计算)是Matlab中的一种特殊数据类型,它可以用来表示符号变量.表达式以及矩阵,利用符号对象能够在不考虑符号所对应的具体数值的情况下能够进 ...
- MATLAB数值计算与符号运算
符号计算 存放的是精确数据,耗存储空间 ,运行速度慢,但结果精度高: 数值计算则是以一定精度来计算的,计算结果有误差,但是运行速度快. 转载于:https://www.cnblogs.com/shaw ...
- MATLAB的符号运算基础
在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算:如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理.MATLA ...
- matlab中exp(liangx),Matlab基础知识
<Matlab基础知识>由会员分享,可在线阅读,更多相关<Matlab基础知识(122页珍藏版)>请在人人文库网上搜索. 1.Lxy, China Jiliang Univer ...
- MATLAB08:符号运算
pdf版本笔记的下载地址: MATLAB08_符号运算(访问密码:3834) MATLAB08:符号运算 创建符号变量 创建符号数字 创建符号变量 符号运算 符号表达式的化简与代入 符号表达式的化简 ...
最新文章
- 2021-08-20 python安装及作图
- Linux netfilter源码分析(4)
- python量化交易开源框架_hikyuu: 基于C++/Python的开源量化交易研究框架
- 一款响应式的(电子报)Newsletter 模板 – Antwort
- [WP8] Binding时,依照DataType来选择DataTemplate
- 自行车测速器怎么调_怎么测甲醛?
- 2020软件测试学科全套上课视频教程网盘免费分享
- Synergy两台电脑使用同一个鼠标和键盘
- 打印机服务器启用后自动关闭,共享打印机点击打印就自动关闭该怎么办?
- Android腾讯微博开放平台(六)发布一条图文微博
- 1 Spark机器学习 spark MLlib 入门
- ROS moveit cartesian_demo 机械臂笛卡尔空间路径速度限制
- 脑控技术原理及受害者自救
- 计算机怎么快捷截图桌面,电脑截屏的快捷键是什么
- PureMVC(AS3)剖析:实例
- 【期末复习】信息安全技术(含答案)
- 时间格式处理获取本年份的起止时间
- 详解 http 鉴权
- 【ChatGPT 中文版小程序】无需注册体验 ChatGPT 的攻略
- 芜湖市荟萃中学计算机课老师名单,做智慧型班主任 ——芜湖荟萃中学召开班级工作经验交流暨班主任培训会...
热门文章
- 论文笔记1 | 使用CTC对湍流工业火焰进行瞬时三维重建
- Robotium 介绍
- word 插入图片显示不全
- 四种连接类型:inner(内连接),left[outer](左外连接),right[outer](右外连接),full[outer](完全外连接)
- Integer类型的比较
- itoa()和atoi()函数详解
- 主成分分析(PCA)(principal component analysis)
- python 画折线图怎么控制x轴间隔_用Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围...
- oracle 推进scn号
- oracle 视图、索引、序列、同义词