algorytm.org

Implementacja w C#

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Całkowanie numeryczne - metoda trapezów - Implementacja w C#
Ocena użytkownikóww: *****  / 5
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 27 maja 2007 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

metoda_trapezow_cs/Metoda_trapezow.cs:
// Calkowanie numeryczne - metoda trapezow
// www.algorytm.org
// (c)2007 by Tomasz Lubinski


using System;

namespace metoda_trapezow_cs
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Metoda_trapezow
	{
		public delegate double FUNC(double x);

		/// <summary>
		/// Oblicza calke metoda trapezow w przedziale od xp do xk z dokladnoscia n dla funkcji fun
		/// </summary>
		/// <param name="xp">poczatek przedzialu calkowania</param>
		/// <param name="xk">koniec przedzialu calkowania</param>
		/// <param name="n">dokladnosc calkowania</param>
		/// <param name="func">funkcja calkowana</param>
		/// <returns></returns>
		private static double calculate(double xp, double xk, int n, FUNC func)
		{
			double dx, calka;

			dx = (xk - xp) / (double)n;
		
			calka = 0;
			for (int i=1; i<n; i++) 
			{
				calka += func(xp + i * dx);
			}
			calka += (func(xp) + func(xk)) / 2;
			calka *= dx;

			return calka;
		}

		//funkcja dla ktorej obliczamy calke
		private static double func(double x) 
		{
			return x*x+3;
		}

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main(string[] args)
		{
			double xp, xk;
			int n;
			FUNC function = new FUNC(func);
		
			Console.WriteLine("Podaj poczatek przedzialu calkowania");
			xp = double.Parse(Console.ReadLine());
		
			Console.WriteLine("Podaj koniec przedzialu calkowania");
			xk = double.Parse(Console.ReadLine());

			Console.WriteLine("Podaj dokladnosc calkowania");
			n = int.Parse(Console.ReadLine());

			Console.WriteLine("Wartosc clki wynosi w przyblizeniu " + calculate(xp, xk, n, function));
		}
	}
}
Komentarze
photo
-1 # Franek 2012-09-22 10:00
nie widać, czym jest tu dokładność całkowania. Kod nic nie daje bez przykładu wywołania funkcji "calculate". To co tu jest, można znaleźć w każdej książce.
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz