Главная страница
Навигация по странице:

  • Курсовая Работа Тема: “Метод Симпсона (парабол)” Выполнил

  • Душанбе – 2022 Краткое описание

  • Содержание Введение Глава 1. Теоретическое описание задачи

  • Глава 1. Теоретическое описание задачи

  • Глава 2. Решение задачи на компьютере

  • Ctrl + `

  • Console.Clear()

  • курсовая. Метод Симпсона (парабол)


    Скачать 0.64 Mb.
    НазваниеМетод Симпсона (парабол)
    Дата08.12.2022
    Размер0.64 Mb.
    Формат файлаpdf
    Имя файлакурсовая.pdf
    ТипКурсовая
    #834627

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ
    ТАДЖИКИСТАН
    ТАДЖИКСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
    имени академика М.С. Осими
    Факультет Информационных технологий и коммуникации
    Кафедра Информационных технологий и защита информаций
    Курсовая Работа
    Тема: “Метод Симпсона (парабол)”
    Выполнил: студент первого курса
    Группы 9801010103
    Сорбонзода Фаридун Сорбон
    Принял: дотсент Назаров А.Ш.
    Душанбе – 2022

    Краткое описание
    В этой курсовой работе мы рассмотрим решение определенных интегралов методом Симпсона. Также мы решим математическую задачу, составим блок-схему, алгоритм и напишем приложение для решения задач методом Симпсона.

    Содержание
    Введение
    Глава 1. Теоретическое описание задачи
    1. Метод парабол (Симпсона) - суть метода. Формула.
    2.
    Решение математической задачи.
    Глава 2. Решение задачи на компьютере
    1. Интегрированная среда для разработки Visual Studio.
    2. Краткое описание языка программирования C#.
    3. Создание приложения для решения математической задачи.
    4. Описание программы и его операторов.
    5. Вывод.
    6. Литературы.
    7. Дополнения.

    Введение
    В условиях развития современного общества информационные технологии глубоко проникают в жизнь людей. Они очень быстро превратились в жизненно важный стимул развития не только мировой экономики, но и других сфер человеческой деятельности. Сейчас трудно найти сферу, в которой не используются информационные технологии. Так, в промышленности информационные технологии применяются не только для анализа запасов сырья, комплектующих, готовой продукции, но и позволяют проводить маркетинговые исследования для прогноза спроса на различные виды продукции, находить новых партнеров и многое другое. Применение информационных технологий в научной сфере и в сфере образования сложно переоценить. Сейчас трудно представить себе школу, в которой бы не было компьютерного класса. В наши дни существует масса электронных библиотек, воспользоваться которыми можно не выходя из дома, что значительно облегчает процесс обучения и самообразования. Кроме того информационные технологии способствуют развитию научных знаний.
    Информационные технологии невозможно представить без программирования.
    Программирование можно рассматривать как искусство, науку, ремесло.
    Программирование — это искусство получения ответов от машины. Для этого в узком смысле нужно составить специальный код для технического устройства, а в широком
    — разработать программы на языках программирования, т. е. не просто составить код, а выполнить интеллектуальную работу по составлению высокоразумных программ для решения различных задач во всех сферах человеческой деятельности.
    Программирование — процесс описания последовательности действий решения задачи средствами конкретного языка программирования и оформление результатов описания в виде программы. Эта работа требует точности, аккуратности и терпения.
    Команды машине должны формулироваться абсолютно четко и полно, не должны содержать никакой двусмысленности.
    Для программирования используются специальные языки программирования.
    Язык программирования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением.
    В этой курсовой работе мы используем язык программирования С#. В качестве среды для разработки можем использовать IDE Visual Studio или редактор VS Code. Они оба хорошо интегрированы для разработки на этом языке.

    Глава 1. Теоретическое описание задачи
    Метод парабол (Симпсона) - суть метода. Формула.
    Задача нахождения точного значения определенного интеграла не всегда имеет решение. Действительно, первообразную подынтегральной функции во многих случаях не удается представить в виде элементарной функции. В этом случае мы не можем точно вычислить определенный интеграл по формуле Ньютона-Лейбница. Однако есть методы численного интегрирования, позволяющие получить значение определенного интеграла с требуемой степенью точности. Одним из таких методов является метод
    Симпсона (его еще называют методом парабол).
    Сначала выясним смысл метода парабол, дадим графическую иллюстрацию и выведем формулу для вычисления приближенного значения интеграла. Далее запишем неравенство для оценки абсолютной погрешности метода Симпсона (парабол). Следом перейдем к решению характерных примеров, снабдим их подробными комментариями.
    Формула Симпсона (также Ньютона-Симпсона) относится к приёмам численного интегрирования. Получила название в честь британского математика Томаса Симпсона
    (1710—1761). Суть метода заключается в приближении подынтегральной функции на отрезке интерполяционным многочленом второй степени, то есть приближение графика функции на отрезке параболой. Метод Симпсона имеет порядок погрешности 4 и алгебраический порядок точности 3.
    Красной линией изображен график функции y=f(x), синей линией показано приближение графика функции y=f(x) квадратичными параболами на каждом элементарном отрезке разбиения.
    Для более точного вычисления интеграла интервал разбивают на элементарных отрезков одинаковой длины и применяют формулу Симпсона на составных отрезках.
    Каждый составной отрезок состоит из соседней пары элементарных отрезков. Значение исходного интеграла является суммой результатов интегрирования на составных отрезках:
    Графическая иллюстрация метода парабол (Симпсона).

    ∫ 𝑓(𝑥)𝑑𝑥 ≈

    3
    [𝑓(𝑥
    0
    ) + 2 ∑ 𝑓(𝑥
    2𝑗−1
    )
    𝑁/2
    𝑗=1
    + 4 ∑ 𝑓(𝑥
    2𝑗−1
    ) + 𝑓(𝑥
    𝑁
    )
    𝑁/2
    𝑗=1
    ]
    𝑏
    𝑎
    где
    𝒉 =
    𝒃−𝒂
    𝑵
    – величина шага, а
    𝒙
    𝒋
    = 𝒂 + 𝒋𝒉- чередующиеся границы и середины составных отрезков, на которых применяется формула Симпсона. Один подобный составной отрезок
    [𝒙
    𝒋−𝟏
    , 𝒙
    𝒋+𝟏
    ]
    состоит из двух элементарных отрезков [𝒙
    𝒋−𝟏
    , 𝒙
    𝒋
    ],
    [𝒙
    𝒋
    , 𝒙
    𝒋+𝟏
    ].Таким образом, если проводить параллели с простой формулой Симпсона, то в данном случае серединой отрезка, на котором применяется формула Симпсона, становится
    𝒙
    𝒋
    Обычно для равномерной сетки данную формулу записывают в других обозначениях (отрезок[𝒂, 𝒃]
    разбит на 𝑵 отрезков) в виде:
    ∫ 𝑓(𝑥)𝑑𝑥 ≈

    3
    [𝑓(𝑥
    0
    ) + 4𝑓(𝑥
    1
    ) + 2𝑓(𝑥
    2
    ) + 4𝑓(𝑥
    3
    ) + 2𝑓(𝑥
    4
    ) + ⋯ + 4𝑓(𝑥
    𝑁−1
    ) + 𝑓(𝑥
    𝑁
    )]
    𝑏
    𝑎
    Решение математической задачи.
    Рассмотрим одну задачу и решим её методом Симпсона.
    Пусть дана трапеция покрытая функцией 𝑓(2𝑥). Найти площадь трапеции.
    Для решения этой задачи мы можем использовать несколько способов. Сначала выполним эту задачу методом Ньютона-Лейбница. Для этого напишем интеграл с верней и нижней границей и вычислим его.

    𝒇(𝟐𝒙)𝒅𝒙
    𝟐
    𝟏
    Найдем первозданную функцию от 2𝑥: 𝐹(2𝑥) = 2 ∗
    𝑥
    2 2
    =
    2𝑥
    2 2
    = 𝑥
    2
    Теперь подставляем верхние и нижние границы интеграла и вычислим результат:
    𝑏
    2
    − 𝑎
    2
    = 2 2
    − 1 2
    = 4 − 1 = 3
    Наш конечный результат это 3.
    Теперь выполним эту задачу методом Симпсона(парабол). Для этого нам надо разбит наш отрезок на части. В нашем случае отрежем отрезок на 4 части. В этом случае у нас будет 5 узлов: 𝒙
    𝟎
    , 𝒙
    𝟏,
    𝒙
    𝟐,
    𝒙
    𝟑,
    𝒙
    𝟒
    Вычислим шаг разбиения: ℎ =
    (𝑏−𝑎)
    2𝑛
    =
    (2−1)
    4
    = 0,25
    Теперь поочередно добавляем на нижнюю границу интегрирования шаг разбиения и вычислим функцию. Данные заносим в таблицу:
    𝑖
    0 1
    2 3
    4
    𝑥
    𝑖
    1 1,25 1,5 1,75 2
    𝑓(𝑥
    𝑖
    )
    2,00 2,50 3,00 3,50 4,00

    Теперь вычислим функцию:
    ∫ 𝑓(2𝑥)𝑑𝑥 =
    0.25 3
    [2 + 4 + 4 ∗ (2,5 + 3,5) + 2 ∗ (3)] =
    0,25 3
    [36] = 3 2
    1
    В обеих случаях мы получаем один и тот же результат. Таким образом мы можем решить интеграл методом Симпсона. Также для достижения более точного результата можем увеличить количество шагов разбиения.
    Глава 2. Решение задачи на компьютере
    Интегрированная среда разработки Visual Studio.
    Microsoft Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментов. Данные продукты позволяют разрабатывать как консольные приложения, так и игры и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, UWP а также веб-сайты, веб-приложения, веб- службы как в родном, так и в управляемом кодах для всех платформ. После покупки компании Xamarin корпорацией Microsoft появилась возможность разработки IOS и
    Android программ.
    Visual Studio включает в себя редактор исходного кода с поддержкой технологии
    IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня.
    Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team
    Explorer для работы с Team Foundation Server). Visual Studio включает один или несколько компонентов в том числе такие языки программирования как Visual
    Basic.NET, Visual C++, С#, Visual F#. Также существует редактор кода Visual Studio
    Code который является очень популярным. VS Code не имеет такой функциональности как Visual Studio, но зато он лёгкий, быстрый и менее требовательный. Несмотря на это есть магазин расширений для VS Code благодаря которой можно увеличить функциональности редактора. Дальше речь пойдет о языке С#.
    Краткое описание языка программирования C#.
    Язык C# был создан корпорацией Microsoft для поддержки среды .NET Framework и опирается на богатое наследие в области программирования. Его главным разработчиком был Андерс Хейльсберг - известнейший специалист по программированию. C# происходит напрямую от двух самых удачных в области
    программирования языков: С и C++. От языка С он унаследовал синтаксис, многие ключевые слова и операторы, а от C++ — усовершенствованную объектную модель.
    Кроме того, C# тесно связан с Java — другим не менее удачным языком. Имея общее происхождение, но во многом отличаясь, C# и Java похожи друг на друга как близкие, но не кровные родственники. В обоих языках поддерживается распределенное программирование и применяется промежуточный код для обеспечения безопасности и переносимости, но отличия кроются в деталях реализации. Кроме того, в обоих языках предоставляется немало возможностей для проверки ошибок при выполнении, обеспечения безопасности и управляемого исполнения, хотя и в этом случае отличия кроются в деталях реализации. Но в отличие от Java, язык C# предоставляет доступ к указателям — средствам программирования, которые поддерживаются в C++.
    Следовательно, C# сочетает в себе эффективность, присущую C++, и типовую безопасность, характерную для Java. Более того, компромиссы между эффективностью и безопасностью в этом языке программирования тщательно уравновешены и совершенно прозрачны.
    На протяжении всей истории вычислительной техники языки программирования развивались, приспосабливаясь к изменениям в вычислительной среде, новшествам в теории языков программирования и новым тенденциям в осмыслении и подходе к работе программистов. И в этом отношении C# не является исключением. В ходе непрерывного процесса уточнения, адаптации и нововведений C# продемонстрировал способность быстро реагировать на потребности программистов в переменах. Об этом явно свидетельствуют многие новые возможности, введенные в C# с момента выхода исходной версии 1.0 этого языка в 2000 году.
    Рассмотрим для примера первое существенное исправление, внесенное в версии
    C# 2.0, где был введен ряд свойств, упрощавших написание более гибкого, надежного и быстро действующего кода. Без сомнения, самым важным новшеством в версии C#
    2.0 явилось внедрение обобщений. Благодаря обобщениям стало возможным создание типизированного, повторно используемого кода на С#. Следовательно, внедрение обобщений позволило основательно расширить возможности и повысить эффективность этого языка.
    С# является основным языком разработки программ на платформе .NET корпорации Microsoft. В нем удачно сочетаются испытанные средства программирования с самыми последними новшествами и предоставляется возможность для эффективного и очень практичного написания программ, предназначенных для вычислительной среды современных предприятий. Это, без сомнения, один из самых важных языков программирования XXI века.
    Microsoft разработала в конце 1990-х годов язык C# как часть общей стратегии
    .NET. Впервые он был выпущен в виде альфа-версии в середине 2000 года. Главным разработчиком C# был Андерс Хейльсберг — один из ведущих в мире специалистов по языкам программирования, который может похвалиться рядом заметных достижений в данной области. Достаточно сказать, что в 1980-е годы он был автором очень удачной и имевшей большое значение разработки — языка Turbo Pascal, изящная реализация которого послужила образцом для создания всех последующих компиляторов.
    На сегодняшний день язык C# активно развивается. Регулярно выходят новые версии C#, которые добавляют новые синтаксические конструкции в язык, а также
    увеличивают его быстродействие и надежность. C# уже не молодой язык и как и вся платформа .NET уже прошел большой путь. Текущей версией языка является версия C#
    11, которая вышла 8 ноября 2022 года вместе с релизом .NET 7.
    Создание приложения для решения математической задачи.
    Приступим к созданию приложения для решения задач методом
    Симпсона(Парабол). Я буду писать программу используя VS Code. Можно также использовать Visual Studio. Все зависит от предпочтений. В обеих случаях действия будут одинаковы. Если вы используете Visual Studio то IDE автоматически создает для вас ваш проект и подготовить все для разработки. В случае с VS Code нам надо самостоятельно создать наш проект. Для этого создаем папку и назовем её
    Parabolic_Integration (интегрирование методом парабол). После открываем командную строку и пишем следующий код:
    ➢ dotnet new console
    Это команда создает шаблон консольного приложения. После этого в папке можно увидеть следующие файлы:
    1. Папку obj
    2. Parabolic_Integration.csproj
    3. Program.cs
    Откроем нашу папку с помощью VS Code. Нам откроется вот такое окно:

    Наш редактор довольно прост. Слева находится проводник в котором мы видим файлы нашего приложения. Остальную область занимает редактор текста. Дважды нажимаем на Program.cs чтобы открыть код нашей программы.
    Этот код автоматически добавляется при создании проекта. Этот код содержит метод который выводит строку в консоль. Для того чтобы запустить приложение надо вызвать консоль комбинацией Ctrl + ` и ввести команду dotnet run:
    После выполнения этой команды программа выведет на консоль строку: Hello, World!
    Перейдем к написанию кода нашей программы. Для этого очистим Programs.cs и добавим следующий код:
    Создам делегат который принимает один параметр типа double и назовём его Function.
    После этого добавим статический метод Integrate принимающий 4 параметра: делегат типа Function в которой хранится ссылка для метода, верхняя и нижняя граница интегрирования и количество отрезков. Добавим коллекцию List для хранения наших функций в каждом отрезке. Наш метод должен принимать 4 параметра и возвращать результат нашего интеграла. Добавим логику в наш метод. Наш код должен выглядеть следующим образом

    Добавим в код еще один класс под названием Examples в котором будет хранится наши примеры с заданиями. Добавим в него метод который принимает один параметр х и возвращает 2*х.
    Теперь перейдем к точке входа нашей программы, точнее в метод Main(). Добавим в метод код для чтения значения из консоли и получения результата из метода Integrate.

    Теперь запустим нашу программу. Для этого вызываем консоль и вводим команду
    dotnet run. После этого программа просит нас ввести нижнюю и верхнюю границу интегрирования и количество отрезков. Введём данные из предыдущей задачи и посмотрим результат.
    Мы видим что программа вывела правильный результат. Для того чтобы решить интеграл различных функций, надо добавить соответствующий метод в класс Example.
    Далее поговорим об операторах и конструкциях нашей программы и о том как они работают.
    Описание программы и его операторов.
    Начнём с самого начала.
    Наш код начинается с директивы using System. System это пространство имен который содержит много полезных классов, в том числе класс Console для работыс консольными приложениями. Далее мы также подключаем класс Example который мы создали для примеров.
    В этой части кода мы создаем нашу пространство имён и определяем класс Program.

    Класс Program содержит один статический метод Main() который является точкой входа нашей программы. Именно с этого метода и начинается наша программа. В методе
    Main() находится бесконечный цикл While. Этот цикл служит для того чтобы мы повторно выполняли нашу программу без выхода и вход в него. После цикла идет конструкция try…catch который перехватывает исключения и выводит на консоль соответствующее сообщение. Например если мы вместо цифр введем буквы то программа выведет такое сообщение:
    Дальше внутри блока try у нас идет метод Write() который выводит строку в консоль.
    После этого число который вводить пользователь считается и передается переменной a.
    Точно так же считаются значения для переменной b и n. После этого вызывается метод
    Integrate в которой передаются метод example1, b, a и n. Значение возвращаемое методом Integrate передается переменной res и печатается в консоли.
    После всех этих операций консоль Console.Clear() очищает консоль и все действия повторяются сначала. Нас интересует строка в котором вызывается метод я Integrate:
    Чтобы понять эту строку кода нужно сначала рассмотреть метода Integrate который содержит следующий код:

    В метод мы передаем начало и конец интегрирования, количество отрезков и метод нашей функции. Начало отрезка передается переменной x и добавляется в коллекцию.
    Дальше мы объявляем переменную sum который должен хранит результат наших вычислений. Объявляем переменную h в которой хранится величина шагов разбиения.
    Увеличиваем значение переменной x на величину h. В цикле устанавливаем условие, что переменная x меньше конца интегрирования. Если условие верно то вычисляется функция от x, умножается на 4 и добавляется в переменную sum. После переменная x увеличивается на значение величины шага разбиения и его функция умножается на 2 и добавляется в переменную sum. В конце к переменной sum добавляется функция нижней границы интеграла и умножается на третью часть переменной h. Последняя строка возвращает переменную sum как конечный результат.
    Вывод
    Во время выполнения этой курсовой работы я познакомился и научился интегрированию методом Симпсона. На основе полученных знаний я написал консольную программу на языке С# для решения задач методом Симпсона. Программа успешно запустилась и я получил ожидаемые ответы. Таким образом я также увеличил свои знания в языке С#, научился работать с .NET CLI и познакомился с делегатами.

    Начало
    Конец a, b, n res = Integrate(example1, a,b,n) res

    Литературы
    1. Герберт Шилдт. Полный справочник по С#. (Вильямс 2004)
    2. Эндрю Троелсен. Филлип Джепикс. Pro C# 9 with .NET 5 (Пятое издание)
    3. Интернет ресурс – https://
    ru.wikipedia.org/wiki/Формула_Симпсона


    написать администратору сайта