【matlab个人笔记】符号计算基础

sym和syms-符号对象建立

sym函数

格式:var=sym(‘var’,set)或者var=sym(常量,flag)

①’position’:限定var表示正的实型符号变量
‘real’:限定var为实型符号变量
‘unreal’:限定var为非实行符号变量

②sym(‘var’,‘clear’):清除先前设置的符号变量var

③num = sym(num,flag):将一个数值转换为符号形式,输入参数flag为转换的符合对象应该符合的格式类型
‘r’:最接近有理表示,为系数默认设置
‘e’:带估计误差的有理表示
‘f’:十六进制浮点表示
‘d’:最接近的十进制浮点精确表示

④A = sym(‘A’,dim):创建一个矢量或矩阵的符号变量
A = sym(‘A’,set):创建一个符号矩阵,set用于设置矩阵的维数

>> a=5;
>> b=-8;
>> x=sym('a');%常量则不用加单引号,变量需要
>> y=sym('b');
>> w=(x+y)*(x-y)
w =(a + b)*(a - b)%所得为精确的表达式
eval(w)%用于计算表达式
ans =-39

syms函数

格式:syms arg1 arg2…;

syms x y;
>> f=[x+y x-y;x*y x/y]
f =
[ x + y, x - y]
[   x*y,   x/y]
 %创建符号数组
A=sym(sqrt(3))
A =3^(1/2)%所得为准确表达式
A=sym('A')
syms x;
f=A*x;
d1=diff(f,x,1)  %d1=A
d2=diff(f,x,2)  %d2=0

subs函数

用于替换符号变量

格式f=subs(f,[old],[new])

syms x y;
f=x^2+y^2  %f=x^2 + y^2
f=subs(f,[x y],[1 2])  %f=5
or f=subs(f,{'x','y'},{1,2})
or f=subs(f,{x,y},{1,2})

simplify函数

对表达式进行化简

syms x y
s1 = simplify(cos(x)^2-sin(x)^2)  %s1 = cos(2*x)
s2 = simplify(x^3+3*x^2+3*x+1)  %s2 = (x + 1)^3

compose函数

用于计算复合函数

①compose(f, g, z): 返回复合函数f(g(z)), f=f(x), g=g(y),x和y分别为f、g中找到的符号变量.
②compose(f, g, x, y, z): 返回复合函数f(g(z)). 将x=g(y)代入f(x)中, 最后用指定的变量z代替变量y

• 示例:
syms x y t
f = 1/(1+x);
g = sin(y)^2;
h = compose(f,g,x,y,t)
运行结果:
f = 1/(x + 1)
g = sin(y)^2 
h = 1/(sin(t)^2 + 1) %用t替代了y的位置

limit函数

用于计算极限

①limit(f,x,a):
计算f(x)当x趋向于a的极限
②’left;/'right’计算左右极限

%例:计算数列极限
syms n
an=(1+1/n)^n;
S=limit(an,n,inf) %S = exp(1),inf为无穷大量,-inf为无穷小量

diff函数

用于计算导数

syms x y;
f=x^2*y+2*x*y+y^2;
diff(f,x,1)  % 2*y + 2*x*y
diff(f,y,1)  % x^2 + 2*x + 2*y

int函数

用于计算积分
①s=int(expr,var):
以expr表达式中的变量var为积分变量计算不定积分
②s=int(expr,var,a,b)
以expr表达式中的变量var为积分变量计算定积分,积分上下限分别为b和a。

taylor函数

①taylor(f):计算f的5阶麦克劳林多项式
②taylor(f,v,a): 计算f在点a展开的麦克考林多项式
③taylor(f,v,a,Name,Value):指定属性名称,属性值的调用方法

求exp(x)的7阶泰勒多项式.
>>taylor(exp(x),x,0,'order',8)
ans = 
x^7/5040 + x^6/720 + x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1
>>taylor(exp(x),x,'expansionpoint',0,'order',8) %expansionpoint:指定展开点
ans = 
x^7/5040 + x^6/720 + x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1

solve函数\disolve函数

用于求解方程、微分方程

s=solve('a*x+b*y=10','a*x-b*y=20','x','y')
sol_x = s.x
sol_y = s.y
y=dsolve('Dy=(10-0.02*t)*t','y(0)=4','t')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值