微积分在MATLAB中的实现

创造变量

基本符号运算

  1. x=sym(‘x’) 创建一个符号变量
  2. syms x y z 创建多个符号变量 x y z
  3. r=collec(S,v) 合并同类项,S是符号表达式,v是变量或表达式

合并同幂项

EXPR=sym(‘(x^2+xexp(-t)+1)(x+exp(-t))’);
expr1=collect(EXPR)
expr2=collect(EXPR,‘exp(-t)’)

注解:

  1. 这里会报出警告,但不影响程序的运行
  2. exp(-t)的意思就是e的-t次方

因式分解

factor(S) 符号计算的因式分解,S是待分解的符号多项式

  1. 除了x外不含其他自由变量的情况

sym a x;
f1=x4-5*x3+5x^2+5x-6;
factor(f1)

  1. 含其他自由变量的情况之一

f2-x2-a2;
factor(f2)

  1. 对正整数的质数分解

factor(1025)

展开

expand(S) 对符号多项式或函数S进行展开

例如:

syms x y;
expand((x+1)^3)
expand(sin(x+y))

对符号表达式进行化简

r=simple(S) 或 r=simplify(S) 对符号表达式S进行化简

image.png

  1. 运用simplify简化

syms x;
f=(1/x3+6/x2+12/x+8)^(1/3);
sfy1=simplify(f), sfy1=simplify(sfy1)

  1. 运用simple简化(更加简化一些)

g1=simple(f), g2=simple(g1)

simplify和simple是Matlab符号数学工具箱提供的两个du简化函数,区别如下:
simplify的调zhi用格式为:simplify(S);对表达式S进行化简。
simple是通过对dao表达式尝试多种不同的方法(包括simplify)进行化简,以寻求符号表达式S的最简形式。
调用方式为:
[r,how]=simple(S);r为返回的简化形式,how为化简过程中使用的一种方法。how有以下几种形式:
(1)simplify 函数对表达式进行化简;
(2)radsimp函数对含根式的表达式进行化简;
(3)combine 函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并;
(4)collet合并同类项
(5)factor函数实现因式分解
(6)convert函数完成表达式形式的转换

simplify可以设置参数,这里可以直接help simplify来查看相关参数,simple函数似乎已经在新版本中被剔除

极限的运算

image.png

注意:在左右极限不相等或左右极限有一个不存在时,MATLAB的默认状态是求右极限。

例题1

image.png

syms x;
y1=(1+4*x)^(1/x);
y2=(exp(x)-1) /x;
limit(y1,x,0)
limit(y2,x,0)

image.png

syms x;
y=sqrt(x)-2^(-1/x);
limit(y,x,0, ‘right’)

求导

**一元函数的求导 ** diff(f)
**对n求导 ** diff(f,n)

image.png

syms x;
f=3x^3+5x+1;
diff(f,2)

image.png

syms x;
y=3x^3-2x+1;
B=diff(y),x=1;
eval(B)

ps:eval函数的功能是将字符串转换为matlab可执行语句。通俗而言,比如
你输入
a=’b=1’;
会在workspace里看见生成了变量a,a的类型是字符串,字符串的内容是b=1
然后你输入eval(a)
就会看见变量里生成了变量b,b是一个1乘1的double型矩阵,元素的值为1
也就是说,执行eval(a)相当于执行a的内容,相当于执行b=1

多元函数的偏导数

diff(f,xi) diff(f,xi,n)

image.png

syms x y;
z=x^2sin(2y);
B=diff(z,x)

积分运算

一元函数的不定积分

int(f)
👆求函数f对默认变量的不定积分,用于函数只有一个变量的情况
int(f,v)
👆求符号函数f对变量v的不定积分

例:
image.png

sysms x;
y=1/(sin(x)2*cos(x)2);
int(y)
pretty(int(y))
#解释pretty:
pretty数学公式美化

syms x z;
B=int(x/(1+z^2),z)

一元函数的定积分

int(f,x,a,b)
用微积分基本公式计算定积分

image.png
image.png

syms x;
y=(x2+sin(x)/(1+x2));
int(y,x,-1,1)

syms x;
y=x2/(1+x2);
int(y,x,-1,1)

多重积分运算

int(int(f,y),x)
计算不定积分
image.png

int(int(f,y,c,d),x,a,b)
计算不定积分
image.png

例:
image.png

syms x,y
int(int((x2+y2+1),x,x+1),y,0,1)#错误代码
#这里注意y在里面,x在外面
int(int(x2+y2+1,y,x,x+1),x,0,1)

数值微分与数值积分

数值微分

数值微分是用离散的方法近似地计算函数y=f(x)在某点x=a处的导数值,通常仅当函数以离散数值形式给出时才有这种必要。

diff(x)

用数值方法计算定积分

**(1)复合梯形公式 trapz(x,y) **

(2)复合辛普生公式 quad(‘fun’,a,b,tol,trace)

(3)用数值方法计算二重积分 dblquad(fun,xmin,xmax,ymin,ymax)

image.png

线性方程和非线性方程在MATLAB中的各种求解方法

image.png
image.png

ff=sym(‘p*sin(x)=r’)
solve(ff,‘x’)

image.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gremmie2003

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值