[Matlab科学计算] Matlab符号计算一

       工科科研中总会遇到一些微积分的计算,然而大一所学的微积分或者高数早已经忘得所剩无几,也许你只记得一些基本的微分和积分公式,复杂函数的微积分计算的那些奇技淫巧都不记得了;亦或是函数太复杂手工计算容易出错。这些都可以通过Matlab的符号计算来解决。本文只是记录自己学习《Matlab符号运算及其运用》这本书的过程,同时也帮助更多的人了解符号计算。

一、 下面先从几个常见的例子开始介绍

1.合并表达式x^{2}y+yx-x^{2}-2x关于x的同类项。

Matlab代码:

>> syms x y;
>> collect(x^2*y+x*y-x^2-2*x)
 
ans =

(y - 1)*x^2 + (y - 2)*x

2.求导\frac{d}{dx}\left ( cos^{2}x \right )

Matlab代码:

>> sym x;
>> diff(cos(x)^2)
 
ans =
 
-2*cos(x)*sin(x)

3.计算不定积分\int x^{2}dx

Matlab代码:

>> sym x;
>> int(x^2)
 
ans =
 
x^3/3

只需在计算结果后面再加一个常数C即可。

4.计算定积分\int_{a}^{b}x^{2}dx

Matlab代码:

>> syms x a b;
>> int(x^2,a,b)
 
ans =
 
b^3/3 - a^3/3

5.计算矩阵行列式的值p=\begin{bmatrix} a & b\\ c& d \end{bmatrix}

Matlab代码:

 

>> syms a b c d;
>> p=[a b;c d];
>> det(p)
 
ans =
 
a*d - b*c

6.计算一阶微分方程\frac{dy}{dt}=ay

Matlab代码:

>> syms a y;
>> dsolve('Dy=a*y')
 
ans =
 
C1*exp(a*t)

从上面的几个例子可以看出高数的大部分计算都可以用Matlab的符号计算完成,快速且准确。

二、MATLAB的基本函数

 

函数名功能函数名功能
sin正弦asech反双曲正割
cos余弦acsch反双曲余割

tan

正切exp指数
cot余切log自然对数
sec正割log10常用对数
csc余割log2以2为底的对数
asin反正弦pow2以2为底的指数
acos反余弦sqrt平方根
atan反正切abs绝对值(复数的模)
atan2四象限反正切angle复数的相角
acot反余切conj复数的共轭
asec反正割imag复数的虚根
acsc反余割real复数的实部
sinh双曲正弦isreal是否为复数
cosh双曲余弦fix向0取整
tanh双曲正切floor向负无穷方向取整
coth双曲余切ceil向正无穷方向取整
asinh反双曲正弦round四舍五入
acosh反双曲余弦mod除法求余(与除数同号)
atanh反双曲正切rem除法求余(与被除数同号)
acoth反双曲余切sign符号函数

三、Matlab符号对象基本运算

1. 符号加
使用函数 symadd ( ) 实现符号对象的加法运算。其函数调用格式为:
symadd ( A,B )
用来实现符号表达式或符号矩阵 AB 相加: A+B

 

2. 符号减
使用函数 symsub ( ) 实现符号对象的减法运算。其函数调用格式为:
symsub ( A,B )
用来实现符号表达式或符号矩阵 AB 相减: A-B

 

3. 符号乘
使用函数 symmul ( ) 实现符号对象的乘法运算。其函数调用格式为:
symmul ( A,B )
用来实现符号表达式或符号矩阵 AB 相乘: A×B

 

4. 符号除
矩阵除法运算有左除与右除之分,即运算符“\”“/”指代的运算。其运算规则是:
a\b=inv(a)*ba/b=a*inv(b)inv( )为矩阵求逆的函数命令,将在第 6 章中介绍。使用函数 symdiv( ) 只能实现符号对象的右除(相当于“/”运算符)运算。其函数调用格式为:
symdiv ( A,B )
用来实现符号表达式或符号矩阵 AB 的右除运算: A/B

 

5. 符号表达式的幂运算
使用函数 sympow ( ) 实现符号对象的幂指数运算。其函数调用格式为:
sympow ( S, p )
用来计算 \mathit{S}^{p}(S^p)。如果 S 是一个纯量的符号表达式, p 可以是一个纯量的符号表达式,也可以是一个纯量的数值表达式;如果 S 是一个符号矩阵,则 S 必须是方阵,且 p 必须是整数。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值