数值微积分
1.数值微分
dx=diff(x):计算向量x的向前差分
dx=diff(x,n):计算向量x的n阶向前差分
dx=diff(A,n,dim):计算矩阵A的n阶差分,dim等于1时(默认状态),按列计算差分,dim等于2时,按行计算差分。
2.数值积分
基于自适应辛普森方法
[I,n]=quad(filename,a,b,tol,trace)
基于自适应Gauss-Lobatoo方法
[I,n]=quadl(filename,a,b,tol,trace)
基于全局自适应积分方法
I=integral(filename,a,b)
filename是被积函数名;a和b分别是积分上限和下限,tol用来控制积分精度,
trace控制是否展现积分过程,取非0则展现积分过程,取0则不展现,默认trace=0;返回参数I为定积分的值,n为被积函数的调用次数。
基于自适应高斯-克朗罗德方法
[I,err]=quadgk(filename,a,b)
err返回近似误差范围。
基于梯形积分法
I=trapz(x,y)
或者I=sum(diff(x).*(y(1:end-1)+y(2:end))/2)
其中,向量x,y定义函数关系y=f(x),
其中,
二重积分的数值解:
I=integral2(filename,a,b,c,d)
I=quad2d(filename,a,b,c,d)
I=dblquad(filename,a,b,c,d,tol)
三重积分的数值解:
I=integral3(filename,a,b,c,d,e,f)
I=triplequad(filename,a,b,c,d,e,f,tol)
3.非线性方程组数值求解
3.1单变量非线性方程求解
X=fzero(filename,x0)
其中,filename是待求方程式左端的函数表达式,x0是初始值
X=fsolve(filename,x0,option)
option用于设置优化工具箱的优化参数,可以用optimest函数来完成
3.2 无约束最优化问题
[xmin,fmin]=fminbnd(filename,x1,x2,option)
[xmin,fmin]=fminsearch(filename,x0,option)
[xmin,fmin]=fminunc(filename,x0,option)
其中,xmin表示极小值点,fmin表示最小值,x1,x2分别表示被研究区间的左右边界,x0是一个向量,表示极值点的初值。
3.3 有约束条件最小值的函数
[xmin,fmin]=fmincon(filename,x0,A,b,Aeq,beq,Lbnd,Ubnd,NonF,option)
A,b,Aeq,beq,Lbnd,Ubnd,NonF为约束条件
4.常微分方程数值求解
调用格式为[t,y]=solver(filename,tspan,option)其中,t和y分别给出时间向量和相应的数值解,filename是定义f(t,y)的函数名,该函数必须返回一个列向量,tspan形式为[t0,tf],表示求解区间,y0是初始状态向量。
求解结果绘图如下: