Разработка программы, вычисляющей интеграл

Автор работы: Пользователь скрыл имя, 09 Сентября 2011 в 08:48, курсовая работа

Описание работы

Цель курсовой работы является приобретение и углубление знаний в области высокоуровневых методов информатики и программирования, получения дополнительных практических навыков в использовании основных приёмов обработки экспериментальных данных, численного решения определенных интегралов.

Численное интегральное исчисление – часто используемая тема в математике. При решении ряда актуальных физических и технических задач встречаются определенные интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определенными интегралами, сами подынтегральные функции которых не являются элементарными. Это приводит к необходимости использования приближенных методов вычисления определенных интегралов.

Содержание работы

ВВЕДЕНИЕ

Нормативные ссылки

Список используемой литературы

Файлы: 1 файл

Пример_курсовой_ООП.doc

— 731.00 Кб (Скачать файл)

        {

            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);

        }

    }

}

    1. Листинг файла «MainForm.cs»

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; } 

Информация о работе Разработка программы, вычисляющей интеграл