Вычисление объёма шарнирной фигуры

Вычисление объема шарнирной фигуры. Выделение частей фигуры как отдельных тел вращения. Расчет определенных интегралов при помощи метода Ньютона-Котеса. Ознакомление с текстом программы на языке Pascal. Процедуры и функции, используемые в программе.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 12.01.2020
Размер файла 1,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Санкт-Петербургский политехнический университет Петра Великого

Институт прикладной математики и механики

Кафедра Теоретическая механика

КУРСОВАЯ РАБОТА

Вычисление объёма шарнирной фигуры

по дисциплине “Языки программирования”

Выполнил

студент гр.23632/1 А.О. Михайлова

Руководитель ассистент А.Ю. Панченко

Санкт-Петербург

2018

СОДЕРЖАНИЕ

Введение

1. Постановка задачи

2. Решение задачи

2.1 Разбиение фигуры на части и составление уравнений

2.2 Вычисление определённых интегралов

2.3 Программная реализация

Заключение

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

ВВЕДЕНИЕ

Тела вращения

Тела вращения -- объёмные тела, возникающие при вращении плоской геометрической фигуры, ограниченной кривой, вокруг оси, лежащей в той же плоскости [2]. Как известно из школьного курса алгебры и математического анализа, объём V тела, полученного путём вращения кривой, заданной уравнением , где a?x?b, вокруг оси абсцисс, может быть вычислен по следующей формуле:

(1).

В случае, когда кривая (a?x?b) вращается вокруг оси ординат, формула для вычисления объёма получаемого тела вращения примет вид

(2),

где ; - наименьшее и наибольшее значения функции на отрезке [a;b] соответственно.

Если же тело вращения получено в результате вращения кривой (a?x?b) вокруг прямой, отличной от обеих координатных осей, можно ввести новую систему координат, так чтобы данная прямая стала координатной осью. После этого, переписав уравнение кривой соответствующим образом, можно применить формулу (1) или (2).

Вычисление определённых интегралов. Семейство квадратурных формул Ньютона - Котеса. Формула 3/8

Как было сказано выше, вычисление объёма тела вращения может быть сведено к вычислению определённого интеграла. На практике могут возникать ситуации, когда непосредственное вычисление интеграла чересчур трудоёмко, неудобно или вовсе невозможно (например, подынтегральная функция может не поддаваться интегрированию в элементарных функциях). В таких случаях используют методы численного интегрирования, позволяющие найти приближённое значение определённого интеграла. Одним из таких методов является применение квадратурных формул Ньютон - Котеса.

Пусть - (n+1) раз непрерывно дифференцируемая функция, определённая на некотором отрезке [a;b]. Тогда эта функция может быть единственным образом представлена в виде

,

Где

- интерполяционный многочлен Лагранжа,

- остаточный член,

,

.

В случаях, когда отрезок [a;b] разбит на n частей точками, совпадающими с системой узлов интерполирования , замена переменной (h - шаг разбиения) приведёт полином Лагранжа к следующему виду:

.

Если изменить границы интегрирования, сопоставив значение , а значению - значение , и учесть, что , то это выражение можно использовать вместо в :

. (4)

Равенство (4) можно переписать в виде

, (5)

где (6).

Равенства (5) и (6) и определяют семейство квадратурных формул Ньютона - Котеса. носят название коэффициентов Котеса [1].

Положив в формулах (5) и (6) , получим выражение для вычисления определённого интеграла I некоторой функции по отрезку [a;b] по значениям данной функции в четырёх узлах:

. (7)

Формула (7) носит название формулы трёх восьмых. Главная часть ошибки для этой формулы определяется следующим равенством [3]:

. (8)

1. Постановка задачи

Задача данного проекта заключается в вычислении объёма шарнирной фигуры.

Рассматриваемая здесь фигура состоит из тел вращения - для вычисления её объёма фигуру можно разбить на несколько частей, каждая из которых получается вращением участка некоторой кривой вокруг некоторой оси. Записав уравнение для каждой из этих кривых и в прямоугольной декартовой системе координат таким образом, чтобы ось вращения совпадала с одной из координатных осей, можно вычислить объём соответствующего тела вращения по формуле (1) или (2) (см. с. 3).

Таким образом, задача вычисления объёма фигуры может быть разбита на следующие подзадачи:

1) выделение частей фигуры, которые можно рассматривать как отдельные тела вращения;

2) составление соответствующих уравнений для выделенных частей;

3) вычисление определённых интегралов по формулам (1), (2);

