Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/103: Рейтинг темы: голосов - 103, средняя оценка - 4.70
 Аватар для littlebit.s
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 26

Интерполяционный многочлен Ньютона и Лагранджа

21.03.2013, 09:39. Показов 20110. Ответов 8
Метки faq+ (Все метки)

Студворк — интернет-сервис помощи студентам
заданы параметры x[0,165 0,171, 0,177]
y=[2,00551 2,82558 2,65583]
c Matlab знакома пару дней, так что ничего не могу понять, если у кого то есть возможность помогите
нашла. что интерполяция считается функцией polyfit(x,y, 2) все сходится, решает верно
Но это не подходит, нужно для сдачи через функции и процедуры
помогите пожалуйста

Добавлено через 6 минут
Буду очень рада вашей помощи
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.03.2013, 09:39
Ответы с готовыми решениями:

Интерполяционный многочлен Ньютона
Построить интерполяционный многочлен Ньютона, взяв произвольные три равноудаленные узловые точки (согласно варианту). Построить графики...

Вычислить интерполяционный многочлен Ньютона.
в матлабе требуется вычислить интерполяционный многочлен Ньютона приближающей функции y=a*e^mx,где x=0,17, y=1,21483, t=0,203 Я не...

Интерполяционный многочлен Ньютона и Лагранжа
Дано точки: (0,12);(3, 5);(6, 10);(8, 7);(11, 6) Сделать интерполяционный многочлен Лагранжа. И построить многочлен Ньютона для троих...

8
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
21.03.2013, 10:43
А кроме x, y что-то еще дано?
Смотри, с лагранжем дело обстоит так: берется некая левая точка x0 (одна), для нее по формулам считаются коэфф-ты многочлена и находится значение функции y0. При этом для другой точки, коэфф-ты будут другими
Вот файл-функция для интерполяции:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function [L_n P] = lagrange1(x,y,xx)
% x - массив координат узлов
% y - массив значений интерполируемой функции
% xx - массив значений точек интерполяции
L_n = zeros(size(xx));
for k=1:length(x)
    P = ones(length(x),length(xx));
    for i=1:length(x)
        if k~=i
            P(k,:) = P(k,:).*(xx-x(i))./(x(k)-x(i));
        end
    end
    L_n = L_n + y(k)*P(k,:);
end
end
И программа рассчетов:
Matlab M
1
2
3
4
5
6
7
8
9
10
clear, clc
 
x = [0.165 0.171, 0.177];
y = [2.00551 2.82558 2.65583];
xx = linspace(0.16,0.18,100); % массив точек х
x0 = 0.169; % некоторая точка
yy = lagrange1(x,y, xx);
[y0 P0] = lagrange1(x,y, x0) % функция в некоторой точке и полином
plot(x,y,'or',xx,yy,':r',x0,y0,'*b'), grid on
legend('Данные','Интерполяция','Точка', 'location', 'northwest')


Очень рекомендую почитать по этому вопросу (чтоб не ждать 60 секунд, нажми еще раз на ссылку):
http://matlab.exponenta.ru/spline/book1/10.php
и
http://matlab.exponenta.ru/spline/book1/14.php

Не по теме:

Цитата Сообщение от littlebit.s Посмотреть сообщение
Буду очень рада вашей помощи
ты мальчик или девочка? :)

1
 Аватар для littlebit.s
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 26
21.03.2013, 17:29  [ТС]
Я девочка, просто аккаунт не мой)
А оно считает не правильно(((

Добавлено через 28 минут
нет,кроме х больше ничего не надо
а как сделать что бы оно выводило как многочлен x^2 +x+..
или если добавить несколько точек что бы возводило в куб
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
21.03.2013, 19:00
Чуточку подправил функцию:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function [L_n P0] = lagrange1(x,y,xx)
% x - массив координат узлов
% y - массив значений интерполируемой функции
% xx - массив значений точек интерполяции
L_n = zeros(size(xx));
for k=1:length(x)
    P = ones(size(xx));
    for i=1:length(x)
        if k~=i
            P = P.*(xx-x(i))./(x(k)-x(i));
        end
    end
    P0(k,:) = P;
    L_n = L_n + y(k)*P;
end
end
Программа рассчета:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
clear, clc
 
x = [0.165 0.171, 0.177];
y = [2.00551 2.82558 2.65583];
xx = linspace(0.16,0.18,100);
x0 = 0.169;
yy = lagrange1(x,y, xx);
[y0 P0] = lagrange1(x,y, x0)
plot(x,y,'or',xx,yy,':r',x0,y0,'*b'), grid on
legend('Данные','Интерполяция','Точка', 'location', 'northwest')
 
y*P0 % проверка
Уточню, что P0 в данном случае - функция Лагранжа, и y0 равно сумме произведений y на Р0! (вконце - это проверка)
Впринципе, так как точек немного, можно и "вручную" расписать
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clear, clc
 
x = [0.165 0.171, 0.177];
y = [2.00551 2.82558 2.65583];
x0 = 0.169;
y0 = lagrange1(x,y,x0);
syms X
P1 = ((X-x(2))*(X-x(3)))/((x(1)-x(2))*(x(1)-x(3)));
P2 = ((X-x(1))*(X-x(3)))/((x(2)-x(1))*(x(2)-x(3)));
P3 = ((X-x(1))*(X-x(2)))/((x(3)-x(1))*(x(3)-x(2)));
Y = y(1)*P1 + y(2)*P2 + y(3)*P3;
 
pretty(collect(Y,X))
Yx = sym2poly(Y)
 
y0 
polyval(Yx,x0)
Добавлено через 3 минуты
Еще раз напомню, что если мы меняем искомую точку x0, то значения Pi будут другими!

Добавлено через 17 минут
Эх, задела за живое, за интерес!
Вот набросал программку, которая может считать ждя произвольного числа узлов, т.е. x, y могут быть произвольной длинны:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear, clc
% координаты узлов
x = [0.165 0.171, 0.177];
y = [2.00551 2.82558 2.65583];
% некая точка
x0 = 0.169;
y0 = lagrange1(x,y,x0);
syms X
for i = 1:length(x)
    u = x;
    u(i)=[]; % выкалываем i-й элемент
    P(i,1) = prod(X-u)/prod(x(i)-u); % рассчитываем i-й полином Лагранжа
end
Y = y*P % сумма произведений y на 
 
pretty(collect(Y,X)) % собираем Х
Yx = sym2poly(Y) % вытягиваем коэфф-ты многочлена
 
y0 % расчитанная ранее функция, для стравнения
polyval(Yx,x0) % подставляем значение х0 в полученный полином
1
 Аватар для littlebit.s
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 26
21.03.2013, 19:54  [ТС]
Ахаха, спасибо тебе, никогда не работала с Матлабом((
А с Ньютоном тоже можно вручную?
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
21.03.2013, 20:03
С нютоном тоже можно вручную ты только теорию посмотри!!!
Но а если что будет неясно - пиши, глянем
Хотя ты должна понимать, что полином который мы получили никак не изменится, форма Ньютона - лишь вариант его представления! Смекаешь?
Т.е. тебе фактически нужно взять мою последнюю программку и в 16й строке вместо pretty(collect(...)) написать:
pretty(factor(Y))
1
 Аватар для littlebit.s
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 26
21.03.2013, 20:07  [ТС]
??? Error using ==> mupadinit at 35
Unable to initialize kernel

Error in ==> mupadengine.mupadengine>mupadengine.eval in at 117
[res,status] = mupadmex(statement,8);
Если такая проблемка, что исправить нужно?


Как решать я знаю, уже решила. только проблема с синтаксисом в Матлабе, уже кучу источников перечитала(


Да, я поняла
спасибо
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
21.03.2013, 20:16
Ругается на ядро? Грусть-пичаль, значит у тебя матлаб урезанный, скорее всего Portable в нем нет тулбокса символьных вычислений.
0
0 / 0 / 0
Регистрация: 30.11.2015
Сообщений: 37
14.12.2015, 00:25
Всем привет кто знаком выравниванием экспериментальных данных мне нужно построить график
p=polyfit(x,y,1)
p1=polyfit(x,y,1) этих 2-х функций с помощью Матлаба


x=[0 2 5 7 9]
y=[2 6 8 11 15]
p=polyfit(x,y,1)
p1=polyfit(x,y,1)

Буду рада вашей помощи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2015, 00:25
Помогаю со студенческими работами здесь

Как построить интерполяционный многочлен Ньютона по НЕравноотстоящей сетке узлов
Как построить интерполяционный многочлен Ньютона по НЕравноотстоящей сетке узлов x=; y=; x(0)=0.335

Интерполяционный полином Ньютона
Кто может помочь???

Многочлен Ньютона
Кто-нибудь что-нибудь знает про первый и второй интерполяционный многочлен Ньютона? Я даже просто математические формулы найти не могу, не...

Построить интерполяционный полином в каноническом виде, а также полиномы Лагранжа и Ньютона
Суть состоит в том:По заданной таблице значений функции x -3 -1 1 y 9 -1 6 построить интерполяционный полином в...

Интерполяционный многочлен ньютона.
построить интерполяционныи многочлен ньютона степеней n=2,5 для интерполирования назад в точке х=0 по значениям функции...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru