• matlab与win7兼容 > 第4章MATLAB 的数值计算
  • 第4章MATLAB 的数值计算

    免费下载 下载该文档 文档格式:PPT   更新时间:2011-08-22   下载次数:0   点击次数:3
    第4章MATLAB 的数值计算
    4.1 数值微积分4.2 矩阵和代数方程4.3 概率分布和统计分析4.4 多项式运算和卷积
    4.1数值微积分
    4.1.1 近似数值极限及导数4.1.2 数值求和与近似数值积分4.1.3 计算精度可控的数值积分4.1.4 函数极值的数值求解4.1.5 常微分方程的数值解
    在MATLAB数值计算中,既没有专门的求极限指令,也没有专门的求导指令.但MATLAB提供了与"求导"概念有关的"求差分"指令.dx=diff(X)计算向量X的前向差分FX=gradient(F)求一元(函数)梯度[FX, FY] =gradient(F) %求二元(函数)梯度
    对diff而言,当X是向量时,dx= X(2:n)-X(1:n-1) ;当X是矩阵时,dx= X(2:n, :)-X(1:n-1, :) . dx的长度比x的长度少1个元素.
    4.1.1 近似数值极限及导数
    dx=diff(X)计算向量X的前向差分FX=gradient(F)求一元(函数)梯度[FX, FY] =gradient(F) %求二元(函数)梯度
    对gradient而言,当F是向量时,FX(1) = F(2)-F(1)FX(2:end-1) = (F(3:end)-F(1:end-2))/2 , FX(end) = F(end)-F(end-1) ; FX长度与F的长度相同当F是矩阵时, FX, FY是与F同样大小的矩阵. FX的每行对应F相应行元素间的梯度 ; FY的每列对应F相应列元素间的梯度 ;
    4.1.1 近似数值极限及导数
    数值极限和导数的应用应十分谨慎
    x=eps;L1=(1-cos(2*x))/(x*sin(x)), L2=sin(x)/x,L1 = 0L2 = 1
    syms tf1=(1-cos(2*t))/(t*sin(t));f2=sin(t)/t;Ls1=limit(f1,t,0)Ls2=limit(f2,t,0) Ls1 2Ls2 1
    x=pi/1000; %可得到正确结果
    数值极限和导数的应用应十分谨慎
    %(1)自变量的增量取得过小(eps数量级)d=pi/100;t=0:d:2*pi; x=sin(t);dt=5*eps; x_eps=sin(t+dt);dxdt_eps=(x_eps-x)/dt;plot(t,x,'LineWidth',5)hold onplot(t,dxdt_eps)hold offlegend('x(t)','dx/dt')xlabel('t')
    【例4.1-2】已知
    , 求该函数在区间
    中的近似导函数.
    数值导数受计算中有限精度困扰,当增量dt过小时,f(t+dt)与f(t)的数值十分接近,高位有效数字完全相同, df =f(t+dt)-f(t) 造成高位有效数字消失,精度急剧变差.
    数值极限和导数的应用应十分谨慎
    %(2)自变量的增量取得适当x_d=sin(t+d);dxdt_d=(x_d-x)/d;plot(t,x,'LineWidth',5)hold onplot(t,dxdt_d)hold offlegend('x(t)','dx/dt')xlabel('t')
    【例4.1-2】已知
    , 求该函数在区间
    中的近似导函数.
    d=pi/100;
    d=pi/100; t=0:d:2*pi;x=sin(t);dxdt_diff=diff(x)/d;dxdt_grad=gradient(x)/d;
    【例4.1-3】已知 采用diff和gradient计算该函数在区间 中的近似导函数.
    subplot(1,2,1); plot(t,x,'b');hold onplot(t,dxdt_grad,'m','LineWidth',8)plot(t(1:end-1),dxdt_diff,'.k','MarkerSize',8)axis([0,2*pi,-1.1,1.1]); title('[0, 2\pi]')legend('x(t)','dxdt_{grad}','dxdt_{diff}','Location','North')xlabel('t'), box off;hold off
    subplot(1,2,2)kk=(length(t)-10):length(t); hold on; plot(t(kk),dxdt_grad(kk),'om','MarkerSize',8)plot(t(kk-1),dxdt_diff(kk-1),'.k','MarkerSize',8)title('[end-10, end]')legend('dxdt_{grad}','dxdt_{diff}','Location','SouthEast')xlabel('t'),box off; hold off

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PPT格式下载
  • 您可能感兴趣的
  • matlab7.0下载win7  matlabwin7家庭版  matlab2011win7  matlab支持win7  matlab在win7下安装  matlab7.0win7  适合win7的matlab  matlabwin7打不开  matlab6.5win7