Matlab在计算方法中的应用1.插值与拟合2.积分与微分3.求解线型方程组4.求解非线性方程组5.常微分方程的解法1.yi=interp1(x,y,xi)对节点向量(x,y)插值,求xi对应的yi值2.yi=interp1(y,xi)默认x=1:n,n为向量y的长度值3.yi=interp1(x,y,xi,’method’)method指定插值的算法,默认为线型算法,可取值为:‘nearest’-线性最近项插值;‘linear’-线性插值;‘spline’-立方样条插值;‘cubic’-立方插值。所谓分段线型插值就是通过插值点用折线段连接起来逼近原曲线分段线型插值:例:x=0:0.1:10;y=sin(x);xi=0:0.25:10;yi=interp1(x,y,xi);plot(x,y,'o',xi,yi)同类函数:interp1q、interpft、spline、interp2、interp3、interpn012345678910-1-0.8-0.6-0.4-0.200.20.40.60.810.511.522.53123456789P=polyfit(x,y,n)x,y为数据向量,n为拟合的多项式阶数曲线拟合利用polyfit进行多项式拟合x=[0.51.01.52.02.53.0];y=[1.752.453.814.807.008.60];a=polyfit(x,y,2)a=0.56140.82871.1560x1=[0.5:0.05:3.0];y1=a(3)+a(2)*x1+a(1)*x1.*x1;plot(x1,y1,'-r')holdonplot(x,y,'*')积分与微分1.Newton-Cotes系列数值求积公式矩形求积公式cumsum(X)梯形求积公式trapz(X,Y)自适应simpson法求积quad(‘F’,a,b,…)自适应的cotes法求积公式quad8(‘F’,a,b,…)2.Gauss求积公式3.Romberg求积公式4.Monte-Carlo方法以上均可自编程序完成。Q=quad(@myfun,0,2);Q=-0.4605functiony=myfun(x)y=1./(x.^3-2*x-5);例5.符号积分intsymsumsymsxx1alphauint(1/(1+x^2))returnsatan(x)int(sin(alpha*u),alpha)returns-cos(alpha*u)/uint(x1*log(1+x1),0,1)returns1/4例6.微分和差分数值微分与差分diff(X,N,DIM)符号微分与差分diff(S,’v’,n)梯度函数[fx,fy]=gradient(F,HX,HY)多元函数的导数jacobian(f,v)3.求解线型方程组一般分为两种•直接法:通过矩阵的变形、消去直接求解,主要用于低阶稠密矩阵•叠代法:利用某种极限过程去逐渐逼近方程组精确解,主要用于大型稀疏矩阵1.直接法:•矩阵除法:x=a\b•线性方程组直接求解分析2.迭代解法的几种形式•Jacobi迭代法•gauss-seidel迭代法•SOR(逐次超松弛跌代法)•两步跌代法均可自己编程完成3.线性方程组的解析解法linsolvesolvevpa例[x,y]=solve('x^2+x*y+y=3','x^2-4*x+3=0')x=13y=1-3/2returns4.求解非线性方程组1.非线性方程的解法2.方程组解法可自行编制函数3.非线性方程(组)的解析解法fsolve(‘fc’,x0)5.常微分方程的解法1.欧拉方法需自编程序完成2.Runge-Kutta方法ODE解函数:ode23,ode45,ode113,ode15s,ode23s1)二三阶R-K函数(低阶方法)[T,Y]=ode23(‘F’,TSPAN,Y0,…)2)四五阶R-K函数(中阶方法)[T,Y]=ode45(‘F’,TSPAN,Y0,…)F为求解微分方程,TSPAN为微分方程积分限,Y0初始条件3.常微分方程的解析解dsolve求95322ydxdydxyd的解例y=dsolve('D2y+3*Dy+5*y=9')y=9/5+C1*exp(-3/2*t)*cos(1/2*11^(1/2)*t)+C2*exp(-3/2*t)*sin(1/2*11^(1/2)*t)输出结果为:即方程的解为)112sin()112cos(59232231teCteCytt