Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 9
1

Выполнить линейную интерполяцию

23.06.2015, 11:36. Показов 1893. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Функция yi=f(xi) i=1,n, задана таблично в узлах xi . Выполнить линейную интерполяцию данной функции средствами MATLAB с построением графика.

X=0:1:2;
xi=1:0.1:1.2;
y=[0 0.21 0.44];
Y = interp1(xi,y,X, 'linear')
% Визуализация результатов интерполяции
plot(xi,y, 'o',X,Y);

На графике помечаются только точки, а самого графика нет. Что не так в программе?
Миниатюры
Выполнить линейную интерполяцию  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2015, 11:36
Ответы с готовыми решениями:

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

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

Выполнить интерполяцию
Требуется выполнить интерполяцию с использованием следующих данных: аргумент x изменять от 0 до 10...

Выполнить интерполяцию
Добрый вечер, требуется помощь специалистов. Необходимо провести интерполяцию: линейную,...

10
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
23.06.2015, 11:46 2
posms, вот так будет верно:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
clc, clear all, close all
 
x = 0:1:2;
y = [0 0.21 0.44];
 
xi = linspace(x(1), x(end), 100);
t_linear = interp1(x,y,xi,'linear');
 
plot(x,y,'o',xi,t_linear);
title('Интерполяция interp1')
legend('DATA','int linear',-1)
grid on
Выполнить линейную интерполяцию
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 9
23.06.2015, 11:50  [ТС] 3
А что значит вот эта строчка?
Matlab M
1
xi = linspace(x(1), x(end), 100);
0
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
23.06.2015, 12:01 4
posms, разбивает Ваш интервал (0,2) на 100 участков с постоянным шагом. Аналогом является запись:
Matlab M
1
xi = 0:0.0202:2
Но, как видно, через
Matlab M
1
linspace
гораздо удобнее
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 9
23.06.2015, 12:04  [ТС] 5
а почему именно на 100 участков? И почему интервал 0,2?
0
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
23.06.2015, 12:09 6
posms, да, извините, у Вас интервал X=1:1.2. Поэтому будет так:
Matlab M
1
2
3
4
5
6
7
8
9
10
x = [1.0 1.1 1.2];
y = [0 0.21 0.44];
 
xi = linspace(x(1), x(end), 100);
t_linear = interp1(x,y,xi,'linear');
 
plot(x,y,'o',xi,t_linear);
title('Интерполяция interp1')
legend('DATA','int linear',-1)
grid on
А на 100 интервалов - от балды, можете выбрать любое значение
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 9
23.06.2015, 12:16  [ТС] 7
а если записать
Matlab M
1
xi = linspace(x(1), x(end), 100);
Так
Matlab M
1
 xi = 0:0.001:2;
Будет так или нет?
0
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
23.06.2015, 12:19 8
Если так:
Цитата Сообщение от posms Посмотреть сообщение
Так
Matlab M
1
xi = 0:0.001:2;
Будет так или нет?
То у Вас получится 2001 элемент в массиве против 100 для первого случая... Если не хотите через
Matlab M
1
linspase
то будет так:
Matlab M
1
xi = 0:0.0202:2
0
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 9
23.06.2015, 12:31  [ТС] 9
Всё-таки хочется разобраться с этой функцией, а то матлаб мы изучаем на поверхностном уровне:
Matlab M
1
xi = linspace(x(1), x(end), 100);
x(1)- это первое значение вектора
x(end) - конечное значение вектора
Так?
0
177 / 143 / 50
Регистрация: 07.02.2014
Сообщений: 489
23.06.2015, 12:32 10
Цитата Сообщение от posms Посмотреть сообщение
x(1)- это первое значение вектора
x(end) - конечное значение вектора
Так?
Да, все верно.
1
0 / 0 / 0
Регистрация: 10.06.2015
Сообщений: 9
23.06.2015, 12:38  [ТС] 11
спасибо за помощь.
0
23.06.2015, 12:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2015, 12:38
Помогаю со студенческими работами здесь

Выполнить интерполяцию функции

Выполнить интерполяцию полученных экспериментальных данных
2. ИНТЕРПОЛЯЦИЯ И АППРОКСИМАЦИЯ ДАННЫХ Проведено N опытов, при которых получены значения...

Выполнить интерполяцию полученных экспериментальных данных
ИНТЕРПОЛЯЦИЯ И АППРОКСИМАЦИЯ ДАННЫХ Проведено N опытов, при которых получены значения параметра Y...

Выполнить интерполяцию функции, используя формулу Лагранжа, и построить график интерполяционного полинома
Мой 9 вариант.

Выполнить аппроксимацию и интерполяцию в 40 точках таблично заданных функций, используя функции cspline, lgsfit и linf
Выполнить аппроксимацию и интерполяцию в 40 точках таблично заданных функций F1(x), F2(y),...

Выполнить интерполяцию и аппроксимацию в 35 точках с помощью функций cspline, sinfit и linfit... Проверить, правильно или нет?
выполнить интерполяцию и аппроксимацию в 35 точках таблично заданных функций F1(x),F2(x), используя...


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

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