4) суммирование найденных объёмов;

5) вычитание из результата вычислений объёмов пересекающихся частей (если факт их пересечения не был учтён заранее).

Пункты 1) и 2) выполняются вручную. Пункты 3) и 4) реализованы путём программирования на языке Pascal.

2. Решение задачи

2.1 Разбиение фигуры на части и составление уравнений

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

1) голова:

a. верхняя часть;

b. нижняя часть;

2) шея;

3) плечевой пояс;

4) туловище:

a. верхняя часть (до талии);

b. нижняя часть;

5) рука:

a. плечо;

b. локоть;

c. предплечье;

d. запястье и кисть (кисть сжата в кулак);

6) нога:

a. бедро;

b. колено;

c. голень;

d. лодыжка;

e. стопа.

Полученные уравнения представлены в таблице.

Голова:

верх

низ

Шея

Примечание: здесь график изображён лишь по одну сторону от оси вращения.

Плечевой пояс

Примечание: здесь график изображён лишь по одну сторону от оси вращения.

Туловище:

верх

низ

1)

2)

Нога:

бедро

Примечание: здесь график изображён лишь по одну сторону от оси вращения.

колено

голень

Примечание: здесь график изображён лишь по одну сторону от оси вращения.

лодыжка

стопа

Рука:

плечо

локоть

предплечье

кисть

Примечание: в тех случаях, где графики симметричны, подразумевается их вращение вокруг оси симметрии - прямой .

Вычисление определённых интегралов

Для вычисления определённых интегралов в программе, написанной на Pascal, используется метод 3/8: каждый из отрезков интегрирования разбивается 1000 точек на 999 равных частей, что, согласно формуле (8), позволяет достичь высокой точности; далее для каждого отрезка разбиения применяется формула (7).

Программная реализация

Как уже упоминалось выше, программа, решающая задачу вычисления объёма фигуры, написана на языке программирования Pascal. В ней используется константа n=1000 (число точек, разбивающих каждый из отрезков интегрирования на равные части), а также целочисленная переменная i и ряд вещественных переменных: V, Head, Neck, Body, Arm, Hand, Leg, Foot, a, b, a1, b1, h, integral. Переменная V служит для хранения объёма всей фигуры, переменные Head, Neck, Body, Arm, Hand, Leg, Foot - для хранения объёмов отдельных её частей. Целочисленная переменная i и прочие вещественные переменные используются при вычислении определённых интегралов. В ходе выполнения программы создаётся текстовый документ, куда заносятся результаты вычислений, поэтому в число переменных входят также текстовая переменная doc и переменная line типа string. Взаимодействие с пользователем обеспечивает символьная переменная button.

Таким образом, раздел код программы начинается так:

program doll;

uses crt;

const n=1000;

var V,Head,Neck,Body,Arm,Hand,Leg,Foot,a,b,a1,b1,h,integral:real;

i:integer;

button:char;

doc: text;

line:string;

Программа содержит ряд процедур и функций.

Процедура ShowMenu выводит на экран меню, где пользователю предлагается выбрать одно из следующих действий: вывести объём всей фигуры и/или объём одной из её частей; изменить линейные размеры фигуры с сохранением существующих пропорций и пересчитать её объём.

Процедуры fillDoc и readDoc служат для заполнения текстового файла и вывода на экран его содержимого соответственно. Изменение линейных размеров фигуры с последующим пересчётом её объёма выполняется при помощи процедуры scale. В качестве примера приведём фрагмент программы, где описана процедура readDoc:

шарнирный фигура интеграл программа

procedure readDoc;

begin;

assign (doc,'Calculation results.txt');

reset(doc);

while not Eof(doc) do

begin;

readln(doc,line);

writeln(line);

end;

close(doc);

end;

Функции, включённые в программу, задают уравнения функций, приведённых в таблице на с.6-10. Вот одна из них, описывающая верхнюю часть головы:

function uhead(y:real):real;

begin;

uhead:=(163.84-sqr(y-95.8));

end;

В основной части программы в первую очередь производятся все вычисления. В приведённом ниже фрагменте рассчитывается объём головы и его значение прибавляется к суммарному объёму:

begin;

V:=0;

//head volume

a:=95.8-6.4*sqrt(2);

b:=108.6;

h:=(b-a)/(n-1);

a1:=a;

b1:=a+h;

integral:=0;

while a1<b do begin;

integral:=integral+(uhead(a1)+3*uhead(2*a1/3+b1/3)+3*uhead(a1/3+2*b1/3)+uhead(b1))*(b1-a1)/8;

a1:=b1;

b1:=a1+h;

end;

V:=V+pi*integral;

a:=70.3;

b:=95.8-6.4*sqrt(2);

h:=(b-a)/(n-1);

a1:=a;

b1:=a+h;

integral:=0;

while a1<b do begin;

integral:=integral+(lhead(a1)+3*lhead(2*a1/3+b1/3)+3*lhead(a1/3+2*b1/3)+lhead(b1))*(b1-a1)/8;

a1:=b1;

b1:=a1+h;

end;

V:=V+pi*integral;

Head:=pi*integral;

Затем посредством вызова процедуры fillDoc создаётся и заполняется текстовый документ, после чего на экран выводится пользовательское меню. Дальнейшее выполнение программы зависит от действия, выбираемого пользователем:

fillDoc;

{------------------------------------------------------------------------------------------------------------------------------}

repeat

writeln;

ShowMenu;

readln (button);

case button of

'1':begin;

clrscr;

writeln ('Объём головы: ',Head,' мм3');

end;

'2':begin;

clrscr;

writeln('Объём шеи: ',Neck,' мм3');

end;

'3':begin;

clrscr;

writeln('Объём туловища: ',Body,' мм3');

end;

'4':begin;

clrscr;

writeln('Объём руки: ',Arm,' мм3');

end;

'5':begin;

clrscr;

writeln('Объём кисти: ',Hand,' мм3');

end;

'6':begin;

clrscr;

writeln('Объём ноги: ',Leg,' мм3');

end;

'7':begin;

clrscr;

writeln('Объём стопы: ',Foot,' мм3');

end;

'8':begin;

clrscr;

writeln('Объём всей фигуры: ',V,' мм3');

end;

'9':begin;

clrscr;

readDoc;

end;

's':scale;

end;

until button='q';

end.

Заключение

Таким образом, созданная программа вычисляет объём шарнирной фигуры при помощи метода Ньютона - Котеса вычисления определённых интегралов. Учёт того факта, что объём тела пропорционален , где под понимаются его - тела - линейные размеры, позволяет скорректировать найденное значение объёма в случае изменения размеров фигуры с сохранением всех существующих пропорций.

Результаты вычислений имеют практическое применение: они позволяют рассчитать минимальное количество материала, необходимого для изготовления фигуры, а значит, и затрат на этот материал; оценить изменение требуемого количества материала и соответствующих затрат и т.д.

Список литературы

1. Вержбицкий В.М. Основы численных методов: Учебник для вузов/В.М. Вержбицкий. - 2-е изд., перераб. - М.: Высш. Шк., 2005. - 840 с.

2. dic.academic.ru - URL: https://dic.academic.ru/dic.nsf/ruwiki/453884

3. http://info.alnam.ru - URL: http://info.alnam.ru/book_r_math.php?id=472

Размещено на Allbest.ru

...

Подобные документы

  • Вычисление площади геометрических фигур с помощью интегрального исчисления. Основные свойства площади как функции. Разработка алгоритма работы программы на языке Object-Pascal в среде Delphi. Текст программы, порядок ее запуска и полученный результат.

    курсовая работа [281,0 K], добавлен 06.06.2013

  • Написание программы для вычисления функции f(x), изображенной на графике, используя оператор if. Построение графика функции. Составление программы, вычисляющей сумму 101 из последовательно расположенных нечетных чисел. Нахождение корней системы уравнений.

    контрольная работа [694,4 K], добавлен 07.08.2013

  • Разработка программы в среде Delphi, показывающей на экране возможные варианты выбранной шахматной фигуры для хода. Спецификация исходных данных и функций программы, тексты разработанных классов приложения и их ключевые методы, тестирование программы.

    курсовая работа [69,4 K], добавлен 19.10.2010

  • Среда для разработчиков программного обеспечения и баз данных. Компоненты, используемые в программе. Использование программы в операционной системе Windows 98/2000/2003/XP. 3D просмотр фигуры, возможность ее поворота в любые стороны на осях x, y, z.

    курсовая работа [188,1 K], добавлен 15.02.2016

  • Методы и алгоритмы вычисления определенных интегралов: метод трапеций и метод Симпсона (метод парабол). Оформление функции вычисления заданного определённого интеграла на Visual Basic 6.0. Программный код функции. Создание приложения для вычисления.

    курсовая работа [483,6 K], добавлен 25.06.2014

  • Создание программы, вычисляющей значение функции, заданной таблично при помощи интерполяционного полинома Лагранжа на языке Pascal с комментариями. Диалоговое взаимодействие пользователя с программой, модули для ввода и вывода данных и основных действий.

    курсовая работа [49,2 K], добавлен 02.11.2011

  • Сущность и особенности применения метода средних треугольников. Порядок расчета по методу трапеций и Ньютона-Котеса. Формула Чебышева и значения узлов ее квадратуры. Составление блок-схемы программы и ее основных процедур различными численными методами.

    курсовая работа [482,7 K], добавлен 03.01.2010

  • Особенности печати по описанию изображения шахматной позиции, содержащее поле, разбитое на клетки подходящего размера, внутри которых записано название фигуры и её цвет. Определение возможных ходов фигур. Перемещение фигуры на возможное для неё место.

    курсовая работа [1,0 M], добавлен 21.06.2013

  • Решение трансцендентного уравнения методом Ньютона. Построение графика функции. Блок-схема алгоритма решения задачи и программа решения на языке Pascal. Вычисление значения интеграла методом трапеции, блок-схема алгоритма, погрешности вычисления.

    задача [163,4 K], добавлен 16.12.2009

  • Программирование и структура программы на языке Turbo Pascal и MS Visual C++6.0. Вычисление площади круга. Реализация программы в системе Turbo Pascal и MS VISUAL C++6.0 для Windows. Структура окна ТРW. Сохранение текста программы в файле на диске.

    лабораторная работа [3,7 M], добавлен 22.03.2012

  • Описание методов вычисления определителя матрицы. Математическое решение задачи с применением метода исключения Гаусса с выбором главного элемента. Схема алгоритма программы, описание переменных и структур данных, текст программы на языке Pascal.

    курсовая работа [438,8 K], добавлен 16.02.2011

  • Общие сведения об алгоритмическом языке PASCAL. Схема алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Применение метода простой итерации, метода решения полинома на языке PASCAL.

    курсовая работа [41,5 K], добавлен 15.03.2012

  • Этапы написания программы на четырех языках программирования (Turbo Pascal 7.0, Borland C++ 3.11, Delphi 7, Builder C++ 6.0), которая выводит на экран имя и фамилию студента, используя стандартные средства графики и простейшие геометрические фигуры.

    контрольная работа [1,4 M], добавлен 05.06.2010

  • Разработка программы на языке Visual Basic для расчёта составной конструкции системы двух тел. Написание программы для расчёта реакций составной конструкции при шарнирной и скользящей заделке. Исследование зависимости реакции опоры от направления силы.

    курсовая работа [34,5 K], добавлен 16.09.2010

  • Разработка программы, применяемой для интерполяции таблично заданной функции методом Ньютона. Метод структурного программирования для облегчения написания и отладки программы, повышения ее наглядности, читаемости. Применение языка программирования Pascal.

    курсовая работа [371,8 K], добавлен 05.01.2010

  • Разработка программы в Turbo C++ Explorer для вычислений геометрических данных фигуры. Атрибуты объекта и представление данных в программе. Подпрограмма создания набора данных. Реализация защиты и правильности ввода данных и дополнительных функции.

    курсовая работа [5,9 M], добавлен 22.02.2014

  • Реализация базовых геометрических преобразований: вращения, переноса, отражения и масштабирования. Рекомендации по работе с программой. Ввод в соответствующие поля приложений значений данных по каждой из осей координат для выполнения операции с фигурой.

    контрольная работа [642,0 K], добавлен 21.01.2015

  • MPI - библиотека передачи сообщений на языке программирования C/C++, ее переносимость, стандартизация, эффективная работа, функциональность. Форматы фактических вызовов MPI. Метод прямоугольников для приближенного вычисления определенного интеграла.

    курсовая работа [286,0 K], добавлен 20.06.2012

  • Построение интерполяционного полинома Ньютона по значениям функции в узлах согласно методу Лагранжа. Составление алгоритмов решения задачи, их реализация на программном уровне на языке Turbo Pascal. Представление результатов работы программы Polinom.

    курсовая работа [667,9 K], добавлен 01.10.2010

  • Разработка алгоритма и написание программы на языке Turbo Pascal. Построение электронных таблиц, отражающих расчеты за услуги фирмы. Вычисление значения функций и построение их графиков в Excel в одной системе координат. Порядок создания Web-страниц.

    курсовая работа [1,9 M], добавлен 18.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.