Error, (in plots:-pointplot) incorrect specification of points data
Error, (in plots:-pointplot3d) incorrect specification of points data
Error, (in plots/pointplot) incorrect first argument
|
|
|
||||||||||||||||||||||||||||||||||||||
Exponenta.ru
Образовательный математический сайт
Построить график функции из массива точек
Модератор: Admin
Построить график функции из массива точек
Сообщение csrnsdrfg1 » Чт дек 21, 2017 11:28 pm
Хочу построить график по точкам (x_i, f(x_i)). Чтобы точки автоматически соединились отрезками. Mapl’ом пользуюсь редко, так что сразу прощения за качество кода. Скажите, пожалуйста, где ошибка?
f := proc (omega) options operator, arrow; 2*omega*(int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100, continuous))/Pi end proc
N := 1000
arr := matrx(N, 2)
for i to N do arr[i][1] := 2.0*i/N end do
for i to N do arr[i][2] := evalf(f(arr[i][1])) end do
plot([arr[i][1], arr[i][2], i = 1 .. N])
«Error, (in plot) incorrect first argument [arr[11][1], arr[11][2], 11 = 1 .. 10]»
Re: Построить график функции из массива точек
Сообщение Markiyan Hirnyk » Пт дек 22, 2017 11:45 pm
gamma1 := 2.5:
f := proc (omega) options operator, arrow; 2*omega*(int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100))/Pi end proc;
N := 1000:
arr := Matrix(N, 2); for i to N do arr[i, 1] := 2.0*i/N end do:
for i to N do arr[i, 2] := evalf(f(arr[i, 1])) end do:
plot(arr);
Re: Построить график функции из массива точек
Сообщение Kitonum » Сб дек 23, 2017 9:08 am
Re: Построить график функции из массива точек
Сообщение Markiyan Hirnyk » Сб дек 23, 2017 12:21 pm
restart; s := time(); gamma1 := 2.5; f := proc (omega) options operator, arrow; 2*omega*(Int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100))/Pi end proc; N := 1000; arr := Matrix(N, 2); for i to N do arr[i, 1] := 2.0*i/N end do; for i to N do arr[i, 2] := evalf(f(arr[i, 1])) end do; plot(arr); time()-s;
17.407
restart; s := time(); gamma1 := 2.5; N := 1000; f := proc (omega) options operator, arrow; 2*omega*(Int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100))/Pi end proc; arr := [seq([2*i/N, evalf(f(2*i/N))], i = 1 .. N)]; plot(arr); time()-s;
17.906
Источник
Научный форум dxdy
Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Вход Регистрация | Donate FAQ Правила Поиск |
Maple нарисовать и застриховать на графике
Последний раз редактировалось ccoder 19.09.2011, 17:04, всего редактировалось 1 раз.
> plot(, x = -2 .. 2);
%;
Error, (in plot) incorrect first argument [x[1]^2-x[2]^2, x[1]^2-x[2]^2-1 = 0]
Zealint | |
|
|
ccoder | |
Последний раз редактировалось ccoder 20.09.2011, 17:28, всего редактировалось 1 раз. Извиняюсь. Я тут плохо написал просто Хочу увидеть: |
|
ccoder | |
Последний раз редактировалось ccoder 20.09.2011, 19:42, всего редактировалось 6 раз(а). — Вт сен 20, 2011 19:10:18 — Вот как-бы ещё тут график красиво нарисовать — Вт сен 20, 2011 19:11:34 — И ещё хотелбы спросить про |
|
Zealint | |
Последний раз редактировалось Zealint 21.09.2011, 07:14, всего редактировалось 1 раз. Угроз правильному ответу быть не должно, так как он просто сообщает, что исходная точка сразу же удовлетворяет условиям оптимальности, то есть алгоритм не сделал ни одной итерации. Это не удивительно, так как у вас ограничение по сути, любая допустимая точка — оптимальный ответ. Соединять графики таким хитрым способом, как вам надо, не умею. Не уверен, что это вообще можно в Maple, но может быть кто-то другой подскажет. — Ср сен 21, 2011 07:14:26 — Если нужны линии уровня, можете начать с этого: |
|
ccoder | |
Последний раз редактировалось ccoder 21.09.2011, 22:52, всего редактировалось 6 раз(а). Ну у меня само условие так написано. (если что) — Ср сен 21, 2011 22:45:18 — Тоесть нельзя-ли «придраться»? (к ответу) — Ср сен 21, 2011 22:51:29 — |
|
Zealint | |
По идее, нельзя. У вас слишком простые задачи, поэтому Maple сразу угадывает нужную точку и даже не делает дополнительного спуска. На всякий случай об этом предупреждает. А если говорить строго, то в Maple хоть и существуют ошибки, но вряд ли они проявятся на таких простых примерах. Чистый математик обязательно вам скажет, что ответу не верит, так как не видел метода его получения. Он будет вынужден проверять его руками, чтобы убедиться. Так что ответ на «можно ли придраться» зависит от ситуации, в которой вы находитесь. |
|
ccoder | |
Последний раз редактировалось ccoder 23.09.2011, 04:41, всего редактировалось 2 раз(а). Zealint , хочу сказать спасибо за помошь. Если Вы имеете времени |
Да, эти точек может быть больше, чем одна. Чтобы найти их все аналитически, нужно решать руками, так как Maple не поможет.
ccoder | |
|
|
Страница 1 из 1 | [ Сообщений: 11 ] |
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей
Источник
Научный форум dxdy
Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Вход Регистрация | Donate FAQ Правила Поиск |
Maple нарисовать и застриховать на графике
Последний раз редактировалось ccoder 19.09.2011, 17:04, всего редактировалось 1 раз.
> plot(, x = -2 .. 2);
%;
Error, (in plot) incorrect first argument [x[1]^2-x[2]^2, x[1]^2-x[2]^2-1 = 0]
Zealint | |
|
|
ccoder | |
Последний раз редактировалось ccoder 20.09.2011, 17:28, всего редактировалось 1 раз. Извиняюсь. Я тут плохо написал просто Хочу увидеть: |
|
ccoder | |
Последний раз редактировалось ccoder 20.09.2011, 19:42, всего редактировалось 6 раз(а). — Вт сен 20, 2011 19:10:18 — Вот как-бы ещё тут график красиво нарисовать — Вт сен 20, 2011 19:11:34 — И ещё хотелбы спросить про |
|
Zealint | |
Последний раз редактировалось Zealint 21.09.2011, 07:14, всего редактировалось 1 раз. Угроз правильному ответу быть не должно, так как он просто сообщает, что исходная точка сразу же удовлетворяет условиям оптимальности, то есть алгоритм не сделал ни одной итерации. Это не удивительно, так как у вас ограничение по сути, любая допустимая точка — оптимальный ответ. Соединять графики таким хитрым способом, как вам надо, не умею. Не уверен, что это вообще можно в Maple, но может быть кто-то другой подскажет. — Ср сен 21, 2011 07:14:26 — Если нужны линии уровня, можете начать с этого: |
|
ccoder | |
Последний раз редактировалось ccoder 21.09.2011, 22:52, всего редактировалось 6 раз(а). Ну у меня само условие так написано. (если что) — Ср сен 21, 2011 22:45:18 — Тоесть нельзя-ли «придраться»? (к ответу) — Ср сен 21, 2011 22:51:29 — |
|
Zealint | |
По идее, нельзя. У вас слишком простые задачи, поэтому Maple сразу угадывает нужную точку и даже не делает дополнительного спуска. На всякий случай об этом предупреждает. А если говорить строго, то в Maple хоть и существуют ошибки, но вряд ли они проявятся на таких простых примерах. Чистый математик обязательно вам скажет, что ответу не верит, так как не видел метода его получения. Он будет вынужден проверять его руками, чтобы убедиться. Так что ответ на «можно ли придраться» зависит от ситуации, в которой вы находитесь. |
|
ccoder | |
Последний раз редактировалось ccoder 23.09.2011, 04:41, всего редактировалось 2 раз(а). Zealint , хочу сказать спасибо за помошь. Если Вы имеете времени |
Да, эти точек может быть больше, чем одна. Чтобы найти их все аналитически, нужно решать руками, так как Maple не поможет.
ccoder | |
|
|
Страница 1 из 1 | [ Сообщений: 11 ] |
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей
Источник
-
csrnsdrfg1
- Сообщения: 3
- Зарегистрирован: Чт дек 21, 2017 10:49 pm
Построить график функции из массива точек
Хочу построить график по точкам (x_i, f(x_i)). Чтобы точки автоматически соединились отрезками. Mapl’ом пользуюсь редко, так что сразу прощения за качество кода. Скажите, пожалуйста, где ошибка?
Код: Выделить всё
gamma1 := 2.5
f := proc (omega) options operator, arrow; 2*omega*(int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100, continuous))/Pi end proc
N := 1000
arr := matrx(N, 2)
for i to N do arr[i][1] := 2.0*i/N end do
for i to N do arr[i][2] := evalf(f(arr[i][1])) end do
plot([arr[i][1], arr[i][2], i = 1 .. N])
«Error, (in plot) incorrect first argument [arr[11][1], arr[11][2], 11 = 1 .. 10]»
-
Markiyan Hirnyk
- Сообщения: 1366
- Зарегистрирован: Вс дек 04, 2011 11:07 pm
Re: Построить график функции из массива точек
Сообщение Markiyan Hirnyk » Пт дек 22, 2017 11:45 pm
Вот исправленный код
Код: Выделить всё
gamma1 := 2.5:
f := proc (omega) options operator, arrow; 2*omega*(int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100))/Pi end proc;
N := 1000:
arr := Matrix(N, 2); for i to N do arr[i, 1] := 2.0*i/N end do:
for i to N do arr[i, 2] := evalf(f(arr[i, 1])) end do:
plot(arr);
, работающий в Мэйпле 2017.3.
-
Kitonum
- Сообщения: 2084
- Зарегистрирован: Ср дек 31, 2008 1:55 pm
- Откуда: г. Пенза
Re: Построить график функции из массива точек
Сообщение Kitonum » Сб дек 23, 2017 9:08 am
То же самое можно написать короче и без циклов, если использовать команду seq и обычные списки:
restart;
gamma1 := 2.5: N:=1000:
f := omega->2*omega*(Int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100))/Pi;
arr:=[seq([2*i/N,evalf(f(2*i/N))], i=1..N)]:
plot(arr);
-
Markiyan Hirnyk
- Сообщения: 1366
- Зарегистрирован: Вс дек 04, 2011 11:07 pm
Re: Построить график функции из массива точек
Сообщение Markiyan Hirnyk » Сб дек 23, 2017 12:21 pm
Выполнение кода ускоряет замена int на Int. Использование seq ускоряет его несущественно:
Код: Выделить всё
restart; s := time(); gamma1 := 2.5; f := proc (omega) options operator, arrow; 2*omega*(Int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100))/Pi end proc; N := 1000; arr := Matrix(N, 2); for i to N do arr[i, 1] := 2.0*i/N end do; for i to N do arr[i, 2] := evalf(f(arr[i, 1])) end do; plot(arr); time()-s;
17.407
restart; s := time(); gamma1 := 2.5; N := 1000; f := proc (omega) options operator, arrow; 2*omega*(Int(cos((omega^2-2/gamma1-1)*x)*BesselJ(0, x/gamma1), x = 0 .. 100))/Pi end proc; arr := [seq([2*i/N, evalf(f(2*i/N))], i = 1 .. N)]; plot(arr); time()-s;
17.906
Сообщения без ответов | Активные темы | Избранное
|
Maple нарисовать и застриховать на графике
|
25/02/11 |
Здравствуйте. Код: > f(x):=(x[1])^(2)-(x[2])^(2); > plot({f(x), g[1](x)}, x = -2 .. 2); И не получаеться нарисовать два графика Цитата: Error, (in plot) incorrect first argument [x[1]^2-x[2]^2, x[1]^2-x[2]^2-1 = 0] И ещё хотел-бы узнать как можно в случае если точек получается множество. Заштриховать их.
|
|
|
Zealint |
Re: Maple нарисовать и застриховать на графике
|
26/01/10 |
Ничего не понял из описания задачи. Если надо нарисовать два графика, это делается, например, так Код: with(plots):
|
|
|
ccoder |
Re: Maple нарисовать и застриховать на графике
|
25/02/11 |
Извиняюсь. Я тут плохо написал просто Хочу увидеть:
|
|
|
ccoder |
Re: Maple нарисовать и застриховать на графике
|
25/02/11 |
1. Решение. С этим пунктом уже справился Цитата: > NLPSolve(x[1]^2-x[2]^2, {x[1]^2-x[2]^2-1 = 0}); — Вт сен 20, 2011 19:10:18 — Вот как-бы ещё тут график красиво нарисовать — Вт сен 20, 2011 19:11:34 — И ещё хотелбы спросить про Цитата: Warning, no iterations performed as initial point satisfies first-order conditions которое получается если сделать Цитата: > NLPSolve(x[1]-x[2]^2, {x[1]^2+x[2]^2-5 <= 0, x[1]-x[2]-1 = 0}); а именно. Если какие угрозы правильному ответу? — Вт сен 20, 2011 19:17:41 — 2. График самой функции и (другим цветом) ограничение. Вот очень хотелбы получить вот такое чтото похожее
|
|
|
Zealint |
Re: Maple нарисовать и застриховать на графике
|
26/01/10 |
Угроз правильному ответу быть не должно, так как он просто сообщает, что исходная точка сразу же удовлетворяет условиям оптимальности, то есть алгоритм не сделал ни одной итерации. Это не удивительно, так как у вас ограничение по сути, любая допустимая точка — оптимальный ответ. Соединять графики таким хитрым способом, как вам надо, не умею. Не уверен, что это вообще можно в Maple, но может быть кто-то другой подскажет… — Ср сен 21, 2011 07:14:26 — Если нужны линии уровня, можете начать с этого: Код: with(plots): Наверное, это как-то можно раскрасить, если поработать со справкой по команде.
|
|
|
ccoder |
Re: Maple нарисовать и застриховать на графике
|
25/02/11 |
по сути, любая допустимая точка — оптимальный ответ. Слушайте. Мне вот тут надо найти и я сомневаюсь правильный-ли ответ, а именно полный-ли он Цитата: > NLPSolve(x[1]-x[2]^2, {x[1]^2+x[2]^2-5 <= 0, x[1]-x[2]-1 = 0}); ] ] — Ср сен 21, 2011 22:09:44 — Цитата: Лично я не знаком с этой функцией Maple, поэтому не отвечу. Вообще не видел, чтобы целевая функция стремилась к extr, надо либо min, либо max. На худой конец устремить к константе, но не все сразу. Ну у меня само условие так написано. (если что) — Ср сен 21, 2011 22:45:18 — Тоесть нельзя-ли «придраться»? (к ответу) — Ср сен 21, 2011 22:51:29 —
|
|
|
Zealint |
Re: Maple нарисовать и застриховать на графике
|
26/01/10 |
Тоесть нельзя-ли «придраться»? (к ответу) По идее, нельзя. У вас слишком простые задачи, поэтому Maple сразу угадывает нужную точку и даже не делает дополнительного спуска. На всякий случай об этом предупреждает. А если говорить строго, то в Maple хоть и существуют ошибки, но вряд ли они проявятся на таких простых примерах. Чистый математик обязательно вам скажет, что ответу не верит, так как не видел метода его получения. Он будет вынужден проверять его руками, чтобы убедиться. Так что ответ на «можно ли придраться» зависит от ситуации, в которой вы находитесь.
|
|
|
ccoder |
Re: Maple нарисовать и застриховать на графике
|
25/02/11 |
Zealint , хочу сказать спасибо за помошь. Если Вы имеете времени Цитата: extrema(x[1]-x[2]^2, {x[1]^2+x[2]^2-5 <= 0, x[1]-x[2]-1 = 0}) хотя если убрать Цитата: x[1]^2+x[2]^2-5 <= 0 то работает.
|
|
|
Zealint |
Re: Maple нарисовать и застриховать на графике
|
26/01/10 |
Попал то он попал я только боюсь что этих точек может быть больше Да, эти точек может быть больше, чем одна. Чтобы найти их все аналитически, нужно решать руками, так как Maple не поможет. Цитата: Цитата: extrema(x[1]-x[2]^2, {x[1]^2+x[2]^2-5 <= 0, x[1]-x[2]-1 = 0}) хотя если убрать Цитата: x[1]^2+x[2]^2-5 <= 0 то работает. Не могу ответить, я не знаю как работает функция extrema. Может она с неравенствами не работает?
|
|
|
ccoder |
Re: Maple нарисовать и застриховать на графике
|
25/02/11 |
Цитата: This function employs the method of Lagrange multipliers. Цитата: Может она с неравенствами не работает? похоже что так
|
|
|
ccoder |
Re: Maple нарисовать и застриховать на графике
|
25/02/11 |
Уже понял как. Цитата: extrema(x[1]-x[2]^2, {x[1]-x[2]-1 = 0}) и получается одна точка.
|
|
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
EmilyFendior 0 / 0 / 0 Регистрация: 18.02.2017 Сообщений: 1 |
||||
1 |
||||
Не строятся графики18.02.2017, 21:30. Показов 1071. Ответов 2 Метки нет (Все метки)
Здравствуйте! Я установила maple 18 и запустила пример, который работал на другом компьютере и все прекрасно строил, а у меня выдает ошибки. В чем может быть причина? Код правильный 100% , может, нужно на комп дополнительно что-то поставить?
__________________
0 |
2644 / 2220 / 239 Регистрация: 03.07.2012 Сообщений: 8,064 Записей в блоге: 1 |
|
19.02.2017, 09:16 |
2 |
Лучше прикладывать файл с кодом, а не эту кашу.
0 |
409 / 224 / 136 Регистрация: 21.02.2011 Сообщений: 4,484 |
|
20.02.2017, 16:34 |
3 |
вы привели преобразованный код, естественно он не будет работать.
0 |