Разница между значениями функций для двух функций, заданных парами чисел

У меня есть две функции, определенные парами [x,y], где y = f(x). Это результаты двух разных решателей оды. Я могу легко построить их, но меня интересует разница между ними. Поскольку они поступают из разных решателей, они имеют разные векторы x и длины. Мне было интересно, есть ли в MATLAB какой-либо инструмент для этого. Потребуется некоторое усреднение для интерполяции значений f(x) для x другой функции.


person infoholic_anonymous    schedule 12.06.2014    source источник
comment
Вы должны предоставить пример данных, которые поступают из функций, и какой график вы хотите.   -  person Fantastic Mr Fox    schedule 12.06.2014
comment
Похоже, вам нужно интерполировать один, чтобы иметь тот же вектор x, что и другой. Проверьте interp1, это должно быть прямолинейно. Вы бы назвали это как-то так: Yb_interpolated = (Xb, Yb, Xa), а затем вы можете вычесть Yb_interpolated из Ya.   -  person Dan    schedule 12.06.2014


Ответы (1)


Я поступил бы примерно так, как сказал Дэн. Скажем, ваши 2 функции заданы (x1,y1) и (x2,y2). Если вы не хотите экстраполировать, вам следует посмотреть на пересечение двух диапазонов.

a=max(min(x1), min(x2));
b=min(max(x1),max(x2));
CommonX=linspace(a,b,100);
plot(CommonX,interp1(x1,y1,CommonX)-interp1(x2,y2,CommonX))
person tchnvkng    schedule 12.06.2014