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
13440
с Территории
Озвученным требованиям отвечает, например, такой вариант: пойти в детский сад, раздать всем листочки в клеточку...
Или Вы хотите после этого ещё что-то знать про каждый график?

 Профиль  
                  
 
 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
13440
с Территории
То есть Вы действительно хотите про них кое-то знать: сколько экстремумов, где они, какие интервалы возрастания/убывания. То есть вариант с детским садом отпадает.
В таком случае я бы делал следующее: экстремумы накидать рандомно, а между ними соединить кубическими сплайнами. Ещё можно на более длинных участках монотонности накидать промежуточных точек с наклоном тоже рандомным, но в ту же сторону, что этот участок (чтобы случайно не добавить новых экстремумов).
А чем это генерить и в чём отрисовывать - два независимых и в общем-то маловажных вопроса.

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


05/09/16
12232
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
1717
приходит весна?
Ну, в Матлабе, например, можно что-то такое замутить за полчасика:

Изображение

(Ещё одна)

Изображение


код: [ скачать ] [ спрятать ]
Используется синтаксис 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 ] 

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



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

Сейчас этот форум просматривают: mihaild


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

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