我是靠谱客的博主 合适菠萝,最近开发中收集的这篇文章主要介绍[个人笔记]matlab教程05,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

小朋友,你学会了吗?

符号变量、表达式、方程的生成
符号变量的基本操作
符号表达式的基本操作
符号矩阵的生成和运算
符号微积分
符号积分变换
符号方程的求解

符号变量、表达式、方程的生成

sym函数(此帮助内容没有汉化)
创建符号变量,表达式,函数,矩阵。
无效的字符向量和不定义数字的字符向量支持已被删除。要创建符号表达式,请首先创建符号变量,然后对其进行操作。例如,使用syms x; x + 1代替sym(‘x + 1’),exp(sym(pi))代替 sym(‘exp(pi)’)和syms f(var1,…varN) 代替f(var1,…varN) = sym(‘f(var1,…varN)’)。
以下是matlab中给出的语法,看一看就好,不是所有的使用都很常见。

语法描述
x = sym(‘x’)创建符号变量x。
A = sym(‘a’,[n1 … nM])创建一个 n1…nM 填充有自动生成的元素符号阵列。例如, A = sym(‘a’,[1 3])创建行向量A = [a1 a2 a3]。所生成的元素a1, a2以及a3不出现在MATLAB ®工作区。对于多维数组,这些元素具有前缀,a后跟_用作分隔符的元素索引 ,例如 a1_3_2。
A = sym(‘a’,n)创建由自动生成的元素填充的 n矩阵。
sym(___,set)创建一个符号变量或数组,并设置该变量或所有数组元素都属于的假设set。在这里,set可以是 ‘real’,‘positive’, ‘integer’,或’rational’。您还可以通过指定字符向量的字符串数组或单元格数组来组合多个假设。例如,通过指定set为[“positive” “rational”]或 来假设正有理值 {‘positive’,‘rational’}。
sym(___,‘clear’)清除在符号变量或数组上设置的假设。您可以使用’clear’任何以前的语法在输入参数之后指定,但组合’clear’和除外 set。您无法在的同一函数调用中设置和清除假设 sym。
sym(num)将数字或数字矩阵转换为符号数字或符号矩阵。
sym(num,flag)使用通过指定的技术flag将浮点数转换为符号数。
symexpr = sym(h)从与函数句柄关联的匿名MATLAB函数创建一个符号表达式或矩阵h。

syms函数(也未汉化)
创建符号变量和函数。
以下是matlab中给出的语法,看一看就好,不是所有的使用都很常见。

语法描述
syms var1 … varNsyms var1 … varN创建符号变量var1 … varN。用空格分隔不同的变量。 syms从变量中清除所有假设。
syms var1 … varN [n1 … nM]syms var1 … varN [n1 … nM] 创建符号数组var1 … varN,每个数组的大小为 n1-by- …by-by-,nM并包含自动生成的符号变量作为其元素。例如,syms a [1 3]创建符号阵列a = [a1 a2 a3]和符号变量a1,a2和a3 在MATLAB ®工作区。对于多维数组,这些元素具有前缀, a后跟_用作分隔符的元素索引,例如a1_3_2。
syms var1 … varN nsyms var1 … varN n创建 用自动生成的元素填充的n按n符号矩阵。
syms ___ setsyms ___ set设置创建的符号变量属于的set假设,并清除其他假设。在这里,set可以是real, positive,integer,或rational。您还可以使用空格组合多个假设。例如,syms x positive rational创建一个x具有正有理值的变量。
syms f(var1,…,varN)syms f(var1,…,varN)创建符号函数f和符号变量var1,…,varN,代表的输入参数f。您可以在一个调用中创建多个符号函数。例如,syms f(x) g(t)创建两个符号函数(f和g)和两个符号变量(x和t)。
syms f(var1,…,varN) [n1 … nM]syms f(var1,…,varN) [n1 … nM] 创建一个n1-by- …-by- nM 具有自动生成符号函数作为其元素符号阵列。此语法还会生成var1,…,varN代表的输入参数的符号变量f。例如,在MATLAB工作区中syms f(x) [1 2]创建符号数组f(x) = [f1(x) f2(x)],符号函数f1(x)和f2(x)以及符号变量x。对于多维数组,这些元素具有前缀, f后跟_用作分隔符的元素索引,例如f1_3_2。
syms f(var1,…,varN) nsyms f(var1,…,varN) n创建由自动生成的元素填充的 n按n符号矩阵。
syms(symArray)syms(symArray)创建包含在中的符号变量和函数symArray,其中symArray是符号变量的向量或符号变量和函数的单元格数组。仅当此类数组由另一个函数(例如solve或)返回时,才使用此语法symReadSSCVariables。
symssyms 列出MATLAB工作区中所有符号变量,函数和数组的名称。
S = symsS = syms 返回所有符号变量,函数和数组名称的单元格数组。

那么sym与syms使用上有什么区别吗,我个人的理解:对于sym,一次只能定义“一个”变量,例如定义a、b,那么就要写两遍。而syms可以写一遍定义两个。

符号变量的基本操作

这里不知道为什么matlab中没有明确的解释说明

findsym语法说明
findsym(s)寻找表达式s中所有符号变量
findsym(s,n)从表达式s中找出最靠近字母x的n个符号变量。若s中有两个符号变量与x的距离相等,ascii码大者优先。常量pi、i、j不作为符号变量。

