Автор работы: Пользователь скрыл имя, 09 Сентября 2011 в 08:48, курсовая работа
Цель курсовой работы является приобретение и углубление знаний в области высокоуровневых методов информатики и программирования, получения дополнительных практических навыков в использовании основных приёмов обработки экспериментальных данных, численного решения определенных интегралов.
Численное интегральное исчисление – часто используемая тема в математике. При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости использования приближенных методов вычисления определенных интегралов.
ВВЕДЕНИЕ
Нормативные ссылки
Список используемой литературы
{
return Math.Log(Math.Abs(b + Math.Sqrt(1 + b * b))) -
Math.Log(Math.Abs(a + Math.Sqrt(1 + a * a)));
}
abstract protected void
Solve(); //{
}
//метод, содержащий алгоритм вычислений
public double
Square
{
get
{
return square;
}
}
public double
Accuracy
{
get
{
return accuracy;
}
}
public static volatile bool
Killed;
public static bool operator <(Integral x1, Integral x2)
{
if (x1.accuracy < x2.accuracy) return true;
return false;
}
public static bool operator >(Integral x1, Integral x2)
{
if (x1.accuracy > x2.accuracy) return true;
return false;
}
public override string ToString()
{
//return base.ToString();
string s;
if (Killed) return "";
s = Square.ToString() + " / " + Accuracy.ToString();
return s;
}
protected double
square, accuracy, a, b;
protected int n;
}
public sealed class Rectangles
: Integral
{
public
Rectangles(double a, double b, int n) : base(a, b, n){ }
override protected void Solve()
{
double yn = 0, y0, x0 = a, Delta = (b - a) / n;
for (int i = 0; i < n; i++, yn += y0, x0 += Delta)
{
if (Killed) { square = -1; return; }
y0 = F((2 * x0 + Delta) / 2);
}
square = yn * Delta;
}
}
public sealed class Trapezoids
: Integral
{
public Trapezoids(double a, double b, int n) : base(a, b, n){ }
override protected void Solve()
{
double yn = 0, y0, Delta = (b - a) / n, x0 = a + Delta;
for (int i = 1; i < n; i++, yn += y0, x0 += Delta)
{
if (Killed) { square = -1; return; }
y0 = F(x0);
}
square = Delta * ((F(a) + F(b)) / 2 + yn);
}
}
public sealed class Simpsons : Integral //метод парабол
{
public Simpsons(double a, double b, int n) : base(a, b, n) { }
override protected void Solve()
{
double yn1 = 0, yn2 = 0, y0, Delta = (b - a) / n, x0 = a + Delta;
for (int i = 1; i < n; i += 2, yn1 += y0, x0 += 2 * Delta)
{
if (Killed == true) { square = -1; return; }
y0 = F(x0);
}
x0 = a + 2 * Delta;
for (int i = 2; i < n - 1; i += 2, yn2 += y0, x0 += 2 * Delta)
{
if (Killed == true) { square = -1; return; }
y0 = F(x0);
}
square = (b - a) / 3 / n * (F(a) + F(b) + 4 * yn1 + 2 * yn2);
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using Курсовая_работа_по_ООП;
using ZedGraph;
using Patsev.Integrals;
namespace Курсовая_работа_по_ООП
{
public partial class MainForm : Form
{
public int
PointsQuantity { get; set; }
public int
PointsSize { get; set; }
public Single
LineWidth { get; set; }
double
x1 { get; set; }
double
x2 { get; set; }
Информация о работе Разработка программы, вычисляющей интеграл