0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 10
1

Интерполяция полиномом Лагранжа и кусочная интерполяция

16.11.2016, 20:59. Показов 3882. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
столкнулась с такой проблемой:
написала интерполяцию Лагранжа
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    x=[0,0.2,0.4,0.6,0.8];
    y=2*cos(x);
function [p]=inter(a,x,y)
n=length(x);
p=0;
for i=1:n
    l=1;
    for k=1:n
        if k<>i then
            l=l .*((a-x(k)) ./(x(i)-x(k)));
        end;
     end;
     p=p+y(i) .*l;
end;
endfunction;
a=linspace(1,13,101);
plot(a,inter(a,x,y),x,y,'x')
вроде работает, но график странный выдает, график строит похожим больше на экспоненту, не могу понять, с чем связана эта ошибка...
+ нужно еще написать кусочную интерполяцию, где каждые 3 точки будут соединятся полиномом Лагранжа, а как эти точки выделять из общего числа понять не могу (примеры смотрела, находила только те, где всего по трем точкам интерполируют)
ХЕЛП!

нужно написать программу, в которой каждые 3 точки будут соединяться полиномом Лагранжа (кусочная интерполяция). Не знаю, как брать по 3 точки, когда их гораздо больше
помогите пожалуйста!

 Комментарий модератора 
Правила форума: 5.5. Запрещено размещать тему в нескольких подразделах одного раздела одновременно (кросспостинг), а также дублировать тему в одном разделе.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2016, 20:59
Ответы с готовыми решениями:

Интерполяция полиномом Лагранжа
Функция у = f(x) задана в табличной форме: x=0; y=1.763; x=0.2; y=1.917; x=0.4; y=2.143; ...

Интерполяция полиномом Лагранжа
Добрый день Я все пытаюсь разобраться с полиномом Лагранжа и столкнулся с очень интересным...

Интерполяция полиномом Лагранжа
Построить интеропляционный полином Лагранжа по следующим данным : x0=191 y0=472 x1=121 y1=387...

Интерполяция полиномом Лагранжа
Написал программу для интерполяции функции полиномом Лагранжа. Получается неправильно. Помогите...

3
143 / 133 / 42
Регистрация: 11.03.2013
Сообщений: 274
17.11.2016, 03:59 2
Цитата Сообщение от MaryCantante Посмотреть сообщение
вроде работает, но график странный выдает
Так у Вас не интерполяция а экстрополяция - точки заданы на интервале [0;0.8] а Вы пытаетесь "интерполировать" на интервале [1;13]?

задайте точки для интерполяции правильно:
Matlab M
1
a=linspace(0,1.3,101);
Добавлено через 9 минут
Цитата Сообщение от MaryCantante Посмотреть сообщение
Не знаю, как брать по 3 точки, когда их гораздо больше
Нужно в цикле индексы увеличивать на 3, например:

Matlab M
1
2
3
4
5
for j = [1:3:103]
x_1 = x(j:j+2);
y_2 = y(j:j+2);
.........
end
1
0 / 0 / 1
Регистрация: 17.03.2014
Сообщений: 10
11.04.2018, 00:35 3
Откуда взяли 1, 13, 101 ?
0
143 / 133 / 42
Регистрация: 11.03.2013
Сообщений: 274
11.04.2018, 02:14 4
Цитата Сообщение от JRmsk Посмотреть сообщение
Откуда взяли 1, 13, 101 ?
Почитайте справку по linspace
0
11.04.2018, 02:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2018, 02:14
Помогаю со студенческими работами здесь

Интерполяция полиномом Лагранжа
народ, хелп плиз!! :help: парюсь уже 2ю неделю(( :help: суть собссно в следующем - надо...

Численная интерполяция полиномом Лагранжа
Вот получил задание, на выполнение интерполяции. Помогите. Задание X: | 1 | 2 | 3 | 5 | 6 Y:...

Численная интерполяция полиномом Лагранжа
Вот получил задание, на выполнение интерполяции. Помогите. Задание X: | 1 | 2 | 3 | 5 | 6 Y:...

Интерполяция таблично-заданной функции полиномом Лагранжа
Добрый вечер :) Я все пытаюсь разобраться с полиномом Лагранжа и столкнулся с очень интересным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru