011 符号计算-积分、微分、极限、积分变换、方程求解

符号微积分计算

0.符号函数

>>syms x
>> f(x)=2*x
 
f(x) = 2*x
 
>> f(1)
 
ans = 2
>> g=2*x %g只是符号变量,可以用subs(函数计算数值解)
 
g = 2*x
 
>> g(1)
 
ans = 2*x

1.符号极限

limit()函数计算符号函数的极限,其格式如下:

  • limit(F, x, a),计算符号表达式F在x→a条件下的极限;
  • limit(F, a),计算符号表达式F中由默认自变量趋向于a条件下的极限
  • limit(F),计算符号表达式F在默认自变量趋向于0条件下的极限<>;
  • limit(F, x, a, ‘right’) 和limit(F, x, a, ‘left’),计算符号表达式F在x→a条件下的右极限和左极限
>> syms x
>> f=sin(x)/x
 
f = sin(x)/x
 
>> limit(f,x,0)
 
ans = 1

>> g=1/x
 
g = 1/x
 
>> limit(g,x,0,'right')
 
ans = Inf

>> limit(g,x,0,'left')
 
ans = -Inf
>> syms a
>> h=(1+a/x)^x
 
h = (a/x + 1)^x
 
>> limit(h,x,inf)
 
ans = exp(a)
>> k=exp(-x)
 
k = exp(-x)
 
>> limit(k,x,inf)
 
ans = 0

2.求符号的微分

diff函数用来求符号微分,其格式如下:

  • diff(S),求符号表达式S对于默认自变量的微分;
  • diff(S, ‘v’),求符号表达式S对于自变量v的微分;
  • diff(S, n),求符号表达式S对于默认自变量的n次微分;
  • diff(S, ‘v’, n),求符号表达式S对于自变量v的n次微分
>> syms x
>> f=6*x^3+4*x^2+x-10
 
f = 6*x^3 + 4*x^2 + x - 10
 
>> diff(f)
 
ans = 18*x^2 + 8*x + 1
 
>> diff(f,'x',2)%对f的x变量进行二次微分
 
ans = 36*x + 8

>> syms a
>> f1=sin(a)
 
f1 =sin(a)
 
>> diff(f1,'a',1)
 
ans = cos(a)
 
>> diff(f1,'a',2)
 
ans = -sin(a)

%多变量下指定变量微分
>> f=7*exp(a*x)+8*x^4
 
f = 7*exp(a*x) + 8*x^4
 
>> diff(f,'a',1)
 
ans = 7*x*exp(a*x)

%微分之后
>> f=(1-x^3)/(1+x^4)
 
f = -(x^3 - 1)/(x^4 + 1)
 
>> simplify(diff(f,'x',1))
 
ans = -(x^2*(- x^4 + 4*x + 3))/(x^4 + 1)^2
 
>> simplify(diff(f,'x',2))
 
ans = -(2*x*(x^8 - 10*x^5 - 12*x^4 + 6*x + 3))/(x^4 + 1)^3

3.求符号的积分

int函数用来求解符号积分,其格式如下:

  • int(S),求符号表达式S对于默认自变量的不定积分;
  • int(S, ‘v’),求符号表达式S对于自变量v的不定积分;
  • int(S, a, b),求符号表达式S对于默认自变量从a到b的定积分;
  • int(S, ‘v’, a, b),求符号表达式S中自变量v计算从a到b的定积分
ohsiz.png
>> f=(-2*x)/((1+x^2)^2)
 
f = -(2*x)/(x^2 + 1)^2
 
>> f(1)	%不是函数,只是变量
 
ans = -(2*x)/(x^2 + 1)^2

>> int(f,'x')
%求不定积分
 
ans =1/(x^2 + 1)

>> clear x
>> syms x z
>> f(x,z)=x/(1+z)^2
 
f(x, z) = x/(z + 1)^2
 
>> f(1,z)
 
ans = 1/(z + 1)^2
 
>> f(1,1)
 
ans = 1/4
 
>> int(f,'x')
 
ans(x, z) = x^2/(2*(z + 1)^2)

>> int(f,'z')

ans(x, z) = -x/(z + 1)
 
>> f
 
f(x, z) = x/(z + 1)^2
>> g=x*log(1+x)
 
g = x*log(x + 1)
 
>> int(f,'x',0,1)
 
ans(z) = 1/(2*(z + 1)^2)
 
>> int(g,'x',0,1)
 
ans = 1/4

4.符号积分变换操作

常见的积分变换有傅里叶变换、拉普拉斯变换、z变换;

4.1 fourier变换及逆变换

傅里叶变换的定义:

>>syms x w
>>f=f(x)	%要变换的函数

>>F=int(f(x)*exp(-j*w*x),'x',-inf,inf)	%傅里叶变换的定义式

fourier变换函数格式:

F=fourier(f)
okPvA.png

函数f=f(x)为函数F(w)的逆Fourier变换,即F=F(w) → f=f(x)。

若F=F(x), ifourier(F)返回变量t的函数,即F=F(x) → f=f(t)。

f=ifourier(F, u),使函数f为变量u(u为标量符号对象)的函数

f=ifourier(F, v, u) 使F为变量v的函数,f为变量u的函数。

4.2 laplace 变换和逆变换

%F(t)是时域函数
L=laplace(F(t))

输出参量L=L(s)为有默认符号自变量t的标量符号对象F的Laplace变换,即F=F(t) → L=L(s)。若F =F(s),则fourier(F)返回变量为t的函数L,即F=F(s)→L=L(t)。

laplace(F, t),使函数L为变量t(t为标量符号自变量)的函数。

laplace(F, w, z),使函数L为变量z的函数,函数F为变量w的函数。

ilaplace函数用来求逆Laplace变换。其格式如下:

F=ilaplace(L(w))

输出参量F=F(t)为默认变量s的标量符号对象L的逆Laplace变换,即F=F(w) → f=f(x)。若L=L(t),则ifourier(L)返回变量为x的函数F,即F=F(x) → f=f(t)。

F=ilaplace(L, y),使函数F为变量y(y为标量符号对象)的函数。

F=ilaplace(L, y, x),使函数F为变量x的函数,函数L为变量y的函数

4.3 z变换

F=ztrans(f)

对默认自变量为n的函数f计算z变换。输出参量F为变量z的函数,即f=f(n) → F=F(z)。若函数f=f (z),则ztrans(f)返回一变量为w的函数,即f=f(z) → F=F(w)。

F=ztrans(f, w),用符号变量w代替默认的z作为函数F的自变量。

F=ztrans(f, k, w),对函数f中指定的符号变量k计算z变换。

f=iztrans(F)

输出参量f=f(n)为有默认变量z的单值符号函数F的逆z变换,即F=F(z) → f=f(n)。若F=F(n),则iztrans(F)返回变量为k的函数f(k),即F=F(n) → f=f(k)。

f=iztrans(F, k),使函数f为变量k(k为标量符号对象)的函数f(k)。

f=iztrans(F, w, k),使函数F为变量w的函数,函数f为变量k的函数。

5. 符号方程求解

5.1 代数方程求解

MATLAB的符号数学工具箱提供了solve函数对代数方程求解,其格式如下:

g=solve(eq),求解代数方程eq=0,自变量为默认自变量;

g=solve(eq, var),求解代数方程eq=0,自变量为var;

g=solve(eq1, eq2, …, eqn, var1, var2, …, varn)),求解符号表达式eq1, eq2, …, eqn组成的代数方程组,自变量分别为var1, var2,…, varn。方程组的解将存入结构变量g。

>> syms a b c x
>> f=a*x*x+b*x+c
 
f =
 
a*x^2 + b*x + c
 
 >> solve(f)
 
ans =
 
 -(b + (b^2 - 4*a*c)^(1/2))/(2*a)
 -(b - (b^2 - 4*a*c)^(1/2))/(2*a)
 
>> solve(f,a)
 
ans =
 
-(c + b*x)/x^2

>> clear
>> syms x y z
>> who

您的变量为:

x  y  z  

>> f=x^2-y*y+z-10
 
f =
 
x^2 - y^2 + z - 10
 
>> g=x+y-5*z
 
g =
 
x + y - 5*z
 
>> h=2*x-4y+z
 h=2*x-4y+z
        ↑
错误: 不应为 MATLAB 表达式。
 
是不是想输入:
>> h=2*x-4*y+z
 
h =
 
2*x - 4*y + z
 
>> [x,y,z]=solve(lf,g,h)
未定义函数或变量 'lf'>> [x,y,z]=solve(f,g,h)
 
x =
 
 - (19*2409^(1/2))/240 - 19/80
   (19*2409^(1/2))/240 - 19/80
 
 
y =
 
 - (11*2409^(1/2))/240 - 11/80
   (11*2409^(1/2))/240 - 11/80
 
 
z =
 
 - 2409^(1/2)/40 - 3/40
   2409^(1/2)/40 - 3/40

>> s=solve(f,g,h)

s = 

    x: [2x1 sym]
    y: [2x1 sym]
    z: [2x1 sym]

>> s.x
 
ans =
 
 - (19*2409^(1/2))/240 - 19/80
   (19*2409^(1/2))/240 - 19/80

5.2 微分方程求解

dsolve函数用来求解微分方程,

r=dsolve('eq1,eq2,eq3,···''cond1,cond2,cond3,···''V')

求解由 ** “eq1, eq2, …”指定的微分方** 的符号解,

参数**“cond1,cond2, …”为指定常微分方程的边界条件或初始条件**

v为指定的自变量,若不指定,将采用“t”为默认自变量。

微分方程中用D表示一次微分,D2和D3分别表示二次及三次微分

D后的字符为因变量

如果不指定边界条件,那么就返回通解

%example 1
>> dsolve('Dy=a*y')
 
ans =
 
C1*exp(a*t)

>> dsolve('Dy=a*y','y(0)=b','x')
 
ans =
 
b*exp(a*x)

%example 2
>> dsolve('D2y=-a^2*y')
 
ans =
 
C3*exp(a*t*1i) + C4*exp(-a*t*1i)
 
>> dsolve('D2y=-a^2*y','y(0)=1,Dy(pi/a)=0','x')
 
ans =
 
exp(-a*x*1i)/2 + exp(a*x*1i)/2
 
>> simplify(dsolve('D2y=-a^2*y','y(0)=1,Dy(pi/a)=0','x'))
 
ans =
 
cos(a*x)

%example 3
>> dsolve('D2y=x+Dy','y(0)=1','Dy(0)=0','x')
 
ans =
 
exp(x) - x - x^2/2

%example 4
>> [x,y]=dsolve('Dx=x+y,Dy=2*x')
 
x =
 
C10*exp(2*t) - (C9*exp(-t))/2
 
y =
 
C9*exp(-t) + C10*exp(2*t)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值