2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Как рисовать такие графики?
Сообщение23.10.2022, 00:37 


13/10/22
29
Скажите, пожалуйста, в какой программе удобнее всего рисовать такого плана графики (чтобы было много локальных экстремумов и пересечений с осью абсцисс? Может быть есть такая программа, где можно рисовать от руки, а потом она будет сглаживать линии?
Понятно, что можно заморочиться и попробовать многочленами организовать, аля $f(x)=a(x+6)(x+2)(x-2)(x-6)(x-9)$ и дальше просто подбирать параметр через Геогебра. Но ведь еще нужно наложить ограничения на область определения искусственно. Я хочу сделать таких штук 40-50 примерно)

Изображение

 Профиль  
                  
 
 Re: Как рисовать такие графики?
Сообщение23.10.2022, 00:46 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Озвученным требованиям отвечает, например, такой вариант: пойти в детский сад, раздать всем листочки в клеточку...
Или Вы хотите после этого ещё что-то знать про каждый график?

 Профиль  
                  
 
 Re: Как рисовать такие графики?
Сообщение23.10.2022, 00:49 


13/10/22
29
ИСН в сообщении #1567387 писал(а):
Озвученным требованиям отвечает, например, такой вариант: пойти в детский сад, раздать всем листочки в клеточку...
Или Вы хотите после этого ещё что-то знать про каждый график?

Хочется, чтобы каждый график имел несколько пересечений с осью абсцисс (от 2 до 5, например) и несколько экстремумов (от 2 до 6) =))

-- 23.10.2022, 00:50 --

и все это на некоторой конечной области определения (можно взять подмножество отрезка $[-20;20]$)

-- 23.10.2022, 01:03 --

Если интересен вопрос - зачем, чтобы что и почему? То отвечу, чтобы генерировать задачи, максимально похожие на 7 задачу из ЕГЭ.

Нужны картинки под задачи с вот такими формулировками:

1) На рисунке изображен график производной функции $f'(x)$, определенной на интервале $(a;b)$. Найдите количество точек экстремума функции $f(x)$ на отрезке $[a;b]$.

2) На рисунке изображен график функции $f(x)$, определенной на интервале $(a;b)$. Найдите количество точек экстремума функции $f(x)$ на отрезке $[a;b]$.

3) На рисунке изображен график производной функции $f(x)$, определенной на интервале $(a;b)$. Найдите промежутки убывания функции $f(x)$. В ответе укажите длину наибольшего из них.

Итп.

-- 23.10.2022, 01:06 --

Чужие картинки брать не хочу (нехорошо ведь это), хотелось бы сделать свои в электронном виде.

 Профиль  
                  
 
 Re: Как рисовать такие графики?
Сообщение23.10.2022, 02:29 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
То есть Вы действительно хотите про них кое-то знать: сколько экстремумов, где они, какие интервалы возрастания/убывания. То есть вариант с детским садом отпадает.
В таком случае я бы делал следующее: экстремумы накидать рандомно, а между ними соединить кубическими сплайнами. Ещё можно на более длинных участках монотонности накидать промежуточных точек с наклоном тоже рандомным, но в ту же сторону, что этот участок (чтобы случайно не добавить новых экстремумов).
А чем это генерить и в чём отрисовывать - два независимых и в общем-то маловажных вопроса.

 Профиль  
                  
 
 Re: Как рисовать такие графики?
Сообщение23.10.2022, 03:20 


05/09/16
12066
oleg2099
Майкрософт экcель вам нарисует чо хотите. Просто задайте точки через которые должен пройти график - руками или как-нибудь алгоритмически.

 Профиль  
                  
 
 Re: Как рисовать такие графики?
Сообщение23.10.2022, 15:32 


13/10/22
29
ИСН в сообщении #1567392 писал(а):
То есть Вы действительно хотите про них кое-то знать: сколько экстремумов, где они, какие интервалы возрастания/убывания. То есть вариант с детским садом отпадает.
В таком случае я бы делал следующее: экстремумы накидать рандомно, а между ними соединить кубическими сплайнами. Ещё можно на более длинных участках монотонности накидать промежуточных точек с наклоном тоже рандомным, но в ту же сторону, что этот участок (чтобы случайно не добавить новых экстремумов).
А чем это генерить и в чём отрисовывать - два независимых и в общем-то маловажных вопроса.


Понял, спасибо!

-- 23.10.2022, 15:39 --

wrest в сообщении #1567393 писал(а):
oleg2099
Майкрософт экcель вам нарисует чо хотите. Просто задайте точки через которые должен пройти график - руками или как-нибудь алгоритмически.

Боюсь, что выглядеть это будет не настолько эстетично, как на оригинальной картинке (да и генерация картинок такого плана займет массу времени). Но спасибо за вариант)

 Профиль  
                  
 
 Re: Как рисовать такие графики?
Сообщение23.10.2022, 20:00 
Аватара пользователя


26/05/12
1694
приходит весна?
Ну, в Матлабе, например, можно что-то такое замутить за полчасика:

Изображение

(Ещё одна)

Изображение


код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
%   dxdy.ru/topic151093.html
%   2022.10.23 B@R5uk
clc
clearvars
format compact

xl = 10;
yl = 6;
xm = 9;
ym = 4;
ya = 2.5;
bkgrColor = [1, 1, 1];
gridColor = [.7, .7, .7];
axisColor = [0, 0, 0];
lineColor = [0.8, 0.5, 0];
arrSize = 0.85;
arrWidth = 0.15;

x = (-xm : xm)';
y = ya * randn (size (x));

y = min (ym, max (-ym, y));


xx = (-xm : 0.01 : xm)';
yy = spline (x, y, xx);

plot (0, 0)
hold on
for k = -xl : xl
    if 0 == k
        continue
    end
    plot ([1; 1] * k, [-1; 1] * yl, 'Color', gridColor)
end
for k = -yl : yl
    if 0 == k
        continue
    end
    plot ([-1; 1] * xl, [1; 1] * k, 'Color', gridColor)
end
plot ([0; 0], [-1; 1] * yl, 'Color', axisColor, 'LineWidth', 2)
plot ([-1; 0; 1] * arrWidth, [1; 1; 1] * yl - [1; 0; 1] * arrSize, 'Color', axisColor, 'LineWidth', 2)
plot ([-1; 1] * xl, [0; 0], 'Color', axisColor, 'LineWidth', 2)
plot ([1; 1; 1] * xl - [1; 0; 1] * arrSize, [-1; 0; 1] * arrWidth, 'Color', axisColor, 'LineWidth', 2)
%plot (x, y, 'o')
plot (xx, yy, 'Color', lineColor, 'LineWidth', 2)
hold off
axis equal
axis off
xlim ([-1; 1] * xl)
ylim ([-1; 1] * yl)
set (gcf, 'Color', bkgrColor)
set (gca, 'FontName', 'Arial')
text (-arrWidth,     1,             '1',       'FontName', 'Arial', 'FontSize', 14, 'HorizontalAlignment', 'right',  'VerticalAlignment', 'middle');
text (1,                 -arrWidth, '1',       'FontName', 'Arial', 'FontSize', 14, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'top')
text (-2 * arrWidth, yl,            '{\it Y}', 'FontName', 'Arial', 'FontSize', 14, 'HorizontalAlignment', 'right',  'VerticalAlignment', 'top');
text (xl - arrWidth, -2 * arrWidth, '{\it X}', 'FontName', 'Arial', 'FontSize', 14, 'HorizontalAlignment', 'right',  'VerticalAlignment', 'top')
text (    -arrWidth,     -arrWidth, '{\it O}', 'FontName', 'Arial', 'FontSize', 14, 'HorizontalAlignment', 'right',  'VerticalAlignment', 'top')
 

Стрелки у осей было лениво прорисовывать. В Матлабе родные оси рисуются по другому, да и необходимости в этих стрелках никогда не было.

 Профиль  
                  
 
 Re: Как рисовать такие графики?
Сообщение23.10.2022, 20:33 


13/10/22
29
Спасибо! Я лишь нашел вариант на онлайн доске нарисовать и двигать вручную линию. Получилось как-то так)
Изображение

-- 23.10.2022, 20:35 --

B@R5uk в сообщении #1567442 писал(а):
В Матлабе родные оси рисуются по другому, да и необходимости в этих стрелках никогда не было.

Спасибо большое! Получилось отлично, по цветам также похоже)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group