metlab快速学习3

目录

符号对象

符号对象的建立

符号对象的运算

(1)四则运算

(2)关系运算

(3)逻辑运算

(4)因式分解与展开运算

(5)其它运算

符号矩阵

 符号微积分

符号函数的极限

符号函数的导数

 符号函数的积分

级数

级数求和

泰勒级数

 符号方程求解

代数方程符号求解

 常微分方程符号求解


符号对象

符号对象的建立

(1) sym函数
sym函数用于建立单个符号对象,其常用调用格式为:

符号对象名=sym (A)

将由A来建立符号对象。其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量; A也可以是一个变量名(加单引号),这时符号对象为一个符号变量。

>> t=sym(2)
t =
2

>> t+1/2
ans =
5/2
 
>> 2+1/2
ans =
    2.5000

>> sin(pi/3)
ans =
    0.8660

>> sin(sym(pi/3))
ans =
3^(1/2)/2

>> a=1;b=2;
>> x=sym('a');y=sym('b');
>> a+b
ans =
     3

>> x+y
ans =
a + b
 
>> eval(x+y)
ans =
     3

 由上面的例子可以看出:

符号计算的结果是一个精确的数学表达式

数值计算的结果是一个数值

syms 符号变量名1 符号变量名2 符号变量名3 ...(变量名不能加引号) 

符号对象的运算

(1)四则运算

和数值运算一样,用+、-、*、/

syms x;
f=2*x^2+x;
g=x^2-x;
f+g
 
ans =
3*x^2

(2)关系运算

六种关系运算符:<、<=、>、>=、==、~=

对应六个函数:lt()、le()、gt()、ge()、eq()、ne() 

assume函数

assume(condition)

assume(expr,set)

第一种格式指定变量满足条件condition,第二种格式指定表达式expr属于集合set。

>> syms x
>> assume(x<0);
>> abs(x)==x
 
ans =
-x == x

>> syms y;
>> assume(y,'positive');%y为正数
>> abs(y)==y
 
ans =
y == y

(3)逻辑运算

 与(&)、或(|)、非(~)

4个逻辑运算函数:and、or、not、xor(异或)

(4)因式分解与展开运算

factor函数 :f = factor(n) 返回包含 n 的质因数的行向量。向量 f 与 n 具有相同的数据类型。

expand函数:对符号表达式进行展开

collect(s):对符号表达式s合并同类项

collect(s,v):对符号表达式s按变量v合并同类项

>> f=x^2-1;
>> factor(f)
ans =
[x - 1, x + 1]


>> g=x^2*y+x*y+x*y^2;
>> collect(g)
ans = 
y*x^2 + (y^2 + y)*x
 
>> collect(g,y)
ans =
x*y^2 + (x^2 + x)*y

(5)其它运算

①提取有理分式的分子分母: [n, d]=numden(s)。
②提取符号表达式的系数: c=coeffs(s, x)。
③符号表达式化简: simplify(s) 。
④符号多项式与多项式系数向量之间的转换:
符号多项式转换为多项式系数向量: p=sym2poly(s) 。

多项式系数向量转换为符号多项式: s=poly2sym(p) 。

 求方程ax^2+bx+c=0的根。

>> syms a b c x;
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 lamda;
A=[1-lamda,-2,4;2,3-lamda,1;1,1,1-lamda];
D=det(A);
factor(D)
 
ans =
 
[-1, lamda, lamda - 2, lamda - 3]

 故lam=0、2、3时齐次线性方程组有非0解。

 符号微积分

符号函数的极限

limit(exp,x,a):  求符号表达式exp当自变量x趋于a时的极限

limit(exp,a):   求符号表达式exp当默认自变量趋于a时的极限

limit(exp):求符号表达式exp当默认自变量趋于0时的极限

limit(exp,x,a,'left'): 求符号表达式exp当默认自变量趋于a时的左极限

limit(exp,x,a,'right'): 求符号表达式exp当默认自变量趋于a时的左极限

>> syms n
>> g=(1+1/n)^n;
>> limit(g,n,inf)
 
ans =
 
exp(1)

符号函数的导数

MATLAB中的求导函数为:
diff(f, x, n)
即求函数f关于变量x的n阶导数。参数x的用法同求极限函数limit,可以缺省,默认值与limi t相同,n的默认值是1。

 

>> 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

 符号函数的积分

(1)不定积分
在MATLAB中,求不定积分的函数是int(),其常用的调用格式为:
int(f, x) 
即求函数f对变量x的不定积分。

(2)定积分
在MATLAB中,定积分的计算也使用int()函数,但调用格式有区别:
int(f, x, a, b)
其中,a、b分别表示定积分的下限和上限。
当函数f关于变量x在闭区间[a, b]可积时,函数返回一个定积分结果。
当a、b中有一个是inf时,函数返回一个广义积分。
当a、b中有一个符号表达式时,函数返回一个符号函数。

级数

级数求和

求无穷级数的和需要符号表达式求和函数symsum(),其调
用格式为:
symsum(s, v, n, m)
其中,s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和变量v的初值和末值。

 

>> syms n;
s1=symsum(n^2,1,100)
s1 =
338350

s2=symsum((-1)^(n-1)/n,1,inf)
s2 =
log(2)%ln(2)

s3=symsum((-1)^(n-1)/(2*n-1),n,1,inf)
s3 =
hypergeom([-1/2, 1], 1/2, -1) - 1

hypergeom([-1/2, 1], 1/2, -1)     %超几何函数
ans =
    1.7854

eval(s3)*4
ans =
    3.1416

泰勒级数

MATLAB提供了taylor ()函数将函数展开为幂级数,其调用格式为:
taylor(f, v, a, Name, Value)
该函数将函数f按变量v在a点展开为泰勒级数,v的默认值与diff函数相同,a的默认值是0。Name和Value为选项设置,经常成对使用,前者为选项名,后者为该选项的值。

Name有3个可取字符串:
①’ExpansionPoint' :指定展开点,对应值可以是标量或向量。未设置时,展开点为0。
②’Order':指定截断参数,对应值为一个正整数。未设置时,截断参数为6,即展开式的最高阶为5。
③’OrderMode' :指定展开式采用绝对阶或相对阶,对应值为Absolute’或’ Relative'。未设置时取’Absolute'。

>> 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

 符号方程求解

代数方程符号求解

在MATLAB中,求解用符号表达式表示的代数方程可由函数solve()实现,其调用格式为:
①solve(s): 求解符号表达式s的代数方程,求解变量为
默认变量。
②solve(s, v):求解符号表达式s的代数方程,求解变量为v。
③solve(s1, s2, .., sn, v1,v2, .., vn):求解符号表达式s1,
s2,...,sn组成的代数方程组,求解变量分别为v1,v2,...,vn。

 解方程ax^2+bx+c=0。 

>> syms x y a b c; 
>> solve(a*x^2+b*x+c==0)


>> f=a*x^2+b*x+c==0;
>> solve(f)

  
>> solve(a*x^2+b*x+c)


>> f=a*x^2+b*x+c
>> solve(f)

 常微分方程符号求解

符号常微分方程求解可以通过函数dsolve()函数来实现,其调用格式为:
dsolve(e,c,v)
用于求解常微分方程e在初值条件c下的特解。参数v是方程中的自变量,省略时按默认原则处理,若没有给出初值条件c,则求方程的通解。
dsolve在求常微分方程组时的调用格式为:
dsolve(e1,e2...en,c1,c2...,cn,v)
用于求解常微分方程组e1, e2, ... en在初值条件c1, c2, ..., cn下的特解,若不给出初值条件,则求方程组的通解。v给出求解变量,如果没有指定自变量,则采用默认自变量t。

>> syms x y t;
>> y=dsolve('Dy-(x^2+y^2)/x^2/2',x)


>> [x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y',t)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值