Программа вычисления длины дуги кривой


Опр. Кривой на плоскости называется множество геометрических точек, координаты которых (x,y) связаны непрерывной функциональной зависимостью.

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

Варианты задания (формального описания) дуг.

1. Явная функциональная зависимость одной декартовой координаты от другой: y=f(x) для xÌ [xa,x b] (1)

или x=f(y) для yÌ [ya, yb]

2. Явная функциональная зависимость одной полярной координаты от другой: r=f(j) для jÌ [ja, j b] (2)

или j=f(r) для rÌ [ra, rb],

например: r=(j+5)2 или j=Ln(r+1) (3)

Переход от полярных к декартовым координатам реализуется формулами: x=r Cos(j) y=r Sin(j). Для приведенных примеров:

x=(j+5)2 Cos(j) x=r Cos(Ln(r+1) ) (4)

y=(j+5)2 Sin(j) y=r Sin(Ln(r+1) )

3. Параметрическая зависимость декартовых координат

x=f(t)

y=y(t) для свободного параметра tÌ [ta, tb], (5)

Примерами могут служить формулы (4), где свободным параметром являются j и r .

4. Параметрическая зависимость полярных координат

r=f(t)

j=y(t) для свободного параметра tÌ [ta, tb], (6)

например:

r=t et

j=t+Lnt для tÌ [0.1, 2.07], (7)

которую можно преобразовать к декартовой параметрической форме

x=t et Cos(t+Ln t)

y=tet Sin(t+Ln t) для tÌ [0.1, 2.07]. (8)

 
 

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

 

Рис.1. Геометрически построения, поясняющие алгоритм вычисления

длины дуги кривой заданной в декартовых координатах.

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

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

Диалектика: качественное свойство МО подменяется большим количеством упорядоченных простых элементов.

Вопросы точности соответствия МО и его цифровой модели рассматриваются в специальном разделе математики «Численные методы».

Оцифровка дуги кривой основана на введении системы упорядоченных точек {(x1, y1), (x2,y2), .., (xi, yi),... (xn,yn)} (от начала к концу дуги), которые принадлежат кривой и последовательно соединены прямолинейными отрезками. Длина дуги кривой оценивается величиной Sn равной сумме длин этих отрезков:. Длина отрезка от точки (xi, yi) до (xi+1, yi+1) вычисляется как гипотенуза соответствующего прямоугольного треугольника (на рис.1 это треугольник СYiYi+1), т.е

n-1

Sn= ∑√(xi+1–xi)2 + (f(xi+1)–f(xi))2

i=1

Пример: вычислить длину дуги кривой y=xSin(x2+5)+x для a≤x≤b.

Для удобства вычислений, область определения обычно разбивается равномерной сеткой из N узлов: xi=a+∆x(i-1), где i=1,2,...n и ∆x=(b-a)/(n-1)

Исходными данными для программы являются величины: a, b, N.

 

Program DUGA;

Var a, b, S, dx, y1, y2, x1, x2: real; i, N: integer;

Begin

a:=1; b:=3; N:=10; {Программное, т.е. реализуемое операторами прямого

присвоения соответствующих констант, задание

исходных данных }

dx:=(b-a)/(N-1); {вычисление шага сетки узлов по Х }

s:=0; {очистка (обнуление содержимого) переменной S, в которой

будет накапливаться сумма длин отрезков }

for i:=1 to N-1 do {цикл перебора всех отрезков ломаной i-номер левой

точки обрабатываемого отрезка}

begin

x1:=a+dx*(i-1); y1:=x1*Sin(x1*x1+5)+x1; {x1 y1 – декартовые

координаты левого конца отрезка }

x2:=x1+dx; y2:=x2*Sin(x2*x2+5)+x2; {x2 y2 – декартовые

координаты правого конца отрезка }

s:=s+Sqrt(sqr(y2-y1)+dx*dx); {добавляем к S длину отрезка}

end;

writeln(N:5,' s=',s); {печать результата}

End.

Для оценки точности определения искомой длины дуги, воспользуемся приемом «Численного эксперимента», который широко применяется в инженерной практике и сводится к проведению серии вычислений одной и той же характеристики при разных значениях параметров влияющих на погрешность расчетов. В нашем случае этим параметром является количество узлов сетки N.

Результаты численных экспериментов для пяти значений параметра N при a=1 и b=3:

10 s= 1.17746052767470E+0001

40 s= 1.24628784903471E+0001

80 s= 1.24765592828335E+0001

320 s= 1.24807045137568E+0001

640 s= 1.24809088294569E+0001

