好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

一维抛物线偏微分方程数值解法(3)(附图及matlab程序).doc

9页
  • 卖家[上传人]:mg****85
  • 文档编号:35595085
  • 上传时间:2018-03-17
  • 文档格式:DOC
  • 文档大小:343.50KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 一维抛物线偏微分方程数值解法(3)上一篇参看 一维抛物线偏微分方程数值解法(2) (附图及matlab程序) 解一维抛物线型方程(理论书籍可以参看孙志忠:偏微分方程数值解法) Ut-Uxx=0, 00) U(x,0)=e^x, 0> xlabel('x');ylabel('t');zlabel('e'); >> title('误差曲面')plot(x,e)plot(t,e)误差较向前欧拉法减小一半 但是运行时间较长,约 39 秒,而前两次运行只需 l 秒左右; [u p e x t]=CN(0.01,0.01,100,100);运行需三分钟左右,误差比前次提高五倍,运算量也提高五倍[u p e x t]=CN(0.1,0.1,10,10);surf(x,t,e) 运行需要2秒;精度还是挺高的;[u p e x t]=CN(0.1,0.2,10,5);surf(x,t,e)误差还可以接受 此种方法精度高,计算量较大二:用迭代法解线性方程组: Matlab程序如下: function [u e p x t k]=CN1(h1,h2,m,n,kmax,ep) % 解抛物线型一维方程 C-N格式 (Ut-aUxx=f(x,t),a>0)%用g-s(高斯-赛德尔)迭代法解 %kmax为最大迭代次数 %m,n为x,t方向的网格数,例如(2-0)/0.01=200; %e为误差,p为精确解 syms temp; u=zeros(n+1,m+1); x=0+(0:m)*h1; t=0+(0:n)*h2; for(i=1:n+1)u(i,1)=exp(t(i));u(i,m+1)=exp(1+t(i)); end for(i=1:m+1)u(1,i)=exp(x(i)); end for(i=1:n+1)for(j=1:m+1)f(i,j)=0;end end a=zeros(n,m-1); r=h2/(h1*h1); %此处r=a*h2/(h1*h1) ;a=1 for(k=1:kmax)for(i=1:n)for(j=2:m)temp=((r/2*u(i,j-1)+(1-r)*u(i,j)+r/2*u(i,...j+1)+h2*f(i,j)+r/2*u(i+1,j- 1)+r/2*u(i+1,j+1))/(1+r));a(i+1,j)=(temp-u(i+1,j))*(temp-u(i+1,j));u(i+1,j)=temp;%此处注意是u(i+1,j),,而不是u(i+1,j+1)%endenda(i+1,j)=sqrt(a(i+1,j));if(k>kmax)break;endif(max(max(a))

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.