⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e851.m

📁 matlab算法集 matlab算法集
💻 M
字号:
%------------------------------------------------------------------
% Example 8.5.1: Predictor-Corrector Method                       
%------------------------------------------------------------------
   clc
   clear
   n = 2;
   m = 11;
   alpha = 0;	
   beta = 2;
   h = (beta-alpha)/(m-1);
   x0 = [0 1]';
   x1 = zeros(n,1);
   x = zeros(n,1);
   e = zeros(m,1);
   E = zeros(m,5);
   X = zeros (m,n);
   X0 = zeros (4,n);

% Exact solution 

   fprintf ('Example 8.5.1: Predictor-Corrector Method\n');
   t = linspace (alpha,beta,m)';
   for k = 1 : m
      X(k,1) = t(k)*exp(-t(k));
      X(k,2) = (1-t(k))*exp(-t(k));
   end
   graphxy (t,X,'Exact Solution','t','x');  
 
% Euler solution 
   
   x = x0;
   for k = 1 : m-1
      x1 = funf851(t(k),x);
      for j = 1 : n
         x(j) = x(j) + h*x1(j);
         e(j) = x(j) - X(k+1,j);
      end
      E(k,1) = norm (e,inf);
   end

% Runge-Kutta solution 
   
   x = x0;
   for k = 1 : m-1
      [x1,E(k,2)] = rkfstep (x,t(k),t(k+1),'funf851');
      x = x1;
      for j = 1 : n
         e(j) = x(j) - X(k+1,j);
      end
      E(k,3) = norm (e,inf);
   end

% Adams predictor-corrector solution 
   
   for k = 1 : 4
      j = 5 - k;
      X0(k,1) = t(j)*exp(-t(j));
      X0(k,2) = (1-t(j))*exp(-t(j));
   end

   for k = 4 : m-1 
      [X0,E(k,4)] = predcorr (X0,t(k),t(k+1),'funf851');
      for j = 1 : n
         e(j) = X0(1,j) - X(k+1,j);
      end
      E(k,5) = norm (e,inf);
   end

% Display results

   fprintf ('\n t     Euler     RKF(local)    RKF(global)');
   fprintf ('     ABM(local)    ABM(global)\n');
   fprintf ('--------------------------------------------');
   fprintf ('-----------------------------\n');             
   for k = 1 : m-1
      fprintf ('%2.1f %9.6f  %12.6e  %12.6e  %12.6e  %12.6e\n',...
               t(k+1),E(k,:));
   end
   fprintf ('--------------------------------------------');
   fprintf ('-----------------------------\n');             
   wait
%------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -