MATLAB在微积分中的应用

近似微分与差分

diff(X): 向量X在相邻二元素之间的差分,如果X是矩阵,则它返回一个矩阵,他的每一列是原来列元素的差分。
diff(X,n):n是n次差分的意思
diff(X,n,dim):沿着所指定的维数进行差分

>> X=1:6

X =

     1     2     3     4     5     6

>> y1=diff(X,2)

y1 =

     0     0     0     0


 
>> y2=diff(X)

y2 =

     1     1     1     1     1

>> diff(y2)

ans =

     0     0     0     0

>> A=1:2:10

A =

     1     3     5     7     9

>> A=[1 3 5 8 9]

A =

     1     3     5     8     9

>> a=diff(A)

a =

     2     2     3     1

>> diff(a)

ans =

     0     1    -2

>> diff(A,2)

ans =

     0     1    -2

>> B=magic(4)

B =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

>> x1=diff(B)

x1 =

   -11     9     7    -5
     4    -4    -4     4
    -5     7     9   -11

>> x2=diff(B,1,2)   %沿行求一阶差分向量

x2 =

   -14     1    10
     6    -1    -2
    -2    -1     6
    10     1   -14

>> 

例题1.

>> X=1:6

X =

     1     2     3     4     5     6

>> Y=X.^2

Y =

     1     4     9    16    25    36

>> deltaY=diff(Y)./diff(X)

deltaY =

     3     5     7     9    11

>> Z=X^2
错误使用  ^ 
输入必须为标量和方阵。
要按元素进行 POWER 计算,请改用 POWER (.^)

例题2

>> t=1:10

t =

     1     2     3     4     5     6     7     8     9    10

>> s=[2 6 12 20 30 42 56 72 90 110]

s =

     2     6    12    20    30    42    56    72    90   110

 
>> v=diff(s)./diff(t)

v =

     4     6     8    10    12    14    16    18    20

>> a=diff(v)./diff(t)
错误使用  ./ 
矩阵维度必须一致。
 
>> a=diff(v)./diff(t(1:9))
 

a =

     2     2     2     2     2     2     2     2

>> 

微分运算

diff(S) 求微商,微商就是导数
diff(S,‘v’) 对符号变量v求微商
diff(S,‘v’,n) 对S中符号变量v求n阶微商

>> syms x
>> y=x*sin(x)+15;
>> diff(y)
 
ans =
 
sin(x) + x*cos(x)     %算出的符号变量表达式,当变量由数值大夫后,尚需要用转换函数eval将微分表达式转成数值
 
>> x=pi/4

x =

    0.7854

>> eval(ans)

ans =

    1.2625
>> syms t
>> z=t^6
 
z =
 
t^6
 
>> diff(z,'t',6)
 
ans =
 
720
>> syms a t

>> x=a*cos(t)^3
 
x =
 
a*cos(t)^3
 
>> y=a*sin(t)^3
 
y =
 
a*sin(t)^3
 
>> x1=diff(x,'t')
 
x1 =
 
-3*a*cos(t)^2*sin(t)
 
>> y1=diff(y,'t')
 
y1 =
 
3*a*cos(t)*sin(t)^2
 

>> yx=x1/y1
 
yx =
 
-cos(t)/sin(t)
>> syms x y
>> z=x^2+2*x*y-y^2-2*x;
>> zx=diff(z,'x')
 
zx =
 
2*x + 2*y - 2
 
>> zy=diff(z,'y')
 
zy =
 
2*x - 2*y
>> syms x
>> y10=diff(sin(x)*sin(2*x)*sin(3*x),10)
 
y10 =
 
15378432*cos(2*x)*cos(3*x)*sin(x) + 14854144*cos(2*x)*sin(3*x)*cos(x) + 14854656*cos(3*x)*sin(2*x)*cos(x) - 15378944*sin(2*x)*sin(3*x)*sin(x)
 
>> y10=simple(y10)
警告: Function 'simple' will be removed in a future release. Use 'simplify' instead. 
> In sym.simple at 41 
 
y10 =
 
15116544*sin(6*x) - 262144*sin(4*x) - 256*sin(2*x)
 
>> factor(15116544)

ans =

     2     2     2     2     2     2     2     2     3     3     3     3     3     3     3     3     3     3

>> factor(262144)

ans =

     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2     2

>> factor(256)

ans =

     2     2     2     2     2     2     2     2

不定积分与定积分的计算

int(S)
int(S,v)
int(S,a,b)
int(S,v,a,b)
v为指定的积分变量,a,b指定积分的下限和上限。
多重积分,可以对被积函数采用累次单变量积分来实现。若S是x,y的函数,积分限为[xa,xb]、[ya,yb],则被积函数的二重积分R=int(int(S,x,xa,xb),y,ya,yb),该式先对自变量x求积分,积分后的表达式含有变量y,随后再对变量y求积分

>> syms x
>> y=1/(1+x^2);
>> R=int(y)
 
R =
 
atan(x)
 
>> 
>> sym x
 
ans =
 
x
 
>> int((1-sin(2*x))^(1/2),0,pi/2)
 
ans =
 
2*2^(1/2) - 2
 
>> eval(ans)

ans =

    0.8284

数值积分

发布了49 篇原创文章 · 获赞 2 · 访问量 899

猜你喜欢

转载自blog.csdn.net/qq_43720551/article/details/102932927