2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 циклические графики в Maple
Сообщение09.05.2014, 13:57 


03/06/13
23
Если таких нет, предложите хотя бы альтернативу!
Есть функция F(b,t), зависит от 2ух переменных, надо построить семейства графиков F(t) c b=0.1,..,1 на одном рисунке!
Делал вот такую штуку
for b from 0.1 by 0.1 to 1 do F := бла-бла; plot(F, t = -Pi .. Pi) od;
естественно получил 10 графиков на 10и рисунках.. Как быстро совместить в один рисунок, либо перепрогать, чтобы сразу выдавал все графики вместе?
Способ копи-паста всех 10и выражений F в plot не предлагать :)

 Профиль  
                  
 
 Re: циклические графики в Maple
Сообщение09.05.2014, 23:52 


19/05/10

3940
Россия
последовательность создайте

(Оффтоп)

и на всякий случай в ТеХе свое сообщение перепишите

 Профиль  
                  
 
 Re: циклические графики в Maple
Сообщение10.05.2014, 10:32 
Заслуженный участник


12/07/07
4530
В зависимости от того, что Вы, Tun, не указали в начальном сообщении, а заменили на «бла-бла», возможны варианты. Примитивны примеры:
> plot({seq(b*sin(x), b=0.1..1, 0.1)}, x=-Pi..Pi); (возможно на это намекал mihailm)
Код:
> S:= {}:
> for b from 0.1 by 0.1 to 1 do S:= {op(S), b*sin(x)}; end do:
> plot(S, x=-Pi..Pi);
Код:
> S:= []:
> for b from 0.1 by 0.1 to 1 do S:= [op(S), b*sin(x)]; end do:
> plot(S, x=-Pi..Pi);
Код:
> S:= {}:
> for b from 0.1 by 0.1 to 1 do S:= {op(S), plot(b*sin(x), x=-Pi..Pi)}; end do:
> plots[display](S);

 Профиль  
                  
 
 Re: циклические графики в Maple
Сообщение11.05.2014, 10:51 


03/06/13
23
Код:
p := (1-(4/5)*b^2*sin(t)^2)^(1/2);
F := (128/5)*(1-p)*p*exp(2*(p-1)/(1+p))/(1+p)^5;

F зависит от переменной t и параметра b через p, в таком задании он строит не то, что нужно, при явном задании p в F все норм, в послед-ти как правильно юзать параметры?

 Профиль  
                  
 
 Re: циклические графики в Maple
Сообщение11.05.2014, 11:23 
Заслуженный участник


12/07/07
4530
Вы опять не излагаете детали задачи. От этих деталей зависит выбор конструкций для реализации. В относительно свежих версиях «лишь бы как» можно, например, так:
Код:
> F := (128/5)*(1-p)*p*exp(2*(p-1)/(1+p))/(1+p)^5;
> plot({seq(eval(F, p=(1-(4/5)*b^2*sin(t)^2)^(1/2)), b=0.1..1, 0.1)}, t=-Pi..Pi);

P.S. На всякий случай. В старых версиях нет конструкций типа eval(F, x=x_0). Часто можно обойтись subs(x=x_0, F). Кроме того, в seq не всегда была возможность задать дробный шаг. Можно сделать индекс последовательности целым, обозначить его через i, а b выражать через i. В этом вопросе между версиями плохая совместить. Я всегда делаю индекс последовательности целым.

 Профиль  
                  
 
 Re: циклические графики в Maple
Сообщение11.05.2014, 13:48 


03/06/13
23
Класс, спасиб! не понимаю, какие ещё детали остались нераскрытыми..
Все же циклы больше люблю, в них можно задать параметр?

 Профиль  
                  
 
 Re: циклические графики в Maple
Сообщение11.05.2014, 14:50 
Заслуженный участник


12/07/07
4530
Детали — это окружение обсуждаемого «программного текста»; требования к читабельности, модифицируемости, оптимальности,...
Например, если выражение F далее по тексту программы не используется, то можно было написать с использованием поименованной оператор-функции F, а не выражения F (так, в некоторых случаях, читабельней)
Код:
> F:= x -> (128/5)*(1-x)*x*exp(2*(x-1)/(1+x))/(1+x)^5;
> plot({seq(F((1-(4/5)*b^2*sin(t)^2)^(1/2)), b=0.1..1, 0.1)}, t=-Pi..Pi);
Если в дальнейшем оператор-функция не используется, то можно использовать непоименованную функцию
Код:
> plot({seq(proc (x) (128/5)*(1-x)*x*exp(2*(x-1)/(1+x))/(1+x)^5 end proc ((1-(4/5)*b^2*sin(t)^2)^(1/2)), b=0.1..1, 0.1)}, t=-Pi..Pi);
Аналогичный вариант с непоименованной оператор-функцией:
plot({seq((x -> (128/5)*(1-x)*x*exp(2*(x-1)/(1+x))/(1+x)^5) ((1-(4/5)*b^2*sin(t)^2)^(1/2)), b=0.1..1, 0.1)}, t=-Pi..Pi);
В общем, много можно привести слегка отличающихся вариантов.

И с циклом можно. Примитивный пример, использующий непоименованную функцию
Код:
> S:= {}:
> for b from 0.1 by 0.1 to 1
     do S:= {op(S), plot(proc (x) (128/5)*(1-x)*x*exp(2*(x-1)/(1+x))/(1+x)^5 end proc ((1-(4/5)*b^2*sin(t)^2)^(1/2)), t=-Pi..Pi)}; end do:
> plots[display](S);
Как правило, будет работать медленней, чем вариант с последовательностью. Возможно, вариант с циклом будет полезен, если задавать в цикле отдельное форматирование для разных кривых. Лень гадать. По поводу нецелого индекса цикла моё мнение то же, что и для последовательностей (конец моего предыдущего поста). Аналогично для sum, add,…

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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