第二部分也是介绍其他的常用的数学函数,希望对大家有所帮助!
1.求极限limit函数
代码示意:
clc;clear
syms x h
a1=limit(sin(x)/x)
a2=limit((sin(x + h) - sin(x))/h, h, 0,"left")
syms x
f = 1/x;
a3=limit(f,x,0,'right')
a4=limit(f,x,0,"left")
运行结果示意:
2.求导数或者差分(diff函数)
注意:matlab里差分部分比较有难度,且对高数要有比较深的掌握,这里暂不赘述,后期会专门做一章,这里仅对diff函数做介绍。
首先求导数
clc;clear
h = 0.001; % 步长
X = -pi:h:pi;
f = sin(X);
Y = diff(f)/h;
Z = diff(Y)/h;
plot(X(:,1:length(Y)),Y,'r',X,f,'b', X(:,1:length(Z)),Z,'k')
运行结果:(在此绘图中,蓝色线条对应原始函数 sin
。红色线条对应计算出的第一个导数 cos
,黑色线条对应计算出的第二个导数 -sin
。)
求差分:(了解知道即可)
3.求积分(int)或者数值积分(integral;quad)
F = int(expr,var,a,b)或者
int(expr,var,[a b])
%对函数expr的变量var求积分,上下限为[a,b]。
代码示意:
q = integral(fun,xmin,xmax)%其中fun为符号函数,quad与这个用法一样
代码示意:
注意:
一般int我们用来求解一重积分,而integral2可以求二重积分,integral3可以求解三重积分。
4.求和(sum)或者级数求和(symsum)
注意:sum函数比较简单,这里主要介绍sum(A,dim)%dim为矩阵A的维度。
F = symsum(f,k,a,b)%对函数f的变量级数求和,[a,b]为k的变化范围。
5. 解微分方程(dsolve函数)或者数值解(ode系列函数)
注意:
dsolve函数常与diff函数一起用,这个函数需要多使用理解。
代码示意:
clc;clear
syms y(t) a
eqn = diff(y,t) == a*y;%一阶微分方程
S = dsolve(eqn)
syms y(t) a
eqn = diff(y,t,2) == a*y;%二阶微分方程
ySol(t) = dsolve(eqn)
运行结果 :
[t,y] = ode45(odefun,tspan,y0)
(其中tspan = [t0 tf]
)求微分方程组 y′=f(t,y) 从t0
到tf
的积分,初始条件为y0
。解数组y
中的每一行都与列向量t
中返回的值相对应。
注意:ode系列函数有很多,这里仅介绍ode45函数,在求解微分方程中ode45函数大部分将是首选,ode系列函数水比较深,这里建议要多看资料,多运用。
不过如果不是专业要求,ode45函数绝对足够解决你的大部分问题。
代码结果示意:
到这里,求解基本数学问题的函数就讲解完毕了,不过需要注意的是,大部分求解过程都会搭配function函数进行求解,就比如ode45函数搭配函数将会有更多的运用。
如果对你有帮助的话,请点赞支持一下吧!