Matlab具有强大的数学计算和符号计算能力,并提供丰富的工具包和函数,可实现随机数生成、求解方程与线性代数、傅里叶分析、数据统计和优化等多种数学应用,特别是解方程方面,可通过solve函数、fzero函数、fsolve函数等方法实现多元方程组求解和数值解的计算,提升数学求解效率和精度。
1.直接解法
利用左除运算符的直接解法
利用矩阵的分解求解线性方程组(lu分解,qr分解,cholesky分解,schur分解,hessberg分解,奇异分解)
2.迭代解法
jacobi迭代法
gauss-serdel迭代法
非线性方程数值求解
1.单变量非线性方程求解
在matlab中提供一个fzero函数,可以用来求单变量非线性方程的根。
z=fzero('fname',x0,tol,trace)
fzero是带求根的函数文件名,x0为搜索的起点。一个函数可能有多个根,但fzero函数只给出离x0最近的那个根。
2.非线性方程组的求解
对于非线性方程组f(x)=0,用fsolve函数求其数值解。
x为返回的解,fun是用于定义需求解的非线性方程组的函数文件名,x0是求根过程的初值。
常微分方程初值问题的数值解法
龙格-库法塔的实现
基于龙格-库法塔,matlab提供了求常微分方程数值解的函数。
fname是定义f(t,y)的函数文件名,该函数文件必须返回一个列向量。tspan形式为[]t0,tf],表示求解区间。y0是初始状态列向量。t和y分别给出时间向量和相应的状态向量。