Talaksan:Numerical integration illustration, h=0.25.png

Page contents not supported in other languages.
Mula sa Wikipedia, ang malayang ensiklopedya

Buong resolusyon((1,500 × 2,183 pixel, laki ng talaksan: 85 KB, uri ng MIME: image/png))

Buod

Paglalarawan Illustration of Numerical ordinary differential equations
Pinanggalingan Sariling gawa
May-akda Oleg Alexandrov
 
This diagram was created with MATLAB.
Public domain Ako, ang may tangan ng karapatang-ari ng akdang ito, ay pinakakawalan ang akdang ito sa nasasakupan ng madla. Magagamit ito sa buong mundo.
Maaaring hindi ito posibleng legal sa ilang mga bansa; kung ganito:
Ibinibigay ko sa sinuman ang karapatang gamitin ang akdang ito para sa anumang layunin, na walang mga kundisyon, maliban na lang kung ang ganyang mga kundisyon ay kailangan ng batas.

Source code (MATLAB)

 

% illustration of numerical integration
% compare the Forward Euler method, which is globally O(h) 
% with Midpoint method, which is globally O(h^2)
% and the exact solution

function main()

   f = inline ('y', 't', 'y'); % will solve y' = f(t, y)

   a=0; b=4; % endpoints of the interval where we will solve the ODE
   N = 17; T = linspace(a, b, N); h = T(2)-T(1); % the grid
   y0 = 1; % initial condition

   % solve the ODE
   Y_euler = solve_ODE (N, f, y0,  h, T, 1); % Forward Euler method
   Y_midpt = solve_ODE (N, f, y0,  h, T, 2); % midpoint method
   T_highres = a:0.1:b; Y_exact = exp(T_highres);
   
%  prepare the plotting window
   lw = 3; % curves linewidth
   fs = 20; % font size
   figure(1); clf; set(gca, 'fontsize', fs);   hold on;

   % colors
   red=[0.867 0.06 0.14];
   blue = [0, 129, 205]/256;
   green = [0, 200,  70]/256;

% plot the solutions
   plot(T, Y_euler, 'color', blue,  'linewidth', lw)
   plot(T, Y_midpt, 'color', green, 'linewidth', lw)
   plot(T_highres, Y_exact, 'color', red,   'linewidth', lw)

   % axes aspect ratio
   pbaspect([1 1.5 1]);

% save to disk
   disp(sprintf('Grid size is %0.9g', h))
   saveas(gcf, sprintf('Numerical_integration_illustration,_h=%0.2g.eps', h), 'psc2');
   
function Y = solve_ODE (N, f, y0,  h, T, method)

   Y = 0*T;
   
   Y(1)=y0;
   for i=1:(N-1)
	  t = T(i); y = Y(i);

	  if method == 1 % forward Euler method
		 
		 Y(i+1) = y + h*f(t, y);
		 
	  elseif method == 2 % explicit one step midpoint method
		 
		 K = y + 0.5*h*f(t, y);
		 Y(i+1) =  y + h*f(t+h/2, K);
		 
	  else
		 disp ('Don`t know this type of method');
		 return;
		 
	  end
   end

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts English

Nakaraan ng file

Pindutin ang araw/oras upang makita kung papaano ang itsura ng talaksan noong oras na iyon.

Araw/OrasThumbnailMga dimensiyontagagamitKumento
ngayon03:02, 25 Mayo 2007Thumbnail para sa bersyon noong 03:02, 25 Mayo 20071,500 × 2,183 (85 KB)Oleg AlexandrovMake exact solution smooth
05:00, 20 Mayo 2007Thumbnail para sa bersyon noong 05:00, 20 Mayo 20071,500 × 2,183 (84 KB)Oleg AlexandrovHigher resolution. Same license.
03:19, 20 Mayo 2007Thumbnail para sa bersyon noong 03:19, 20 Mayo 2007375 × 546 (16 KB)Oleg Alexandrov{{Information |Description=Illustration of Numerical ordinary differential equations |Source=self-made |Date= |Author= User:Oleg Alexandrov }} Category:Numerical analysis {{PD-self}}

Nakaturo sa talaksan na ito ang mga sumusunod na mga pahina:

Pandaigdigang paggamit sa file

Ginagamit ng mga sumusunod na wiki ang file na ito: