Линейная интерполяция

Содержание

1. Аннотация……………………………...…………………………………………………....3

2. Цель, задачи……………………………………………………………………...……….....3

3. Введение………………………………………………………………………..…….……...4

4. Линейная интерполяция………………………………………………………....……...….5

· Теория ………………………………………………………………………….........5

· Блок-схема……………………………………………………………...……………6

· Текст программы……………………………………………………………..….….7

· Пример…………………………………………………………………..……….…..7

5. Квадратичная интерполяция………….………………………………………..…………..8

· Теория…………………………………………………………………….……….. 10

· Блок-схема…………………………………………………………….....…………11

· Текст программы…………………………………………………………….……..12

· Пример……………………………………………………………………………...13

6. Инструкция по работе с программами……………............................................................16  

7. Заключение…………………………………………………………………………………17

8. Список литературы………………………………………………………………………...18

                     

                                        

 

 

                                                        Аннотация

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

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

Данная работа будет полезна студентам, аспирантам, преподавателям университетов и технических институтов, научным работникам и инженерам-исследователям, а так же всем, кто имеет дело с численными расчетами.

 

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

 

Задачи:

· Изучить и проанализировать научную, справочную литературу

· Подобрать наиболее простые и лучшие методы решения уравнений первой и второй степени

· Составить алгоритм решения уравнений в виде блок-схемы

· Разработать программы в системе программирования Borland Turbo Pascal 7.0

 

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

 

 

                                                

Введение

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

Функция у(х) может участвовать в каких-либо физико-технических или чисто математических расчетах, где её приходится многократно вычислять. В этом случае выгодно заменить функцию у(х) приближенной формулой, т. е. подобрать некоторую функцию φ (х), которая близка в некотором смысле к у(х) и просто вычисляется. Затем при всех значениях аргумента полагают у(х)  φ(х). Близость получают введением в аппроксимирующую функцию свободных параметров а={а1, а2, …, аn} и соответствующим их выбором.  В этом случае используются такие понятия как, аппроксимация и интерполяция.

ИНТЕРПОЛЯЦИЯ (от лат. interpolatio — изменение, переделка) - отыскание промежуточных значений величины по некоторым известным ее значениям. Например, отыскание значений функции f(x) в точках x, лежащих между точками x0 по известным значениям yi = f(xi) (где i = 0,1,..., n). Если x лежит вне интервала (x0, xn), аналогичная процедура называется экстраполяцией.

Основная цель интерполяции – получить быстрый (экономичный) алгоритм вычисления значений f(x) для значений х, не содержащихся в таблице.

 

АППРОКСИМАЦИЯ (от лат. approximo — приближаюсь) - замена одних математических объектов (наприме р, чисел или функций) другими, более простыми и в том или ином смысле близкими к исходным (например, кривых линий близкими к ним ломаными).

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

 

Линейная интерполяция

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

Рис. пример интерполяции

 

Уравнения каждого отрезка ломаной в каждом случае разные. Поскольку имеется n интервалов (хi-1 , хi), то для каждого из них в качестве уравнения интерполяционного многочлена используется уравнение прямой, проходящей через две точки. В частности, для i-го интервала можно написать уравнение, проходящей через точки (хi-1 , уi-1) и (хi, yi), в виде

 =

            

Отсюда

            y= aix + bi; xi-1 ≤ x ≤ xi,                                 (1)

 ,  bi= yi-1 – aixi-1.

 

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

 

 

Данный алгоритм представлен на рисунке

 

 

 


                                                                                         Нет

 

 

 


                                                       Да

 

 


                                                   

 

 


                         

     
 

 

 


        Нет

     
 

 

 


b= y [i-1] – a*x[i-1]
       

 

     
 

 


Текст программы:

 

Program interpol;

Const N=3;

Var x: array [1..N] of real;

y: array [1..N] of real;

a, b, xр, yр: real;

i: integer;

begin

for i:=1 to N do

begin { ввод данных через массивы }

writeln (‘x[‘,i,’]=’);

readln (x[i]);

writeln (‘y[‘,i,’]=’);

readln (y[i]);

end;

write (‘vvedite x=’); {ввод промежуточного значения}

readln (xр);

for i:=2 to N do

if (x[i-1]<=xp) and (xp<=x[i-1]) then

begin

    a:= (y[i] – y[i-1]) / (x[i] – x[i-1]);

    b:= y [i-1] – a*x[i-1];

    yр:= a*xр + b

else writeln (‘ekstrepolyazia’);

     readln;

end;

writeln (‘y=’, yр); {вывод искомого значения}

readln;

end.

 

 

 

 

Пример. Найти значение функции y=f(x), изображенной на рисунке, при х=1

 

 

  

Воспользуемся формулой линейной интерполяции(1). Значение х=1 находится между точками хi =2 и хi-1 = 0. Отсюда имеем

 

 =

bi= yi-1 – ai ٠xi-1 = 4 – 0.5٠0=4

 

у= а٠хр +b = -0.5 ٠1 + 4 = 3.5

 

 

Результаты выполнения программы

На рисунке 1 показан вид окна программы при вводе исходных данных

Рис.1

 

 

На рисунке 2 представлен вид окна программы после вывода результатов

Рис.2

Исполнимый модуль программы находится в файле с именем interpol1.exe  

 

 

    

 

Пример 2.

 Если в два часа ночи температура воздуха была +10, а в шесть утра - +25,
то используя линейную интерполяцию можно предположить
что в три часа ночи температура воздуха была равна
(25 - 10) / (6 - 2) * (3 - 2) + 10 = 13.75












Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: