Разработка и реализация численных алгоритмов. Полиномиальная интерполяция

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

?ты функций private static double dStep = 0, dKoef = 0;

1)Массивы представляющие сами функции и их аргументы private static string sFunc = "";

Интерфейсы функций:

1)Обработка входного интервала представленного private static double[] GetInterval(string str)

2)Вычисление оптимальных значений переменных х0, х1, …, хn private static double[] GetValuesX(double a, double b, int n)

3)Выбор коэффициентов, функций и аргументов функций из уравнения представленного в виде строки private static void GetParameters(string str)

4)Получение значения определённой функции из массива функций private static double GetValueFunction(double x)

5)Получение всех функций в зависимости от переменной х private static double[] GetAllValuesFuction(double[] x)

6)Вычисление значения интерполирующего полинома private static double GetInterpolation(double[] dX, double[] dF, double x)

 

 

4. Руководство программиста

 

) Обработка входных параметров(GetParameters)

Метод считывания параметров основан на разборе строки с помощью символов ^, *. До символа * располагается область коэффициента, если * нет, то коэффициент равен 1 (сохраняется в массив dKoef). После символа ^ расположена область степени функции, если ^ нет то степень равна 1 (сохраняется в массив dStep). Между * и ^ располагается сама функция. Она состоит из идентификатора функции (exp, x, ctg, tg, sin…, сохраняется в массив sFunc).

Общий вид: 2*х^2

2) Обработка оптимальных значений переменных х (GetValuesX)

В этом методе находятся наиболее подходящие значения xi по формуле Чебышева благодаря чему повышается точность интерполяции.

3) Обработка входного интервала (GetInterval)

Преобразование строкового значения в вещественное число, пригодного для использования. В данном методе происходит разбиение строки на нвчало и конец интервала.

4) Обработка значений интерполирующего полинома (GetInterpolation)

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

 

 

5. Руководство пользователя

 

 

После запуска программы на вашем экране появилось окно, на котором есть область для ввода функции, поля для выбора отрезка [a;b] в переделах которого находятся точки x0 ,…, xn,поле для ввода переменной x и поле для ввода числа точек интерполяции.

Введите функцию, с помощью которой будет вычисляться значение функции для каждой точки xi. Введите границы отрезка [a;b] в переделах которого находятся точки x0 ,…, xn,что позволяет повысить точность итерации. Далее введите значение переменной x и число точек интерполяции.

Нажмите кнопку Вычислить интерполяционный полином.

В области результат появится значение интерполяционного полинома.

Для выхода из программы нажмите в меню Файл затем выход.

Для получения справки по использованию программы или сведений о программе зайдите в меню Помощь.

Для просмотра основного кода программы зайдите в меню Текст программы

 

6. Тестирование

 

. Запускаем программу и заполняем пустые поля.

 

 

. Жмем кнопку Вычислить интерполяционный полином и в области Результат получаем значение интерполяционного полинома.

(P.S. Более подробная информация по использованию программы находится в программе в разделе Помощь - справка)

 

 

Математическое решение

1) По методу Чебышева найдем 3 наиболее подходящих значения xi на интервале [1;2].

 

 

Следовательно

 

 

В данном случае , ,

) Получим все функции в зависимости от переменной xi.

 

, ,

 

2)Найдем значение интерполяционного полином Лагранжа.

 

 

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

 

Заключение

математический численный интерполяционный полином лагранж

В курсовой работе я рассмотрел разработку и реализацию численных алгоритмов. Реализовал алгоритм помогающий найти полиномиальную интерполяцию методом Лагранжа. Данный алгоритм написан на языке Microsoft Visual C# 2005 Express Edition. Я использовал язык C# так как он очень удобный в обращение. Он превосходит по некоторым параметрам функциональности другой язык программирования, как Delphi, потому что:

. есть ряд функций облегчающих работу программиста такие как split и foreach;

. есть возможность ограничения доступа к полям в структурах, что не мало важно;

. есть составные операторы такие как +=,-=,*=, /=,++,--.

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