Страница 1 из 1

Тривиальная визуализация

Добавлено: Пн дек 04, 2017 11:13 pm
serval
Я очень извиняюсь, но неожиданно упёрся в тривиальную задачу - изобразить приведенную ниже сумму нечётных чисел в виде поставленных на общем основании "столбиков" с основаниями равными 1 и высотами последовательно равными слагаемым.

Код: Выделить всё

sum(2*k-1, k = 1 .. 5)

Пожалуйста, помогите.

Re: Тривиальная визуализация

Добавлено: Вт дек 05, 2017 8:19 am
Kitonum
Вот два варианта: первый - закрашенными столбиками (основания чуть меньше 1, чтобы столбики не сливались), второй - только линиями:

S:=simplify(sum(2*k-1, k=1..i));
plots:-display(seq(plot(S,x=i-0.45..i+0.45, color=blue, filled), i=1..5));
plots:-display(seq(plot([S, [i-0.5,t,t=0..S], [i+0.5,t,t=0..S]], x=i-0.5..i+0.5, thickness=3, color=blue), i=1..5));

Re: Тривиальная визуализация

Добавлено: Вт дек 05, 2017 10:37 am
serval
Спасибо, это даже сложнее чем требовалось )
Наверное я не вполне понятно объяснил. Основание первого столбика должно быть [0,1], второго - [1,2], и далее - [2,3], [3,4], [4,5]. А высоты - 1, 3, 5, 7, 9 соответственно.

Re: Тривиальная визуализация

Добавлено: Вт дек 05, 2017 6:18 pm
Kitonum
То же самое с небольшими изменениями:
S:=2*i-1:
plots:-display(seq(plot(S, x=i-0.97..i-0.03, color=blue, filled), i=1..5));
plots:-display(seq(plot([S, [i-1,t,t=0..S], [i,t,t=0..S]], x=i-1..i, thickness=3, color=blue), i=1..5));

Re: Тривиальная визуализация

Добавлено: Вт дек 05, 2017 6:45 pm
serval
Большое спасибо ещё раз!
А то основания я подвинул, а с последовательностью не разобрался.

Re: Тривиальная визуализация

Добавлено: Вт дек 05, 2017 8:27 pm
serval
А можно ли на этом графике закрасить только выделенный диапазон столбцов? Например, если их 10, то с 4-го по 7-й?

Re: Тривиальная визуализация

Добавлено: Вт дек 05, 2017 9:43 pm
serval
Или наложить один на другой два разных цветов?

Re: Тривиальная визуализация

Добавлено: Вт дек 05, 2017 11:52 pm
Kitonum
А можно ли на этом графике закрасить только выделенный диапазон столбцов? Например, если их 10, то с 4-го по 7-й?


S:=2*i-1:
plots:-display(seq(plot([S, [i-0.95,t,t=0..S], [i-0.05,t,t=0..S]], x=i-0.95..i-0.05, thickness=2, color=blue), i=1..3), seq(plot(S, x=i-0.97..i-0.03, color=blue, filled), i=4..10));


Или наложить один на другой два разных цветов?


Как смешивать цвета я не знаю. В качестве опции вы должны указывать какой-то конкретный цвет.

Re: Тривиальная визуализация

Добавлено: Ср дек 06, 2017 8:30 am
serval
Огромное спасибо! Вы очень помогли.