Разработка и анализ линейных алгоритмов для вычисления вариантов сложной функции

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    309,04 Кб
  • Опубликовано:
    2016-03-19
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка и анализ линейных алгоритмов для вычисления вариантов сложной функции

Содержание

1. Контрольная работа №1 на тему: «Изучение линейных алгоритмов»

2.      Контрольная работа №2 на тему: «Алгоритмы ветвления или выбора»

3. Контрольная работа №3 на тему: «Циклы на примере вычисления определённого интеграла с заданной точностью»

Введение

Современные математические пакеты можно использовать и как обычный калькулятор, и как средства для упрощения выражений при решении каких-либо задач, и как генератор графики или даже звука! Стандартными стали также средства взаимодействия с Интернетом, и генерация HTML-страниц выполняется теперь прямо в процессе вычислений. Теперь можно решать задачу и одновременно публиковать для коллег ход ее решения на своей домашней странице.

Рассказывать о программах математического моделирования и возможных областях их применения можно очень долго, но мы ограничимся лишь кратким обзором ведущих программ, укажем их общие черты и различия. В настоящее время практически все современные CAE-программы имеют встроенные функции символьных вычислений. Однако наиболее известными и приспособленными для математических символьных вычислений считаются Maple, MathCad, Mathematica и MatLab. Но, делая обзор основных программ символьной математики, мы укажем и на возможные альтернативы, идеологически схожие с тем или иным пакетом-лидером.

Так что же делают эти программы и как они помогают математикам? Основу курса математического анализа в высшей школе составляют такие понятия, как пределы, производные, первообразные функций, интегралы разных видов, ряды и дифференциальные уравнения. Тому, кто знаком с основами высшей математики, наверняка известны десятки правил нахождения пределов, взятия интегралов, нахождения производных и т.д. Если добавить к этому то, что для нахождения большинства интегралов нужно также помнить таблицу основных интегралов, то получается поистине огромный объем информации. И если какое-то время не тренироваться в решений подобных задач, то многое быстро забывается и для нахождения, например, интеграла посложнее придется уже заглядывать в справочники. Но ведь взятие интегралов и нахождение пределов в реальной работе не является главной целью вычислений. Реальная цель заключается в решении каких-либо проблем, а вычисления - всего лишь промежуточный этап на пути к этому решению.

С помощью описываемого ПО можно сэкономить массу времени и избежать многих ошибок при вычислениях. Естественно, CAE системы не ограничиваются только этими возможностями, но в данном обзоре мы сделаем упор именно на них.

Отметим только, что спектр задач, решаемых подобными системами, очень широк:

·    проведение математических исследований, требующих вычислений и аналитических выкладок;

·              разработка и анализ алгоритмов;

·              математическое моделирование и компьютерный эксперимент;

·              анализ и обработка данных;

·              визуализация, научная и инженерная графика;

·              разработка графических и расчетных приложений.

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

1. Контрольная работа №1 на тему: «Изучение линейных алгоритмов»

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

Задание: Найти массу заготовки заданной формы.

Дано:

d= 15 (диаметр)

L=50 (длина)

p=1000 кг/м3

Анализ задачи:

Рисунок 1 - Фигура цилиндр

V= (Пd2)/4*L (1)

m= p*v (2)

где m - масса (кг)

p - плотность (кг/м3)

Рисунок 2 - Тестовый пример для проверки алгоритма в Smath Studio

Таблица 1 - Тестовый пример для проверки алгоритма в электронной таблице Microsoft Excel


Рисунок 3 - Алгоритм решения задачи

Таблица 2

Спецификация к алгоритму

Наименование показателя

Обозначение в алгоритме

Обозначение в программе

Ед. Измерения

Тип

Статус

Диапазон

1. Плотность материала детали

p

P

Кг/м3

Целое

Входная

0,01 - 105

2. Диаметр детали

d

D

м

Целое

Входная

1-50

3. Длина детали

L

L

м

Целое

Входная

1-102

4. Объём детали

V

V

Не целое

Выходная

1-105

5. Масса детали

m

M

Кг

Не целое

Выходная

1-108


Результат работы:

Выполнен линейный алгоритм для решения задачи, разработаны тестовые примеры для его проверки. Использованы в работе текстовый процессор, табличный редактор и программа для математических расчётов.

Введение

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

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

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

Каждый вспомогательный алгоритм описывает способ решения некоторой вспомогательной задачи или даже общий способ решения некоторого класса вспомогательных подзадач.

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

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

Условный оператор IF лог. выр. THEN оператор 1 ELSE оператор2;

IF лог. выражение THEN оператор;

Повторение (циклы, итерации)

а) Делать «пока» WHILE условие продолжения DO оператор;

б) Делать «пока не» REPEAT оператор UNTIL условие завершения;

в) Цикл с перебором FOR К:=В1 ТО В2 DO оператор;

FOR K:=B2 DOWNTO B1 DO оператор;

Выбор (переключатель) CASE условие OF, ... Nk: оператор 1;

Ni, ... Nm: оператор п;

END;

В языке FoxBASE эти конструкции реализованы в виде:

Условный оператор IF лог. выражение

Операторы 1 [ ELSE

Операторы 2 ] ENDIF

Цикл DO WHILE выражение

операторы

ENDDO

Выбор (переключатель) DO CASE

CASE лог. выражение 1

операторы

CASE лог. Выражение 2

Операторы

CASE лог. Выражение п

Операторы [OTHERWISE

операторы] ENDCASE

Каждая структура характеризуется единственной точкой передачи управления в структуру (единственный вход) и единственной точкой выхода из структуры.

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

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

Структурность программы зависит от используемого языка программирования. Современные программные средства разработки программ являются «наилучшими» языками структурного программирования. Из распространенных языков программирования самыми подходящими считаются Паскаль, Basic, FoxBASE. Структурное программирование, например, на языке Ассемблер почти невозможно. Сам факт использования языка Ассемблера указывает на то, что программа написана в основном в терминах машинного языка.

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

Важно, чтобы программист, еще только приступая к программированию логики, мыслил в терминах основных базовых структурных конструкций. [4]

алгоритм таблица программа интеграл

2. Контрольная работа №2 на тему: «Алгоритмы ветвления или выбора»

Рисунок 1 - Сечение трубы

Дано: 3 формы сечения прутка. Определить для каждой S сечения

Рисунок 2 - Квадрат

Пусть:

- труба; d - наружный диаметр трубы (15); k - толщина трубы (3);O - круг; d1 - Ø круга (внутри); 4 - квадрат; L - сторона квадрата (35).

Рисунок 3 - Алгоритм решения задачи

Рисунок 4 - Решение в Smath Studio (1)

Рисунок 5 - Решение в Smath Studio (2)

Рисунок 6 - Решение в Smath Studio (3)

2. Тестовый пример для решения в электронных таблицах

Таблица 1

Решение при F=0,1,4


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

Введение

SMáth Stúdio - бесплатная программа для вычисления математических выражений и построения графиков функций. Работа с интерфейсом программы напоминает работу с обычным листом бумаги, так как все математические выражения в ней записываются не в строчку текстом, а в графическом, удобном для человека, виде.

Первая публичная бета-версия программы была создана в 2005 году для карманных компьютеров на языке C#под платформу Microsoft.NET Compact Framework 1.0. На текущий момент SMath Studio имеет версии для нескольких платформ: КПК <https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%BC%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80>, коммуникаторов, смартфонов <https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B0%D1%80%D1%82%D1%84%D0%BE%D0%BD>, персональных компьютеров <https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80> на базе операционных систем <https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0> Windows <https://ru.wikipedia.org/wiki/Windows> и Linux <https://ru.wikipedia.org/wiki/Linux> и логически разделена на две программы: Handheld (карманная) и Desktop (настольная), которые соответствуют типу поддерживаемых платформ.

Возможности программы

·    Мультиязычный интерфейс (переведена на 22 языка: английский, немецкий, датский, нидерландский, испанский, французский, португальский, хорватский, сербский, греческий, турецкий, китайский упрощённый, китайский традиционный, чешский, венгерский, итальянский, польский, русский, болгарский, литовский, украинский);

·              Работа на устройствах с любым разрешением и ориентацией экрана (начиная с 240х240 пикселей и выше);

·              Развитая поддержка единиц измерения <https://ru.wikipedia.org/wiki/%D0%95%D0%B4%D0%B8%D0%BD%D0%B8%D1%86%D1%8B_%D0%B8%D0%B7%D0%BC%D0%B5%D1%80%D0%B5%D0%BD%D0%B8%D1%8F> (более двухсот встроенных, возможность создавать пользовательские);

·              Отображение дву- и трёхмерных графиков функций;

·              Возможность работы с файлами Mathcad <https://ru.wikipedia.org/wiki/Mathcad> (открытие и сохранение);

·              Поддерживается работа как с числами, так и с символами;

·              Работа со стандартными функциями программирования (if, for, while);

·              Поддерживается работа с параметрами и функциями (как встроенными, так и пользовательскими);

·              Всплывающее меню вставки встроеных функций и операторов при редактировании (как в визуальных средах программирования);

·              Поддержка следующих типов данных: системы, матрицы, векторы, комплексные числа <https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%81%D0%BD%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE>, дроби;

·              Работа с бесконечностью <https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C>;

·              Поддержка следующих операций и функций: сложение, вычитание, умножение (скалярное и векторное), деление, нахождение факториала, возведение в степень, извлечение корня, модуль, тригонометрические функции, обратные тригонометрические функции, гиперболические функции, обратные гиперболические функции, логарифмы, сигнатура и аргумент комплексного числа, определитель матрицы, транспонирование матриц, миноры матрицы, алгебраические дополнения матрицы, след матрицы, ранг, перевод комплексных чисел из алгебраического в тригонометрический вид, численное дифференцирование <https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B8%D1%84%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%86%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5> и символьное дифференцирование, численное интегрирование, поиск вещественных корней уравнений и другие. [5]

3. Контрольная работа №3 на тему: «Циклы, на примере вычисления определённого интеграла с заданной точностью»

Задание: Требуется вычислить площадь криволинейной фигуры, ограниченной функцией f(x), осью ОХ га отрезке от а до b.

Дано: f(x), a,b,n


а = 1

b = 2

Рисунок 1 - Вычисление определённого интеграла методом прямоугольников

Рисунок 2 - Расчёты при помощи математического пакета

Таблица 1. Ряды данных расчётов


Таблица 2. Исходные данные для расчётов


Рисунок 3 - Линейный алгоритм

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

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

1. В.А. Гриценко, Е.В. Белосевич, Е.К. Артищева, Математические методы в географии 2003. - 544 с.

. А.А.Самарский. Введение в численные методы М.: Наука, 1982.

. Ю.А. Шафрин. Информационные технологии. М., Лаборатория Базовых Знаний, 1998 - 400 с.

. В.А. Гольденберг. Введение в программирование. Библиотека школьника. Учебное пособие. Минск, "Харвест", 1997.

. Информация о SMath: [Электронный ресурс]

Похожие работы на - Разработка и анализ линейных алгоритмов для вычисления вариантов сложной функции

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!