接下来这两个函数的说明还在,不过依旧是英文。

语法说明
digits更改使用的可变精度,默认32
vpa可变精度算术(任意精度算术)删除了对不定义数字的字符向量的支持。相反,首先使用sym和 创建符号数字和变量syms,然后对它们使用运算。例如,使用vpa((1 + sqrt(sym(5)))/2)代替vpa(’(1 + sqrt(5))/2’)。

符号表达式的基本操作

与前面一致,符号表达式的四则运算也是加减乘除。
numden函数提取分子和分母

	[N,D] = numden(A)

转换A为分子和分母是具有整数系数的相对质数多项式的有理形式。该函数返回表达式有理形式的分子和分母。如果A是符号矩阵或数字矩阵,则N是分子D的符号矩阵,是分母的符号矩阵。二者N并D具有相同的尺寸为的矩阵A。
compose函数将数据转换为格式化的字符串数组。具体用法参见帮助的例子。

符号矩阵的生成和运算

符号矩阵的生成
同数值矩阵,只不过需要在前面先定义变量

	syms a b c d;
	x=[a b;c d]

在这里插入图片描述
符号矩阵的运算
同数值矩阵的运算,使用符号的方法也想同。
这里不再举例子,相关符号见前面数值矩阵计算(笔记03)。

符号微积分

极限
limit函数,符号表达的极限

语法说明
limit(f,var,a)var逼近a时 返回符号表达式f的双向极限。
limit(f,a)使用sym var找到的默认变量
limit(f)0处极限值。
limit(f,var,a,‘left’)返回var接近 a左侧极限。
limit(f,var,a,‘right’)返回var接近 a右侧极限的 。

积分
int函数,定积分和不定积分

语法说明
int(expr,var)计算expr关于符号标量变量var的不定积分。指定变量var是可选的。如果没有指定,int将使用由symvar确定的默认变量。如果expr是一个常量,那么默认变量是x。
int(expr,var,a,b)计算expr对var从a到b的定积分。如果没有指定,int使用由symvar确定的默认变量。如果expr是一个常量,那么默认变量是x。
int(___,Name,Value)使用一个或多个名称、值对参数指定其他选项。

微分
diff函数,差异和近似导数

语法说明
Y = diff(X)计算X的相邻元素沿第一个数组维的大小不等于1的差值
Y = diff(X,n)递归地应用diff(X)操作n次计算第n个差值。
Y = diff(X,n,dim)沿dim指定的维数计算的第n个差分,dim输入为正整数标量。

符号积分变换

傅里叶变换(fourier)

语法说明
fourier(f)返回f的傅里叶变换。默认情况下,函数symvar决定自变量,w是变换变量。
fourier(f,transVar)使用转换变量transVar代替w。
fourier(f,var,transVar)分别用自变量var和转换变量transVar代替symvar和w。

拉普拉斯变换(laplace)

语法说明
laplace(f)返回f的拉普拉斯变换,默认自变量为t,变换变量为s。
laplace(f,transVar)使用转换变量transVar而不是s。
laplace(f,var,transVar)分别用自变量var和转换变量transVar代替t和s。

z变换

语法说明
ztrans(f)f的z变换,默认自变量为n,变换变量为z,如果f不包含n, ztrans使用symvar。
ztrans(f,transVar)使用转换变量transVar代替z。
ztrans(f,var,transVar)分别用自变量var和转换变量transVar代替n和z。

符号方程的求解

代数方程的求解
solve函数
字符向量输入已被删除。相反,使用syms声明变量和更换输入,如solve('2x == 1’,‘x’)与solve(2x == 1,x)。
帮助中的说明过于繁琐,使用教程中的常用几种函数进行列举。

语法说明
g=solve(eq)求解代数方程eq=0,自变量为默认自变量。
g=solve(eq,var)求解代数方程eq=0,自变量为var。
g= solve(eq1 ,…eqn,var1,var2,…,varn))求解符号表达式eq1 ,eq2…eqn组成的代数方程组,自变量分别为var1 var2… .varn。 方程组的解将存入结构变量g。

以下展示了帮助中一种格式,只是其输出结果方式不同。
在这里插入图片描述

微分方程求解
dsolve函数

语法说明
r=dsolve(‘eq1 ,eq2…’,‘cond1 ,cond2,…’,‘v’求由eq1 ,eq2…指定的微分方程的符号解,参数cond1 ,cond2…为指定常微分方程的边界条件或初始条件,v为指定的自变量,若不指定,将采用“t”为默认自变量。

本来还有一个实例可以帮助理解,结果教程里连分析的代码都不全,便宜没好货。
补充
symsum函数
据说是计算无穷级数求和时使用,因为sum无法使用。

	F = symsum(a,v,m,n)其中,a表示一个级数的通项,是一个符号表达式。v是求和变量,m、n分别是求和的开始项和末项,对于无穷级数求和来说,末项显然是inf (无穷为inf)。

这个……只能到用的时候再细细分析了。

最后

以上就是合适菠萝为你收集整理的[个人笔记]matlab教程05的全部内容,希望文章能够帮你解决[个人笔记]matlab教程05所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部