Нахождение значения определенного интеграла с помощью метода трапеций в C++. Курсовая работа (т). Информационное обеспечение, программирование.

Нахождение значения определенного интеграла с помощью метода трапеций в C++. Курсовая работа (т). Информационное обеспечение, программирование.




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻


























































Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Нахождение значения определенного интеграла с помощью метода трапеций в C++

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

Старооскольский
технологический институт им. А.А. Угарова


"Национальный
исследовательский технологический университет "МИСиС"


Кафедра
автоматизированных и информационных системы управления
























по
дисциплине «Технология программирования»






















Определённый интеграл как площадь
фигуры численно равен площади фигуры, ограниченной осью абсцисс,
прямыми x = a и x = b и графиком функции f(x).




Интегрирование - это непосредственный метод, при котором интеграл путем тождественных преобразований
подынтегральной функции (или выражения) и применения свойств интеграла
приводится к одному или нескольким табличным интеграла.


·       Метод парабол
(формула Симпсона)


Метод трапеций. Отрезок
интегрирования разбивается на несколько промежуточных отрезков, и график
подынтегральной функции приближается ломаной линией:







Таким образом, наша площадь (синяя
штриховка) приближается суммой площадей трапеций (красный цвет). Отсюда и
название метода. Легко заметить, что метод трапеций даёт значительно лучшее
приближение, чем метод прямоугольников (при одинаковом количестве отрезков
разбиения). И, естественно, чем больше более мелких промежуточных отрезков мы
рассмотрим, тем будет выше точность.




Поставим перед собой следующую
задачу: пусть нам требуется приближенно вычислить определенный интеграл , где подынтегральная функция y=f(x) непрерывна на отрезке[a;
b].


Разобьем отрезок [a; b] на n
равных интервалов длины h точками . В этом случае шаг разбиения находим как и узлы определяем из равенства .


Рассмотрим подынтегральную функцию
на элементарных отрезках .


Возможны четыре случая (на рисунке
показаны простейшие из них, к которым все сводится при бесконечном увеличении
n):




На каждом отрезке заменим функцию y=f(x) отрезком прямой, проходящей через точки
с координатами и . Изобразим их на рисунке синими линиями:




В качестве приближенного значения
интеграла возьмем
выражение , то
есть, примем .


Давайте выясним, что означает в
геометрическом смысле записанное приближенное равенство. Это позволит понять,
почему рассматриваемый метод численного интегрирования называется методом
трапеций.


Мы знаем, что площадь трапеции
находится как произведение полу суммы оснований на высоту. Следовательно, в
первом случае площадь криволинейной трапеции приближенно равна площади трапеции
с основаниями и
высотой h, в последнем случае определенный интеграл приближенно равен площади трапеции с основаниями и высотой h,
взятой со знаком минус. Во втором и третьем случаях приближенное значение
определенного интеграла равно
разности площадей красной и синей областей, изображенных на рисунке ниже.




Таким образом, мы подошли к сути
метода трапеций, которая состоит в представлении определенного интеграла в виде суммы интегралов вида на каждом элементарном отрезке и в последующей приближенной
замене




. Оценка абсолютной погрешности
метода трапеций




Абсолютная погрешность метода
трапеций оценивается как




#include
"math.h"namespace std;func(double x)


{y = (3 * tan(x) + 2)
/ (x*x + 4 * x + 1);y;


}IntegeralBS(double a,
double b, int n)


{h = (b - a) /
n;result = (func(a) + func(b)) / 2;x;(int j = 1; j <= n - 1; j++)


//Мы объявлем здесь
ф-ии. А тело их в cpp


//Потому что
компилируются h файлы, а выполняются cpp файлыfunc(double x);IntegeralBS(double
a, double b, int n);.h


#include
"Calc.h"; //Подключаем файл с функциями для рассчета интеграла CalcIntegralForm {


//Подключаем библиотеки
(пространства имен) для работы с формой


using namespace
System;namespace System::Windows::Forms;


//Класс нашей формыref
class MyForm: public System::Windows::Forms::Form


{(); //Создание компонентов (элементов на форме)


//TODO: Add the
constructor code here


/// Clean up any
resources being used.


// ^ - указатель:
System::Windows::Forms::Label^ label1;: System::Windows::Forms::NumericUpDown^
numericUpDownA;: System::Windows::Forms::NumericUpDown^ numericUpDownB;::
System::Windows::Forms::Label^ label2;: System::Windows::Forms::NumericUpDown^
numericUpDownN;: System::Windows::Forms::Label^ label3;:
System::Windows::Forms::Button^ button1;: System::Windows::Forms::Label^
labelRes;:


///
::ComponentModel::Container ^components;


#pragma region Windows
Form Designer generated code


/// Required method
for Designer support - do not modify


/// the contents of
this method with the code editor.


//Создание
компонентовInitializeComponent(void)


{::ComponentModel::ComponentResourceManager^
resources = (gcnew
System::ComponentModel::ComponentResourceManager(MyForm::typeid));>label1 =
(gcnew System::Windows::Forms::Label());>numericUpDownA = (gcnew
System::Windows::Forms::NumericUpDown());>numericUpDownB = (gcnew
System::Windows::Forms::NumericUpDown());>label2 = (gcnew
System::Windows::Forms::Label());>numericUpDownN = (gcnew System::Windows::Forms::NumericUpDown());>label3
= (gcnew System::Windows::Forms::Label());>button1 = (gcnew
System::Windows::Forms::Button());>labelRes = (gcnew
System::Windows::Forms::Label());


(cli::safe_cast(this->numericUpDownA))->BeginInit();


(cli::safe_cast(this->numericUpDownB))->BeginInit();


(cli::safe_cast(this->numericUpDownN))->BeginInit();>SuspendLayout();


//
>label1->AutoSize = true;>label1->Location =
System::Drawing::Point(12, 9);>label1->Name =
L"label1";>label1->Size = System::Drawing::Size(16,
13);>label1->TabIndex = 0;>label1->Text = L"a:";


//
>numericUpDownA->DecimalPlaces = 5;>numericUpDownA->Location =
System::Drawing::Point(34, 7);>numericUpDownA->Maximum =
System::Decimal(gcnew cli::array< System::Int32 >(4) { 1000, 0, 0, 0
});>numericUpDownA->Minimum = System::Decimal(gcnew cli::array<
System::Int32 >(4) { 1000, 0, 0, System::Int32::MinValue
});>numericUpDownA->Name =
L"numericUpDownA";>numericUpDownA->Size =
System::Drawing::Size(68, 20);>numericUpDownA->TabIndex = 1;


//
>numericUpDownB->DecimalPlaces = 5;>numericUpDownB->Location =
System::Drawing::Point(34, 33);>numericUpDownB->Maximum =
System::Decimal(gcnew cli::array< System::Int32 >(4) { 2000, 0, 0, 0
});>numericUpDownB->Minimum = System::Decimal(gcnew cli::array<
System::Int32 >(4) { 1000, 0, 0, System::Int32::MinValue });>numericUpDownB->Name
= L"numericUpDownB";>numericUpDownB->Size =
System::Drawing::Size(68, 20);>numericUpDownB->TabIndex =
3;>numericUpDownB->Value = System::Decimal(gcnew cli::array<
System::Int32 >(4) { 15, 0, 0, 0 });


//
>label2->AutoSize = true;>label2->Location =
System::Drawing::Point(12, 35);>label2->Name =
L"label2";>label2->Size = System::Drawing::Size(16,
13);>label2->TabIndex = 2;>label2->Text = L"b:";


//
>numericUpDownN->Location = System::Drawing::Point(34,
59);>numericUpDownN->Maximum = System::Decimal(gcnew cli::array<
System::Int32 >(4) { 1000000, 0, 0, 0 });>numericUpDownN->Name =
L"numericUpDownN";>numericUpDownN->Size =
System::Drawing::Size(68, 20);>numericUpDownN->TabIndex = 5;>numericUpDownN->Value
= System::Decimal(gcnew cli::array< System::Int32 >(4) { 10000, 0, 0, 0
});


//
>label3->AutoSize = true;>label3->Location =
System::Drawing::Point(12, 61);>label3->Name =
L"label3";>label3->Size = System::Drawing::Size(16,
13);>label3->TabIndex = 4;>label3->Text = L"n:";


//
>button1->Location = System::Drawing::Point(12, 85);>button1->Name
= L"button1";>button1->Size = System::Drawing::Size(90,
23);>button1->TabIndex = 6;>button1->Text =
L"Рассчет";>button1->UseVisualStyleBackColor = true;>button1->Click
+= gcnew System::EventHandler(this, &MyForm::button1_Click);


//
>labelRes->AutoSize = true;>labelRes->Location =
System::Drawing::Point(12, 121);>labelRes->Name =
L"labelRes";>labelRes->Size = System::Drawing::Size(65,
13);>labelRes->TabIndex = 7;>labelRes->Text = L"Результат:
";


//
>AutoScaleDimensions = System::Drawing::SizeF(6, 13);>AutoScaleMode =
System::Windows::Forms::AutoScaleMode::Font;>ClientSize =
System::Drawing::Size(216, 152);>Controls->Add(this->labelRes);>Controls->Add(this->button1);>Controls->Add(this->numericUpDownN);>Controls->Add(this->label3);>Controls->Add(this->numericUpDownB);>Controls->Add(this->label2);>Controls->Add(this->numericUpDownA);>Controls->Add(this->label1);>FormBorderStyle
= System::Windows::Forms::FormBorderStyle::Fixed3D;>Icon =
(cli::safe_cast(resources->GetObject(L"$this.Icon")));>MaximizeBox
= false;>Name = L"MyForm";>Text = L"Integral";


(cli::safe_cast(this->numericUpDownA))->EndInit();


(cli::safe_cast(this->numericUpDownB))->EndInit();


(cli::safe_cast(this->numericUpDownN))->EndInit();>ResumeLayout(false);>PerformLayout();


//Это основной расчет:
System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {a =
(double)numericUpDownA->Value;b = (double)numericUpDownB->Value;(b >
a)


{n =
(int)numericUpDownN->Value;result = IntegeralBS(a, b, n);>Text =
result.ToString();


{::Show ("Неверно заданы пределы интегрирования (a должно быть меньше b)");


#include
"MyForm.h"namespace CalcIntegralForm;


[STAThreadAttribute]
//Атрибут указывает, что программа будет начинаться с метода main (точка
входа)main(array ^args)


// Application - это
класс приложения::EnableVisualStyles(); //Включаеям визуальные стили (форма
рисовалась)::SetCompatibleTextRenderingDefault(false); //Текст обрабатывает с
помощью.net


// Создаем экземпляр формы (этого
класса MyForm) и передаем эту форму в приложение и оно её рисует


//gcnew создание
экземпляра класса::Run(gcnew MyForm());0;


Таблица 1. Результат выполнения программы:




Для написания данной программы я
использовала язык C++ и среду программирования Visual Studio Community 2015. C++- чрезвычайно мощный
язык, содержащий средства создания эффективных программ практически любого
назначения, от низкоуровневых утилит и драйверов до сложных программных
комплексов. Visual Studio
Community 2015 - это полнофункциональная интегрированная среда разработки. Эта среда программирования
имеет ряд преимуществ. Мощные, эффективные возможности для кодирования,
инструментами кроссплатформенных разработок для Windows. В ней находится
большое количество различных библиотек, в которых содержится множество полезных
функций. Также, здесь очень удобно работать с графическим интерфейсом. Это
осуществлено с помощью программная платформа, Visual Studio.NET Framework.
Данные преимущества существенно облегчают процесс написания программы.






Похожие работы на - Нахождение значения определенного интеграла с помощью метода трапеций в C++ Курсовая работа (т). Информационное обеспечение, программирование.
Лабораторная Работа На Тему Опытная Проверка Расчета Нелинейных Цепей
Контрольная работа по теме Статистико-экономический анализ валового регионального продукта РФ
Контрольная Работа По Алгебре 10 11
Сочинение Материнская Любовь Текст Селиверстовой
Эссе По Обществознанию На 6 Баллов
Гдз По Алгебре 9 Макарычев Контрольные Работы
Контрольная работа по теме Озоновые дыры
Эссе На Тему Моя Профессия Повар
Эссе На Тему Мангилик Ел
Сочинение На Тему Отдых Летом
Реферат: М.М.Сперанский-реформатор
Сочинение: Что я люблю и чего не принимаю в Базарове
Реферат по теме Логика научного исследования
Эссе Отбасылық Құндылық
Курсовая работа по теме Параскаридоз лошадей и меры борьбы с ним в хозяйстве
Контрольная Работа По Русскому Языку 2 Часть
Курсовая работа по теме Производство колбас
Реферат На Тему Сознание
Лечебный Массаж Hgb Бронхите Реферат
Дипломная работа по теме Очистка операционной системы от следов удалённых приложений
Курсовая работа: Разработка функциональной схемы, алгоритма процесса идентификации плоских деталей произвольной формы акустической локационной системы
Похожие работы на - Життя та творчість Брейгеля - художника епохи Відродження
Похожие работы на - Жилой дом переменной этажности по ул. Ярославская

Report Page