Вывод: с точностью до трех значимых цифр искомая длина дуги оценивается числом 12.5 .

Массивы переменных

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

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

Опр.Конструктивный метод образования новых типов информационных объектов основан на упорядоченном объединении (плотном размещении «один за другим») некоторого количества, стандартных или ранее введенных, информационных объектов в единое целое, с наделением новообразованных структур уникальным именем.

Опр. Класс информационных объектов ARRAY (массив) образуется путем упорядоченного объединения нескольких однотипных информационных объектов в единое целое.

Определяющие структурные характеристики информационных объектов класса ARRAY:

1. однотипность объединяемых элементов, т.е. в единое целое могут быть объединены несколько переменных одного и того же стандартного типа (integer, real, word и т.д.) или типа, предварительно созданного самим пользователем (см. ниже),

2. упорядоченность объединяемых элементов, т.е. каждому элементу присущ (может быть автоматически вычислен) порядковый номер,

3. количество объединяемых элементов и плотность их размещения: позволяют автоматически вычислять:

- необходимые размеры оперативной памяти для всего объекта,

- адрес каждого из элементов сложно структурированного объекта.

Каждый информационный объект класса ARRAY наделяется уникальным именем (идентификатором), которое является адресом первого байта первого элемента объекта.

Имена отдельных элементов, объединенных в массив, являются составными и включают: собственно имя массива и порядковый номер (индекс) элемента в этом массиве.

Математические аналоги вводимого понятия массив: последовательности, таблицы, векторы, матрицы.

Для использования переменных класса ARRAY необходимо предварительно сообщить программе-транслятору – как устроены эти информационные объекты, т.е. дать описание их структуры.

Опр. Оператор TYPE описывает структуру ново образуемых объектов и присваивает этой структуре уникальное имя (идентификатор).

 

Синтаксисописательного оператора TYPE для объектов класса ARRAY:

TYPE Имя1= ARRAY[N1..N2] OF Имя2;

где:

TYPE - ключевое слово, за которым обязательно следует один или несколько пробелов: символов - разделителей,

Имя1 - имя (идентификатор), которым будет называться тип (структура) создаваемых программистом объектов обработки,

= служебный символ-разделитель (избыточный синтаксис языка Pascal),за которым желателен разделитель-пробел,

ARRAY- служебное слово - название класса ново образуемых переменных,

[N1..N2] – в квадратных скобках, через символы-разделители (две точки), указываются вещественные константы, задающие интервал изменения индексов, т.е. числовых имен, которые присваиваются отдельным элементам массива, общее количество элементарных объектов обработки объединяемых в единое целое равно (N2 - N1 +1),

OF – служебное слово-разделитель (избыточный синтаксис языка Pascal), за которым желательно ставить разделитель-пробел,

Имя2 - стандартное или ранее описанное имя (название) типа элементарного объекта обработки.

Примеры:

Type Tvec= array[1..4] of real;

Type Tmatr= array[0..7] of Tvec;

Звуковая транскрипция этих операторов:

- назвать именем Tvec, новую структуру информационных объектов, образованную объединением в единое целое четырех информационных объектов стандартного типа REAL,

- назвать именем Tmatr, новый тип объектов обработки, образованный объединением в единое целое восьми ранее описанных элементов типа Tvec.

Для описания переменных нового типа используется стандартный оператор Var.

Пример: Var PP, sss: Tmatr;

V, V1: Tvec;

Стандартный синтаксис языка Pascal включает только две операции для обработки сложно структурированных информационных объектов это:

- операция пересылки, т.е. побитного копирования содержимого одной переменной в другую однотипную ей переменную, например:

PP:=sss; или v1:=v;

- операция побитного сравнения (на полное совпадение) содержимого двух однотипных (одной структуры) переменных, например:

Var b: boolean; . . . . b:= PP = sss;

Все прочие содержательные операции обработки: арифметика, ввод-вывод, сравнение больше/меньше и т.д., применяются только к конкретным элементам сложно структурированных переменных.

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

Примеры:

Var k: integer; a, b : real;

. . . . . . .

a:=V[2]+b; {сложить число из второго элемента массива V с числом b,

результат поместить в переменную a}

k:=1;

V[k*k]:=b; {вычислить индекс, т.е. номер элемента массива V (он будет

равен 1) и внести в соответствующий элемент массива

значение из переменной b}

V[2]:= V[k+3] + V[k]; {сложить числа, находящиеся в 4-ом и 1-ом

элементах массива V и поместить результат во

второй элемент этого же массива}



Дата добавления: 2021-12-14; просмотров: 353;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.019 сек.