Skip to content

MAILabs-Education/FP_Lab1_ru

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FP: Lab 1. Вычисляем функционально

Учимся решать вычислительные задачи в функциональном стиле

Цель работы: Учимся работать с системой программирования и мыслить в функциональном стиле

Задание 0: Установите окружение для работы

Научитесь выполнять код на F#, преимущественно в интерактивном режиме. Все возможные варианты использования F# описаны на официальном сайте [смотрите USE в меню]. Рекомендованные варианты (в порядке предпочтения):

После того, как вы научились выполнять код, выполните задания ниже.

Задание 1: Ряд Тейлора

Напишите программу на F#, которая распечатает значения некоторой математической функции f(x), заданной вариантом задания в соответствии с таблицей, на заданном (в таблице) интервале [a,b]. Функцию необходимо вычислить тремя способами:

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

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

Вот как будет выглядеть таблица:

x Builtin Smart Taylor # terms Dumb Taylor # terms
a ... ... ... ...
...
b ... ... ... ...

Используйте формат вывода в функции printfn, чтобы напечатать таблицу красиво.

Функции и их разложения в ряд Тейлора определены в таблице. Используйте свой вариант задания в соответствии с номером в списке группы.

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

Задание 2: Численное решение трансцендентных уравнений

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

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

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages