LINUX.ORG.RU

Вопрос по gnuplot


0

0

Есть 2 файла с данными. Как можно начертить что-то типа:
'data-file1' using 1:2 smooth csplines - 'data-file2' using 1:2 smooth csplines
                                       ^^ это знак минус, т.е. из одного графика вычесть другой
★★★★★

Ответ на: комментарий от quickquest

Не совсем понял, как мне это поможет.
У меня есть две аппроксимированных функции f(x) и g(x) по первому и второму файлу соответственно. Мне нужно построить график вида |f(x) - g(x)|. Как мне это сделать?

UVV ★★★★★
() автор топика

!bash -c 'paste <(cut -f 1,2 data-file1) <(cut -f 2 data-file2) > tmp'
plot 'tmp' using 1:($3-$2) smooth csplines

По умолчанию cut использует символ табуляции для разделения полей.
Если это не подходит, то его можно обернуть sed'ом.

Jini ★★
()
Ответ на: комментарий от UVV

Если количество точек для функций разное, то я бы сначала сделал две интерполяции.

1 функция интерполируется в точках х(f2); 2 функция - в точках х(f1);

после чего gnuplot нарисует график разностной функции.

P.S. Простейшая интерполяция может быть линейной, а если надо поточнее, то сплайн рулит :)

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

> ...то я бы сначала сделал две интерполяции.
Если можно поточнее. Средствами gnuplot'a её сделать можно или только ручками?

UVV ★★★★★
() автор топика
Ответ на: комментарий от UVV

Рассмотрим простейший случай. Пусть функция f1 задана в 3 точках [x11,x12,x13], а f2 в 2 точках [x21,x22]. Тогда для f1 вычисляются дополнительно 2 интерполированные точки [f1(x21),f1(x22)], а для f2 вычисляются дополнительно 3 интерполированные точки [f2(x11),f2(x12),f2(x13)]. Таким образом, обе функции становится определёнными в 5 точках, в которых вычисляется разность f1-f2.

Про интерполяцию можно почитать http://ru.wikipedia.org/wiki/Интерполяция

>Средствами gnuplot'a её сделать можно или только ручками?

Я использую или стандартные математические lib-ы, или пишу сам то, что нужно для нестандартных вариантов.

P.S. Для вычислений можно использовать Maxima+wxMaxima+gnuplot.

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

> Про интерполяцию можно почитать http://ru.wikipedia.org/wiki/Интерполяция
> P.S. Для вычислений можно использовать Maxima+wxMaxima+gnuplot.
Буду восполнять пробелы в знаниях! ;-)
Спасибо!

UVV ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.