MATLAB教程七:MATLAB符号计算
文章目录
- 7.1 符号对象
- 7.2 符号微积分
- 7.3 级数
- 7.4 符号方程求解
7.1 符号对象
符号对象的建立:
sym函数:用于建立单个符号对象,其常用调用格式为:
符号对象名=sym(A)
将由 A 来建立符号对象。其中,A 可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;A也可以是一个变量名(加单引号),这时符号对象为一个符号变量。
>> t=sym(2);
>> t+1/2
ans=5/2
>> sin(sym(pi/3))
ans =3^(1/2)/2
>> sin(pi/3)
ans =0.8660
syms命令:可以一次定义多个符号变量,其一般调用格式如下:
syms 符号变量名1 符号变量名2 … 符号变量名n
其中,变量名不能加单引号,相互之间用空格隔开。
符号对象的运算:
四则运算:符号表达式的四则运算与数值运算一样,用+、-、*、/、^ 运 算符实现,其运算结果依然是一个符号表达式。
>> syms x;
>> f=2*x^2+3*x-5;
>> g=x^2-x+7;
>> f+g
ans =3*x^2 + 2*x + 2
关系运算:
6种关系运算符:<、<=、>、>=、==、~=。
对应的6个函数:lt()、le()、gt()、ge()、eq()、ne()。
逻辑运算:
3种逻辑运算符:&(与)、|(或)和~(非)。
4个逻辑运算函数:and(a,b)、or(a,b)、not(a)和xor(a,b)。
>> syms x;
>> y=and(x>0,x<10)
y=0<x & x<10
因式分解与展开运算:
- factor(s):对符号表达式s分解因式,也可以对数进行分解质因子。
- expand(s):对符号表达式s进行展开。
- collect(s):对符号表达式s合并同类项。
- collect(s,v):对符号表达式s按变量v合并同类项。
>> syms a b;
>> s=a^3-b^3;
>> factor(s)
ans=[ a-b, a^2 + a*b + b^2]
>> factor(12)
ans=
2 2 3>> syms x;
>> y=(x+2)^3;
>> expand(y)
ans =x^3 + 6*x^2 + 12*x + 8
其他运算:
- [n,d]=numden(s):提取有理分式的分子分母。
- c=coeffs(s,x):提取符号表达式的系数。
- simplify(s):符号表达式化简。
- p=sym2poly(s):符号多项式转换为多项式系数向量。
- s=poly2sym§:多项式系数向量转换为符号多项式。
例:求方程ax2+bx+c=0的根。
>> syms a b c x;
>> f=a*x^2+b*x+c
f =
a*x^2 + b*x + c
>> g=coeffs(f,x)
g =
[c, b, a]
>> g=g(end:-1:1)
g =
[a, b, c]
>> roots(g)
ans =-(b + (b^2 - 4*a*c)^(1/2))/(2*a)-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
符号矩阵:
符号矩阵:也是一种符号表达式,所以符号表达式运算都可以在矩阵意义下进行。
注意:这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
例:建立符号矩阵并化简
>> syms a b x y alp;
>> m=[a^3-b^3,sin(alp)^2+cos(alp)^2;(15*x*y-3*x^2)/(x-5*y),78]
m =[ a^3 - b^3, cos(alp)^2 + sin(alp)^2][(- 3*x^2 + 15*y*x)/(x - 5*y), 78]
>> simplify(m)
ans =[a^3 - b^3, 1][ -3*x, 78]
7.2 符号微积分
符号函数的极限:
- limit(f,x,a):求符号函数极限的命令为 limit,即求函数 f 关于变量 x 在 a 点的极限。
- limit(f,x,a,‘right’) :求函数 f 关于变量 x 在 a 点的左极限。
- limit(f,x,a,‘left’):求函数 f 关于变量x 在 a 点的右极限。
例:求下列极限
( 1 ) lim x → a x m − a m x − a ( 2 ) lim n → ∞ ( 1 + 1 n ) n (1)\lim_{x\to a}\frac{\sqrt[m]{x}-\sqrt[m]{a}}{x-a} \quad \quad \quad \quad \quad \quad \quad (2)\lim_{n \to \infty}(1+\frac{1}{n})^n (1)x→alimx−amx −ma (2)n→∞lim(1+n1)n
>> syms a m x n;
>> f=(x^(1/m)-a^(1/m))/(x-a);
>> limit(f,x,a)
ans =a^(1/m - 1)/m>> g=(1+1/n)^n;
>> limit(g,n,inf)
ans =exp(1)
符号函数的导数:
- diff(f,x,n):即求函数 f 关于变量 x 的 n 阶导数。参数 x 的用法同求极限函数 limit,可以缺省,默认值与 limit 相同,n 的默认值是1。
例:求下列函数的导数
( 1 ) y = 1 + e x , 求 y ’ ( 2 ) z = x e y y 2 , 求 z x ′ 、 z y ′ (1)y=\sqrt{1+e^x},求y’ \quad\quad\quad\quad\quad (2)z=\frac{xe^y}{y^2},求z_x'、z_y' (1)y=1+ex ,求y’(2)z=y2xey,求zx′、zy′
>> syms x y z;
>> f=sqrt(1+exp(x));
>> diff(f)
ans =exp(x)/(2*(exp(x) + 1)^(1/2))>> g=x*exp(y)/y^2;
>> diff(g,x)
ans =exp(y)/y^2
>> diff(g,y)
ans =(x*exp(y))/y^2 - (2*x*exp(y))/y^3
符号函数的积分:
不定积分:
- int(f,x):求函数 f 对变量 x 的不定积分。
例:求下列不定积分
( 1 ) ∫ ( 3 − x 2 ) 3 d x ( 2 ) ∫ 5 x t 1 + x 2 d t (1)\int(3-x^2)^3dx \quad\quad\quad\quad\quad\quad\quad (2)\int \frac{5xt}{1+x^2}dt (1)∫(3−x2)3dx(2)∫1+x25xtdt
>> syms x t;
>> f=(3-x^2)^3;
>> int(f)
ans = - x^7/7 + (9*x^5)/5 - 9*x^3 + 27*x
>> g=5*x*t/(1+x^2);
>> int(g,t)
ans = (5*t^2*x)/(2*(x^2 + 1))
定积分:
- int(f,x,a,b):求函数 f 对变量 x 的不定积分。其中,a、b分别表示定积分的下限和上限。
例:求下列定积分
( 1 ) ∫ 1 2 ∣ 1 − x ∣ d x ( 2 ) ∫ − ∞ + ∞ 1 1 + x 2 d x ( 3 ) ∫ 2 s i n x 4 x t d t (1)\int_1^2|1-x|dx \quad\quad\quad (2)\int_{-\infty}^{+\infty}\frac{1}{1+x^2}dx \quad\quad\quad (3)\int_2^{sinx}\frac{4x}{t}dt (1)∫12∣1−x∣dx(2)∫−∞+∞1+x21dx(3)∫2sinxt4xdt
>> syms x t;
>> int(abs(1-x),1,2)
ans =1/2
>> int(1/(1+x^2),-inf,inf)
ans =pi
>> int(4*x/t,t,2,sin(x))
ans =4*x*(log(sin(x)) - log(2))
7.3 级数
级数求和:
- symsum(s,v,n,m):求无穷级数的和。其中,s 表示一个级数的通项,是一个符号表达式。v 是求和变量,v 省略时使用系统的默认变量。n 和 m 是求和变量 v 的初值和末值。
例:求下列级数之和
S 1 = 1 + 4 + 9 + 16 + ⋯ + 10000 S 2 = 1 − 1 2 + 1 3 − 1 4 + ⋯ + ( − 1 ) n + 1 1 n + … S 3 = 1 − 1 3 + 1 5 − 1 7 + ⋯ + ( − 1 ) n + 1 1 2 n − 1 + … S_1=1+4+9+16+\dots+10000 \\ S_2=1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+\dots+(-1)^{n+1}\frac{1}{n}+\dots \\ S_3=1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\dots+(-1)^{n+1}\frac{1}{2n-1}+\dots S1=1+4+9+16+⋯+10000S2=1−21+31−41+⋯+(−1)n+1n1+…S3=1−31+51−71+⋯+(−1)n+12n−11+…
>> syms n;
>> S1=symsum(n^2,1,100)
S1 =338350
>> S2=symsum((-1)^(n-1)/n,1,inf)
S2 = log(2)
>> S3=symsum((-1)^(n-1)/(2*n-1),n,1,inf)
S3 =hypergeom([-1/2, 1], 1/2, -1) - 1 % 超几何函数
泰勒级数:
- taylor(f,v,a,Name,Value):将函数展开为幂级数。该函数将函数 f 按变量 v 在 a 点展开为泰勒级数,v 的默认值与 diff 函数相同,a 的默认值是 0。 Name 和Value 为选项设置,经常成对使用,前者为选项名,后者为该选项的值。
Name有3个可取字符串:
1、‘ExpansionPoint’:指定展开点,对应值可以是标量或向量。未设置时,展开点为0。
2、‘Order’:指定截断参数,对应值为一个正整数。未设置时,截断参数为6,即展开式的最高阶为5。
3、‘OrderMode’:指定展开式采用绝对阶或相对阶,对应值为 ‘Absolute’ 或’Relative’。 未设置时取’Absolute’。
例:求函数 f 在 x=1 处的5阶泰勒级数展开式。
f ( x ) = 1 + x + x 2 1 − x + x 2 f(x)=\frac{1+x+x^2}{1-x+x^2} f(x)=1−x+x21+x+x2
>> syms x;
>> f=(1+x+x^2)/(1-x+x^2);
>>taylor(f,x,1,'Order',6)
ans =2*(x - 1)^3 - 2*(x - 1)^2 - 2*(x - 1)^5 + 3
>> expand(ans)
ans = - 2*x^5 + 10*x^4 - 18*x^3 + 12*x^2 + 1
例:利用泰勒展开式计算三角函数的值。
>> syms x;
>> f=taylor(cos(x),x,pi)
f =(x - pi)^2/2 - (x - pi)^4/24 - 1
>> x=3;
>> eval(f)
ans =-0.9900
>> cos(3)
ans =-0.9900
7.4 符号方程求解
代数方程符号求解:
solve(s):求解符号表达式s的代数方程,求解变量为 默认变量。
solve(s,v):求解符号表达式s的代数方程,求解变量 为v。
solve(s1,s2,…,sn,v1,v2,…,vn):求解符号表达式 s1,s2,…,sn组成的代数方程组,求解变量分别为v1, v2,…,vn。
例:解方程 a x 2 + b x + c = 0 ax^2+bx+c=0 ax2+bx+c=0
>> syms x y a b c;
>> solve(a*x^2+b*x+c==0)
ans =-(b + (b^2 - 4*a*c)^(1/2))/(2*a)-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
常微分方程的符号求解:
- dsolve(e,c,v):用于求解常微分方程 e 在初值条件 c 下的特解。参数 v 是方程中的自变量,省略时按默认原则处理,若没有给出初值条件 c,则求方程的通解。
- dsolve(e1,e2,…,en,c1,c2,…,cn,v):用于求解常微分方程组 e1, e2, …, en 在初值条件 c1, c2, …, cn 下的特解,若不给出初值条件,则求方程组的通解。v 给出求解变量,如果没有指定自变量, 则采用默认自变量t。
注意:在MATLAB中,用大写字母D表示导数。例如,Dy表示y’,D2y表示y’‘, Dy(0)=5表示y’(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y’‘’+y’‘+y’-x+5=0。
例:求下列微分方程或方程组的解。
d y d x = x 2 + y 2 2 x 2 { d x d t = 4 x − 2 y d y d t = 2 x − y \frac{dy}{dx}=\frac{x^2+y^2}{2x^2} \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad \begin{cases} \frac{dx}{dt}=4x-2y \\ \frac{dy}{dt}=2x-y \end{cases} dxdy=2x2x2+y2{dtdx=4x−2ydtdy=2x−y
>> syms x y t;
>> y=dsolve('Dy-(x^2+y^2)/x^2/2',x)
y =x-x*(1/(C5 + log(x)/2) - 1)
>> [x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y',t)
x =C8/2 + 2*C7*exp(3*t)
y =C8 + C7*exp(3*t)
MATLAB教程七:MATLAB符号计算相关推荐
- 学习matlab(七)——符号计算
在MATLAB中,提供了强大的符号运算功能,并且有专门的符号数学工具箱Symbolic Math Toolbox.此外,在MATLAB中,还可以通过maple. m和map. m两个接口和Maple相 ...
- matlab 实验七,matlab 实验七 数字填图问题
实验七 数字填图问题 数字填图问题是数学问题的一种趣味形式.早在19世纪后半期,一些数学家就在报刊中大量使用数字填图游戏和字谜游戏等,目的是使业余爱好者也能通过简单的形式去认识.理解和琢磨深奥的数学问 ...
- spwm逆变器双极性matlab教程,基于MATLAB/Simulink的SPWM逆变电源的建模与仿真
Electrical Automation 变流技术 Converter Techniques <电气自动化>2014 年第 36 卷 第 3 期 基于 MATLAB/Simulink 的 ...
- matlab教程曲线拟合,matlab 曲线拟合
#include//其中(i),i=1,2...5为改动程序时要变的地方 #include #include #define m 5//*************************(1) voi ...
- 【MATLAB教程案例15】基于WOA鲸鱼优化算法的函数极值计算matlab仿真及其他应用
FPGA教程目录 MATLAB教程目录MATLAB教程目录MATLAB教程目录 ------------------------------------------------------------ ...
- matlab 王正盛 pdf,2019年王正盛matlab教程.doc.pdf
MATLAB 数学工具软件 实例简明教程 王 正 盛 编写 南 京 航 空 航 天 大 学 南京航空航天大学 王正盛2 第一章 MATLAB 简介 MALAB 译于矩阵实验室MATrix LABora ...
- matlab生成n阶O型方阵,matlab教程 06
<matlab教程 06>由会员分享,可在线阅读,更多相关<matlab教程 06(27页珍藏版)>请在人人文库网上搜索. 1.第6章 模糊逻辑6.1 隶属函数6.1.1 高斯 ...
- matlab设计菜单教程,MATLAB程序设计教程(11)——MATLAB图形用户界面设计
MATLAB程序设计教程(11)--MATLAB图形用户界面设计 第11章 MATLAB图形用户界面设计 11.1 菜单设计 11.2 对话框设计 11.3 图形用户界面设计工具 11.1菜单 ...
- matlab对话框设计,MATLAB程序设计教程(11)——MATLAB图形用户界面设计
MATLAB程序设计教程(11)--MATLAB图形用户界面设计 第11章 MATLAB图形用户界面设计 11.1 菜单设计 11.2 对话框设计 11.3 图形用户界面设计工具 11.1菜单 ...
最新文章
- linux命令大写输入,Linux命令行:对内容进行大小写字符转换 ????
- 非空验证方法(多值)和BindingResult提示验证信息
- Go程序:演示复数类型的用法
- 你还要我怎样的JS系列(4) -- 作用域链
- PotPlayer播放器在双屏扩展模式下,视频播放时所遇到的几个常见问题的专业解答
- 20145235李涛《网络对抗》Exp8 Web基础
- kosbie的python课程视频_Python视频教程
- 一起学爬虫(Python) — 01
- 记第一次阿里数据研发工程师面试
- 语义分割-FCNs in the wild: Pixel-level adversarial and constraint-based adaptation 对抗方法实现不同数据集语义分割
- 聊聊两个状态管理库 Redux Recoil
- 手机iphone项-测试崩溃问题总结
- 51单片机rtx51-Tiny嵌入式实时操作系统初试
- 数字化转型实例:国家电网
- NumPy知识点总结1
- 前后端数据加解密的几种方式比较
- VUE 路由守卫 next() / next({ ...to, replace: true }) / next(‘/‘) 说明
- 朋友面试大数据架构师岗,碰了一鼻子灰后发现…
- 违约概率和违约损失率
- ElasticDL: Kubernetes-native 弹性分布式深度学习系统