Re: как в maple график по точкам строить?
f(x) — сложная функция, долго считается
подскажите пожалуйста, как построить график по точкам с каким-то шагом dx ?
можно ли это как то сделать с помощью функции plot ?
f(x) — сложная функция, долго считаетсяподскажите пожалуйста, как построить график по точкам с каким-то шагом dx ?можно ли это как то сделать с помощью функции plot ?
Можно, установив параметр adaptive=false (иначе мапл пытается оптимизировать распределение по Х используя numpoints=n (для ограничения количества точек) и по желанию указать style=point. В итоге у Вас равномерно будут распределены n-точек по оси Х.
Можно вместо ограничения числа точек по Х задать их ряд распределения, например, для равномерного указав параметр: sample=[seq( i, i= -10..0)], или sample=[seq( exp( i i= -20..0)] — если интересуют именно эти точки.
Примеры и описание есть в хелпе в Мапле.
Да, еще подсказка, если численные вычисления довольно забойные и значения значительно маленькие/большие, то рекомендую сразу установить точность вычислений с плавающей запятой по-выше, указав в самом начале:
Digits:=n;
(по умолчанию n=10)
Однако обнаруженная в Maple10 была неточность — при вычислении по формулам через eval значения были одни, а при выводе на графике (толи plot, то ли plot3d) — совершенно другие (такое чувство, что там это параметр Digits не работает). В итоге пришлось написать цикл, в котором значения вычислялись с заданной точностью, а только затем выводились на экран.
Я, например, делал это так, рисуя в цикле на графике точку, а потом суммируя их:
for i from 0 by 1 while i < 100 do
p_x[i]:=0.000001+dt*i;
plt[i]:=evalf(Coeff_q( p_x[i] ;
ttt[i]:=plot(<[ p_x[i], plt[i]]>, style=POINT);
if i=0 then
tt:=display();
else
tt:=display();
end if;
end do:
display(tt);
Можно и правильней это сделать через массив, но мне для графического анализа подошел этот вариант.
P.S. Возможно, в Maple 11 этот баг с точностью вычислений при построении графика исправили.
Подпись точек на графике
Несколько дней роюсь в инете никак не могу найти решение. Должно подписывать точки на графике.
1 2 3 4 5 6 7 8 9 10 11 12
restart;with(plots): Digits:=4:y:=(x*x*x)*(1-x):img1:=plot(y,x=-2..2): x:=2:x1:=evalf(x):y1:=evalf(y): x:=3:x2:=evalf(x):y2:=evalf(y):x:='x': st1:= convert (x1, string): st2:= convert (y1, string): st:= cat (`x = `,st1,` y = `,st2): img2:= textplot ([x1, y1-0.05, st], font=[TIMES,ITALIC,10],align=BELOW): img3:= plot (y, x = x1..x1, style = point, symbol = box): st1:= convert (x2, string): st2:= convert (y2, string): st:= cat (`x = `,st1,` y = `,st2): img4:= textplot ([x2, y2-0.05, st], font=[TIMES,ITALIC,10],align=BELOW): img5:= plot (y, x = x2..x2, style = point, symbol = cross): display ([img1, img2, img3, img4, img5]);
электронные книги
Показанный на рис. 11.5 график полинома, построенный ромбиками, не означает, что полином представлен отдельными точками. В данном случае просто выбран стиль линии в виде точек. Однако часто возникает необходимость построения графиков функций, которые представлены просто совокупностями точек. Такая совокупность может быть создана искусственно, как на рис. 11.7, либо просто задаваться списком координат х и значений функции.
В данном случае переменная Р имеет вид списка, в котором попарно перечислены координаты точек функции sin(x). В этом нетрудно убедиться, заменив знак «:» после выражения, задающего Р, на знак «;». Далее по списку Р построен график точек в виде крестиков, которые отображают отдельные значения функции sin(x).
На рис. 11.8 показано построение графиков функций по точкам при явном задании функции списком координат ее отдельных точек. В первом примере эти точки соединяются отрезками прямых, так что получается кусочно-линейный график. Видно также, что указание типа точек после указания стиля линии игнорируется (а жаль, было бы неплохо, чтобы наряду с кусочно-линейной линией графика строились и выделенные окружностями точки).
Рис. 11.7. Формирование списка отдельных точек функции и их построение на графике
Рис. 11.8. Построение графика функции, явно заданной отдельными точками
Во втором примере рис. 11.8 показано построение только точек заданной функциональной зависимости. Они представлены маленькими кружками. Читателю предлагается самостоятельно совместить оба подхода к построению графиков по точкам и создать график в виде отрезков прямых, соединяющих заданные точки функции, представленные кружками или крестиками.
Графика в maple
Графика на плоскости. 1) График функции y = f(x) на отрезке [a,b] >plot(f(x), x=a..b); или >plot(f(x), x=a..b, options); Примечание. В пакетеMAPLE 11 можно к координатным осям добавить сетку координат, выделив график и нажав значок сетки (правый). В качестве опций (справка по команде >?plot[options]) могут быть А) ЦВЕТ ЛИНИИ color=black, red, blue, green,… см. также >?plot[color] Б) ТОЛЩИНА ЛИНИИ thickness=0, 1, 2, 3 (больше номер – больше толщина) В) НАДПИСЬ НА ГРАФИКЕ title=`Parabole` (надпись в обратных кавычках или без них) Г) КОЛИЧЕСТВО МАРКИРОВАННЫХ ТОЧЕК на оси Х xtickmarks=5 на оси Yytickmarks=7 Д) КОЛИЧЕСТВО РАСЧЕТНЫХ ТОЧЕК ГРАФИКА numpoints=80 (по умолчанию=49). Е) ОБРЕЗАНИЕ ГРАФИКА (при бесконечных разрывах) по Y : y=y1..y2 или view= y1..y2 ; по осям X, Y : view=[x1..x2 , y1..y2] . Ж) В точках разрыва возникают вертикальные прямые, которые можно удалить при помощи опции discont=true. З) В MAPLE 11 опцияaxis=[gridlines=[n,color=. ]] добавляет координатную сетку с заданным количеством линий и с заданным цветом. Примечание. Если в окне графика щелкнуть какую-нибудь точку, то вверху слева в окошечке появятся координаты этой точки. В последних версиях щелкаем в области графика иводим по графику курсором. В окошечке автоматически высвечиваются координаты курсора. Признак попадания на кривую в пакетеMAPLE 9.5 – кривая становится жирной, в MAPLE 11 – тройной. Если щелкнуть по кривой правой мышью, то появится таблица опций (цвет, толщина и т.д.) 2) График функции y = f(x) на отрезке [–10, 10] >plot(f(x), х); 3) График функции y = f(x) на всей числовой оси (–, +) >plot(f(x),x= –infinity..infinity); >plot(exp(x),x= –infinity..infinity); Числовые оси Х и Yумещаются на отрезках [–1, 1] за счет изменения масштаба (он уменьшается по мере удаления от начала координат). Поэтому на кривой могут возникать точки перегиба, которых нет в реальности. 4) Параметрически заданная кривая >plot([x(t),y(t),t=a..b],options); Пример. Фигура Лиссажу >plot([cos(5*t),sin(3*t),t=0..2*Pi]); 5) Кривая в полярных координатах >plot([(t),(t), t=a..b], coords=polar); Примеры. Спираль Архимеда >plot([t/Pi, t, t=0..2*Pi], coords=polar); Кардиоида >plot([1+cos(t), t, t=0..2*Pi], coords=polar); 6) Несколько однотипных кривых на одном графике (используют либо либо […] ) >plot(,x= –2..2); три явно заданных кривых. Цвет и толщину каждой из них можно задавать соответственно опциями color=[black, red, green] , thickness=[2, 3 , 1]. ВНИМАНИЕ! Чтобы было соответствие между кривой и опцией кривые нужно задавать в квадратных скобках. >plot(); две параметрически заданных кривых. >plot(<[t/Pi, t, t=0..7], [1+cos(t), t, t=0..2*Pi]>,coords=polar); две кривых в полярных коорд. >plot(<[sin(t),t,t=0..Pi/2],[–sin(t),t,t=Pi..3*Pi/2],[1,t,t=0..2*Pi]>,coords=polar); «Инь–Ян» Можно совмещать также параметрическую и явно заданную кривые. Переменную следует обозначать одной и той же буквой! >plot(, t= –1..1); 7) Семейство кривых y=f(x,n), nN >plot(
orientation=[,] – ориентация поверхности, углы в градусах (см. рис). Справки: >?plot3d, >?plot3d[options] ОПЦИИ ГРАФИКА (вид поверхности) style=pointповерхность из цветных крестиков style=hiddenцветная решетка (непрозрачная) style=patchрешетка с цветной заливкой (по умолчанию) style=lineпрозрачная решетка style=patchnogridтолько заливка, без решетки style=contourповерхность из линий уровня style=patchcontourзаливка + линии уровня ОПЦИИ можно вызвать щелчком правой мыши по поверхности Поворот поверхности.Производится левой мышью. 2) Несколько поверхностей на одном графике. >plot3d(1(x,y), f2(x,y), f3(x,y)>, x=a..b, y=c..d); >plot3d(, x= –1..1, y= –1..1); 3) Семейство поверхностей z = F(x,y,n), nN. >plot3d(, x=a..b, y=c..d); >plot3d(, x= –1..1, y= –1..1); 4) Неявно заданная поверхность. >with(plots): >implicitplot3d(F(x,y,z),x=a..b,y=m..n,z=p..q); поверхностьF(x,y,z)=0. >implicitplot3d(F(x,y,z)=G(x,y,z), x=a..b, y=m..n, z=p..q); поверхность F(x,y,z)=G(x,y,z). >implicitplot3d(x^2–y^2–z^2=1, x= –3..3, y= –3..3,z= –3..3); 5) Несколько неявно заданных поверхностей F(x,y,z)=0,G(x,y,z)=0.>with(plots): >implicitplot3d(, x=a..b, y=m..n, z=p..q); >implicitplot3d(, x= –3..3, y= –3..3, z= –3..3); Примечание. Можно обойтись без подгрузки >with(plots): , используя команду >plots[implicitplot3d](. ) ; 6) Параметрически заданная поверхность >plot3d([x(u,v),y(u,v),z(u,v)],u=a..b,v=c..d); Примеры. а) Поверхность вращения(криваяz = f(y), y[a..b], вращается вокруг осиZ). >plot3d([u*cos(v), u*sin(v), f(u)], u=a..b, v=0..2*Pi); > plot3d([u*cos(v), u*sin(v), 1/u], u=0.2..1, v=0..2*Pi); Если та же кривая вращается вокруг оси Y, то команда будет иметь вид >plot3d([f(u)*cos(v), u, f(u)*sin(v)], u=a..b, v=0..2*Pi); б) Вертикальная цилиндрическая поверхность. >plot3d([x(u),y(u),v],u=a..b,v=0..H); >plot3d([u, cos(u), v], u= –Pi..Pi, v=0..1); в) Сфера. >plot3d([R*cos(u)*cos(v), R*sin(u)*cos(v), R*sin(v)], u=0..2*Pi, v= –Pi/2..Pi/2); v– широта, от южного полюса до северного (от –/2 до/2), u– долгота от оси Х к осиY. г) ГеликоидрадиусаRс шагомh(винтовая лестница). >plot3d([u*cos(v), u*sin(v), h*v/2/Pi], u=0..R, v=0..2*Pi); д) Тор;a– средний радиус тора,b– радиус «колбасы». >plot3d([(a+b*cos(v))*cos(u), (a+b*cos(v))*sin(u), b*sin(v)], u=0..2*Pi, v=0..2*Pi); е) Лента Мёбиуса;R– радиус средней линии, 2а – ширина ленты. >plot3d([(R+v*cos(u/2))*cos(u), (R+v*cos(u/2))*sin(u), v*sin(u/2)], u=0..2*Pi, v= –a..a); 7) Несколько параметрически заданных поверхностей. Пересечение 2-х параболических цилиндров. >plot3d(,u=0..a,v=0..2*Pi); Пересечение двух круговых цилиндров >plot3d(<[u, cos(v), sin(v)], [cos(v), u, sin(v)]>, u= –1..1, v=0..2*Pi); или >plot3d(<[sin(v), u*sin(v), cos(v)], [u*cos(v), cos(v), sin(v)]>, u= –1..1, v=0..2*Pi); 8) Кривые в пространстве >with(plots): >spacecurve([x(t), y(t), z(t)], t=a..b); одна кривая >spacecurve(<[x1(t), y1(t), z1(t)], [x2(t), y2(t), z2(t)]>, t=a..b); две кривых >spacecurve([R*cos(t), R*sin(t), k*t], t=0..2*Pi); – винтовая линия. >spacecurve([a*(1+cos(2*t)), a*sin(2*t), 2*a*sin(t)], t=0..2*Pi); кривая Вивиани – пересечение цилиндра x 2 +y 2 =2ax и сферы x 2 +y 2 +z 2 =4a 2 . >spacecurve([a*cos(t), a*sin(t),a^2*cos(t)^2], t=0..2*Pi); – линия пересечения двух параболичес- ких цилиндров. 9) Функция DISPLAY(совмещение на одном чертеже разных объектов) >with(plots): а) Сечения куба двумя параллельными плоскостями и диагональ этого куба >A:=plot3d(1–x–y, x=0..1, y=0..1–x): >B:= plot3d(2–x–y, x=0..1, y=1–x..1): >C:=spacecurve([t,t,t], t=0..1, thickness=3): >display(); б) Два пересекающихся параболических цилиндра и пространственная линия их пересечения: >F:=plot3d(, x= –1..1, y= –1..1): >G:=spacecurve([cos(t), sin(t), cos(t)^2], t=0..2*Pi, thickness=3): >display(); в) Сфера, пересекающий её цилиндр и кривая Вивиани: >A:=plot3d([2*cos(u)*cos(v), 2*sin(u)*cos(v), 2*sin(v)], u=0..2*Pi, v= –Pi/2..Pi/2): >B:=plot3d([1+cos(u), sin(u), 2*v], u=0..2*Pi, v= –1..1): >C:=spacecurve([1+cos(2*t), sin(2*t), 2*sin(t)], t=0..2*Pi, thickness=3, color=black): >display(); Примечание. Можно обойтись без подгрузкиwith(plots): если для построения нескольких объектов использовать команду >plots[display](); 10) Линии уровня функции z=f(x,y). >with(plots): >contourplot(f(x,y),x=a..b,y=c..d); одна поверхностьz = f(x,y) >contourplot(,x=a..b,y=c..d); несколько поверхностей. По умолчанию изображаются 8 линий уровня. Их число можно изменить, добавив в команду опцию contours=n. Можно также задать линии уровня значениями функцииcontours=[z1,z2..zn]. >contourplot(,x= –1..1,y= –1..1); >contourplot([u*cos(v),u,u*sin(v)],u= –1..1,v=0..2*Pi); параметрическое задание поверхности. 11) Поверхность с п линиями уровня на ней >plot3d(f(x,y), x=a..b, y=c..d, contours=n,style=patchcontour); вариант – contours=[z1,z2,…,zn] 12) Вид на поверхность сверху. Более высокие участки – более светлые. >with(plots): >densityplot(f(x,y), x=a..b, y=c..d); 13) Поверхность r = f(p,z) в цилиндрических координатах(r, p, z). >with(plots): >cylinderplot(f(p,z), p= z=a..b); >cylinderplot(p*sin(z), p=04*Pi z=0..Pi/2); Параметрическое задание поверхности в цилиндрических координатах >cylinderplot([r(u,v), p(u,v), z(u,v)], u=a..b, v=c..d); 14) Поверхность в сферических координатах (r,t,p), гдеt– долгота, отсчитываемая от оси Х к осиY,p– широта, отсчитываемая от северного полюса к южному. >with(plots): >sphereplot(F(t,p),t=a..b,p=c..d); поверхностьr=F(t,p). >sphereplot(1.2^t*sin(p),t= –3..6,p=0..Pi); «раковина улитки» Параметрическое задание поверхности в сферических координатах >sphereplot([r(u,v), t(u,v), p(u,v)], u=a..b, v=c..d); 15) Анимация в пространстве. >with(plots): >animate3d(f(x,y,p),x=a..b,y=c..d,p=A..B); динамика изменения поверхностиz=f(x,y,p) с изменением параметрар от А до В. >animate3d((x^2–y^2)*sin(p), x= –1..1, y= –1..1, p=0..2*Pi);
15.05.2015 43.5 Кб 6 LR.docx
16.08.2019 653.82 Кб 50 L_1_2_razd_mat_gr_1TD_-_kopia.doc
16.08.2019 587.78 Кб 7 L_3_razd_mat_Razdel_2.doc
06.05.2019 535.04 Кб 3 MAKROEKONOMIKA.doc
16.05.2015 17.31 Кб 12 Makro_kollokvium_1.docx
15.05.2015 394.4 Кб 40 MAPLE 11.docx
20.09.2019 791.04 Кб 4 Marketing_otvety_stolbikami.doc
15.05.2015 1.44 Mб 134 Matan-otvety_1.docx
15.05.2015 6.39 Mб 33 matan.doc
18.03.2016 254 Кб 67 Matematika_3_semestr.docx
18.03.2016 1.74 Mб 315 Material_dlya_diploma_1AS.docx
Ограничение
Для продолжения скачивания необходимо пройти капчу:
