У меня есть следующие данные:Как я могу экстраполировать на более высокие значения в Matlab?
T=[0,100,300]
и
a=[2.8796,2.8785,2.886]
и я хочу, чтобы экстраполировать и знать, что a
я получу в T=600
в Matlab. Как я могу это сделать?
У меня есть следующие данные:Как я могу экстраполировать на более высокие значения в Matlab?
T=[0,100,300]
и
a=[2.8796,2.8785,2.886]
и я хочу, чтобы экстраполировать и знать, что a
я получу в T=600
в Matlab. Как я могу это сделать?
Если его линейный код ниже решает эту
clear all
close all
T=[0,100,300];
a=[2.8796,2.8785,2.886];
reg = polyfit(T,a,1);
figure
hold on
plot(T,a,'bx')
plot(T,reg(2)+T.*reg(1),'k-')
plot(600,reg(2)+600*reg(1),'ro')
plot(600,interp1(T,a,600,'linear','extrap'),'md')
legend('observations','lin. regression','pred. at 600p polyfit','pred. at 600p interp1')
val_polyfit = reg(2)+600*reg(1)
val_interp1 = interp1(T,a,600,'linear','extrap')
diff = val_polyfit/val_interp1
дает
val_polyfit =
2.8924
val_interp1 =
2.8972
diff =
0.9983
Интересно, это дает другой результат по сравнению с interp1. Вероятно, из-за небольшого количества выборок наблюдения – GameOfThrows
@GameOfThrows: это действительно смешно. У меня было это в прошлом при использовании excel и R, и я всегда считал R более надежным ... Не ожидал, что он будет отличаться в рамках одной программы. – horseshoe
@GameOfThrows У меня нет времени для выполнения matlab, насколько разница между этим методом и 'interp1'? – RaGe
Для линейной интерполяции: aextra = interp1(T,a,600,'linear','extrap')
Почему вы используете интерполяционную функцию для экстраполяции? –
@SharanDuggirala нет математической разницы между inter и extra polation, просто имя в зависимости от того, где в диапазоне, который вы делаете, подходит – RaGe
Существует не один способ ответить на этот вопрос. Есть ли какая-то базовая связь между 'T' и' a'? Вам нужно [интерполировать] (http://www.mathworks.com/help/matlab/interpolation-1.html) ваши данные? Вам нужна линейная интерполяция, полиномиальная интерполяция, сплайн-интерполяция, некоторая другая интерполяция? – excaza
Есть ли базовое уравнение, описывающее связь между a и T? Какой тип интерполяции вы ищете? – GameOfThrows
Я знаю, что есть разные способы сделать это. У меня нет никакого уравнения для этого, и я не знаю, является ли он линейным или полиномиальным, поэтому я должен попробовать и проверить значение при T = 600, а затем решить, какой из них дает мне лучший ответ за то, что я хочу. :( – Elin