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(
%;
Error, (in plot) incorrect first argument [x[1]^2-x[2]^2, x[1]^2-x[2]^2-1 = 0]
| |
| |
| |
Последний раз редактировалось ccoder 20.09.2011, 17:28, всего редактировалось 1 раз. Извиняюсь. Я тут плохо написал просто Хочу увидеть: | |
| |
Последний раз редактировалось ccoder 20.09.2011, 19:42, всего редактировалось 6 раз(а). — Вт сен 20, 2011 19:10:18 — Вот как-бы ещё тут график красиво нарисовать — Вт сен 20, 2011 19:11:34 — И ещё хотелбы спросить про | |
| |
Последний раз редактировалось Zealint 21.09.2011, 07:14, всего редактировалось 1 раз. Угроз правильному ответу быть не должно, так как он просто сообщает, что исходная точка сразу же удовлетворяет условиям оптимальности, то есть алгоритм не сделал ни одной итерации. Это не удивительно, так как у вас ограничение по сути, любая допустимая точка — оптимальный ответ. Соединять графики таким хитрым способом, как вам надо, не умею. Не уверен, что это вообще можно в Maple, но может быть кто-то другой подскажет. — Ср сен 21, 2011 07:14:26 — Если нужны линии уровня, можете начать с этого: | |
| |
Последний раз редактировалось ccoder 21.09.2011, 22:52, всего редактировалось 6 раз(а). Ну у меня само условие так написано. (если что) — Ср сен 21, 2011 22:45:18 — Тоесть нельзя-ли «придраться»? (к ответу) — Ср сен 21, 2011 22:51:29 — | |
| |
По идее, нельзя. У вас слишком простые задачи, поэтому Maple сразу угадывает нужную точку и даже не делает дополнительного спуска. На всякий случай об этом предупреждает. А если говорить строго, то в Maple хоть и существуют ошибки, но вряд ли они проявятся на таких простых примерах. Чистый математик обязательно вам скажет, что ответу не верит, так как не видел метода его получения. Он будет вынужден проверять его руками, чтобы убедиться. Так что ответ на «можно ли придраться» зависит от ситуации, в которой вы находитесь. | |
| |
Последний раз редактировалось ccoder 23.09.2011, 04:41, всего редактировалось 2 раз(а). Zealint , хочу сказать спасибо за помошь. Если Вы имеете времени |
Да, эти точек может быть больше, чем одна. Чтобы найти их все аналитически, нужно решать руками, так как Maple не поможет.
| |
| |
Страница 1 из 1 | [ Сообщений: 11 ] |
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей
Научный форум dxdy
Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Вход Регистрация | Donate FAQ Правила Поиск |
Maple нарисовать и застриховать на графике
Последний раз редактировалось ccoder 19.09.2011, 17:04, всего редактировалось 1 раз.
> plot(
%;
Error, (in plot) incorrect first argument [x[1]^2-x[2]^2, x[1]^2-x[2]^2-1 = 0]
| |
| |
| |
Последний раз редактировалось ccoder 20.09.2011, 17:28, всего редактировалось 1 раз. Извиняюсь. Я тут плохо написал просто Хочу увидеть: | |
| |
Последний раз редактировалось ccoder 20.09.2011, 19:42, всего редактировалось 6 раз(а). — Вт сен 20, 2011 19:10:18 — Вот как-бы ещё тут график красиво нарисовать — Вт сен 20, 2011 19:11:34 — И ещё хотелбы спросить про | |
| |
Последний раз редактировалось Zealint 21.09.2011, 07:14, всего редактировалось 1 раз. Угроз правильному ответу быть не должно, так как он просто сообщает, что исходная точка сразу же удовлетворяет условиям оптимальности, то есть алгоритм не сделал ни одной итерации. Это не удивительно, так как у вас ограничение по сути, любая допустимая точка — оптимальный ответ. Соединять графики таким хитрым способом, как вам надо, не умею. Не уверен, что это вообще можно в Maple, но может быть кто-то другой подскажет. — Ср сен 21, 2011 07:14:26 — Если нужны линии уровня, можете начать с этого: | |
| |
Последний раз редактировалось ccoder 21.09.2011, 22:52, всего редактировалось 6 раз(а). Ну у меня само условие так написано. (если что) — Ср сен 21, 2011 22:45:18 — Тоесть нельзя-ли «придраться»? (к ответу) — Ср сен 21, 2011 22:51:29 — | |
| |
По идее, нельзя. У вас слишком простые задачи, поэтому Maple сразу угадывает нужную точку и даже не делает дополнительного спуска. На всякий случай об этом предупреждает. А если говорить строго, то в Maple хоть и существуют ошибки, но вряд ли они проявятся на таких простых примерах. Чистый математик обязательно вам скажет, что ответу не верит, так как не видел метода его получения. Он будет вынужден проверять его руками, чтобы убедиться. Так что ответ на «можно ли придраться» зависит от ситуации, в которой вы находитесь. | |
| |
Последний раз редактировалось ccoder 23.09.2011, 04:41, всего редактировалось 2 раз(а). Zealint , хочу сказать спасибо за помошь. Если Вы имеете времени |
Да, эти точек может быть больше, чем одна. Чтобы найти их все аналитически, нужно решать руками, так как Maple не поможет.
| |
| |
Страница 1 из 1 | [ Сообщений: 11 ] |
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей