Squeak.ru - шаблоны программирования

Векторное поле с использованием gnuplot

Как построить векторное поле, где направление в каждой точке (x, y) задается tangent(alpha) = f(x, y)?

26.03.2011

Ответы:


1

Насколько я могу судить, gnuplot может отображать векторные поля только при чтении данных из файла. В вашем файле должно быть 4 столбца: x, y, deltax и delta y, а затем gnuplot построит вектор от (x, y) до (x+deltax, y+deltay) для каждой строки в файле:

plot "file.dat" using 1:2:3:4 with vectors head filled lt 2

Если вы не настаиваете на использовании gnuplot, есть другие инструменты, которые могут сделать это лучше или, по крайней мере, проще. Лично я использую asymptote. Пример векторного поля в асимптоте приведен здесь.

26.03.2011

2

Кажется, этот вопрос / ответ немного устарел, и, поскольку я считаю, что gnuplot немного изменился в последних версиях, возможно, ответ следует обновить.

Я нашел хорошее и компактное решение здесь: http://gnuplot.10905.n7.nabble.com/Vector-Fields-td3627.html

который я сообщу для удобства:

set xrange [-5:5]
set yrange [-5:5]
# only integer x-cordinates
set samples 11
# only integer y-cordinates
set isosamples 11
# we need data, so we use the special filename "++", which
# produces x,y-pairs
plot "++" using 1:2:1:(2.*$2) with vectors

Здесь исходный вопрос заключался в том, как построить векторное поле F(x,y) = <x, 2y>. Хитрость заключается в графике "++", который представляет собой специальное имя файла, позволяющее использовать функции в спецификаторе using.

Итак, как сказал @Jan в своем ответе, gnuplot требуется 4 поля в файле данных для построения векторного поля, но здесь поля являются синтетическими и создаются с помощью двух функций.

Эквивалентная формулировка с использованием определенных функций может быть следующей:

set xrange [-5:5]
set yrange [-5:5]
dx(x) = x
dy(x) = 2*x
plot "++" using 1:2:(dx($1)):(dy($2)) w vec

Подробнее см. help special-filenames.

HIH

05.06.2013
  • эквивалентная формулировка дает ошибку: диапазон x недействителен. 21.01.2015
  • У меня работает, вы уверены, что все правильно написали? 21.01.2015
  • @AkiRoss, пожалуйста, добавьте set xrange [-5:5] set yrange [-5:5] к эквивалентному примеру формулировки. Если кто-то использует существующие три строки примера дословно, он получит ошибку «Диапазон x недопустим». Спасибо! 20.09.2015
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...