Скачать презентацию Алгоритмы численных методов Логические основы алгоритмизации Лекция 4 Скачать презентацию Алгоритмы численных методов Логические основы алгоритмизации Лекция 4

Лекция 4. Алгоритмы численных метод.pptx

  • Количество слайдов: 19

Алгоритмы численных методов. Логические основы алгоритмизации Лекция 4 Алгоритмы численных методов. Логические основы алгоритмизации Лекция 4

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

Пример линейной интерполяции Простейшим и часто используемым видом локальной интерполяции является линейная интерполяция. Она Пример линейной интерполяции Простейшим и часто используемым видом локальной интерполяции является линейная интерполяция. Она состоит в том, что заданные точки Р(xi, yi) (i=0, 1, . . . , n) соединяются прямолинейными отрезками, и функция f(x) приближается к ломаной с вершинами в данных точках.

Пример кода для линейной интерполяции static double interpolate(double x 0, double y 0, double Пример кода для линейной интерполяции static double interpolate(double x 0, double y 0, double x 1, double y 1, double x) { return y 0 * (x - x 1) / (x 0 - x 1) + y 1 * (x - x 0) / (x 1 x 0); } Пояснения: в виде параметров задаются значения двух известных аргументов и результатов функций (соответственно x 0, x 1 и y 0, y 1), а также значение аргумента (x), для которого необходимо осуществить интерполяцию.

Логические основы алгоритмизации Важной составляющей алгоритмов являются логические условия. Вычисление значений логических условий происходит Логические основы алгоритмизации Важной составляющей алгоритмов являются логические условия. Вычисление значений логических условий происходит в соответствии с аксиомами алгебры логики. Начало исследований в области формальной логики было положено работами Аристотеля в IV в. до н. э. Однако математические подходы к этим вопросам впервые были указаны Джорджем Булем, который положил в основу математической логики алгебру логики (в честь ее создателя алгебру логики называют булевой алгеброй, а логические значения – булевыми). Алгебра логики используется при построении основных узлов ЭВМ – шифратора, дешифратора, сумматора. 5

Алгебра логики оперирует с высказываниями. Под высказыванием понимают повествовательное предложение, относительно которого имеет смысл Алгебра логики оперирует с высказываниями. Под высказыванием понимают повествовательное предложение, относительно которого имеет смысл говорить, истинно оно или ложно. Например, выражение «Расстояние от Москвы до Киева больше, чем от Москвы до Тулы» истинно, а выражение « 4 < 3» – ложно. Высказывания принято обозначать большими буквами латинского алфавита: А, В, С. . . X, Y и т. д. Если высказывание С истинно, то пишут С = 1 (С=t, true), а если оно ложно, то С = O (С = f, false). В алгебре высказываний над высказываниями можно производить определенные логические операции, в результате которых получаются новые высказывания. Истинность полученных высказываний зависит от истинности исходных высказываний и использованных для их преобра зования логических операций. 6

Для образования новых высказываний наиболее часто используются логические операции, выражаемые словами «не» , «или» Для образования новых высказываний наиболее часто используются логические операции, выражаемые словами «не» , «или» . Конъюнкция (логическое умножение). Соединение двух (или не скольких) высказываний в одно с помощью союза И (AND) называется операцией, логического умножения, или конъюнкцией. Эту операцию принято обозначать знаками «/, &» или знаком умножения «х» . Слож ное ысказывание А & В истинно только в том случае, в когда истинны оба входящих в него высказывания. Истинность такого высказывания задается следующей таблицей: 7 А false true В false true А&В false true

Дизъюнкция (логическое сложение). Объединение двух (или не скольких) высказываний с помощью союза ИЛИ (OR) Дизъюнкция (логическое сложение). Объединение двух (или не скольких) высказываний с помощью союза ИЛИ (OR) называется опе рацией логического сложения, или дизъюнкцией. Эту операцию обозна чают знаками «|, v» или знаком сложения «+» . Сложное высказывание A v В истинно, если истинно хотя бы одно из входящих в него высказыва ний. аблица истинности для Т логической суммы высказываний имеет вид: А false true В false true Av. B false true Axor. B false true false В последнем столбце данной таблицы размешены результаты модифицированной операции ИЛИ – ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR), отличающееся от обычного ИЛИ последней строкой. 8

Инверсия (логическое отрицание). Присоединение частицы НЕ (NOT) к данному высказыванию называется операцией отрицания (инверсии). Инверсия (логическое отрицание). Присоединение частицы НЕ (NOT) к данному высказыванию называется операцией отрицания (инверсии). Она обозначается (или )читается не А. Если высказывание А истинно, то В ложно, и наоборот. Таблица истинности в этом случае имеет вид: А А false true false Помимо операций И, ИЛИ, НЕ в алгебре высказываний существует ряд других операций. Например, операция эквиваленции (эквивалент ности) А ~ В ( или А = В, A eqv В), которая имеет следующую таблицу истинности: А false true 9 В false true A~B true false true

Другим примером может служить логическая операция имплика ции или логического следования (А > В. Другим примером может служить логическая операция имплика ции или логического следования (А > В. A imp В). объединяющая вы сказывания словами «если. . . , то» и имеющая следующую таблицу ис тинности: А false true В false true A->B true false true Высказывания, образованные с помощью логических операций, называются сложными. Истинность сложных высказываний можно установить, используя таблицы истинности. Например, истинность сложно го высказывания В определяется следующей таблицей: & 10

Логическое значение NULL. В некоторых ЯП (например, Visual Basic) для расширения применимости логических выражений Логическое значение NULL. В некоторых ЯП (например, Visual Basic) для расширения применимости логических выражений на те слу чаи, когда значение одного или нескольких логических аргументов не известны ли не определены, вводится и значение null (в дополнение к false и true). Как правило, такое значение присваивается компилятором логической переменной по умолчанию. С учетом значения null таблицы истинности основных логических операций приобретают вид, представленный в табл. 1. 3 и 1. 4. Таблица 1. 3. Операция отрицания (одноместная, унарная)

Таблица. Некоторые двуместные (бинарные) операции Таблица. Некоторые двуместные (бинарные) операции

Правила оформления текстов программ Правило 1, про количество операторов на одной строке Количество операторов Правила оформления текстов программ Правило 1, про количество операторов на одной строке Количество операторов на строке должно быть равно одному. Правильно: Неправильно: 13

Правило 2, про горизонтальные отступы Все операторы, входящие в составной оператор (напомина ем, составной Правило 2, про горизонтальные отступы Все операторы, входящие в составной оператор (напомина ем, составной оператор — это все, что между begin и end в языке программирования Turbo Pascal и между { } в языке программирования С), должны быть сдвинуты вправо (клавиша Tab). Кро ме ого, размер отступа т должен быть восемь символов. Неправильно: Правильно: В том, что размер отступа должен быть восемь, есть простой смысл и практическая польза. Если текст начинает залезать вправо за границу, то, стало быть, слишком велика вложенность блоков (не больше трех). 14

Правило 3, про ошибки Если функция может потенциально завершиться неудачно, то эту ситуацию следует Правило 3, про ошибки Если функция может потенциально завершиться неудачно, то эту ситуацию следует проверять. Неправильно: Правильно:

Если возникшая ошибка такова, что программа (подпрограмма) далее выполняться не может, условие проверки на Если возникшая ошибка такова, что программа (подпрограмма) далее выполняться не может, условие проверки на ошибку лучше писать так, чтобы оно было истинным, если ошибка произошла, а не наоборот, и алгоритм строить так, что бы избегать оборота else в операторе if. Помните, что из про граммы (подпрограммы) можно выйти в любом месте, не обяза тельно в конце ее текста. Неправильно: Правильно: Этот else может быть далеко от if, что уменьшает ясность программы. 16

Пример задания одномерного массива (для ЛР) Задание одномерного массива: int[] chisla=new int[10]; Random rand=new Пример задания одномерного массива (для ЛР) Задание одномерного массива: int[] chisla=new int[10]; Random rand=new Random(); //генератор случайный чисел for(int i=0; i<10; i++) { chisla[i]=rand. Next(a, b); //присвоение элементам //массива случайных чисел, //где а – минимальное значение // b максимальное }

Пример задания многомерного массива (для ЛР) int[] chisla=new int[10, 10]; Random rand=new Random(); for(int Пример задания многомерного массива (для ЛР) int[] chisla=new int[10, 10]; Random rand=new Random(); for(int i=0; i<10; i++) //цикл по строкам { for(int i=0; i<10; i++) //цикл по столбцам { chisla[i, j]=rand. Next(a, b); } }

Самостоятельная работа Интегрирование методом прямоугольников Интегрирование методом Симпсона Запись и чтение файлов на C# Самостоятельная работа Интегрирование методом прямоугольников Интегрирование методом Симпсона Запись и чтение файлов на C#