![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Irina |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Irina Репутация: ![]() ![]() ![]() |
Мне нужно сделать задачку на численные методы на Паскале, но вот , к сожалению, нигде не могу найти ничего подобного: ни в интернете, ни на форуме... Посмотрите, пожалуйста. Если знаете, как делать, то подскажите. Может быть , где-то есть что-то подобное?
ЗАДАЧА: Найти минимум функции f(x,y) при условии g(x,y)=0 методом сканирования. Ну вообще, я так понимаю, что в данном случаи нужно использовать двумерное сканирование, то есть сканировать обе оси :х и у. Только вот тут не получится, как при одномерном сканировании ориентироваться на перемену знака, тут придется пользоваться малостью функции /f(x,y)/<e. Пожалуйста, если знаете , как реализовать эту задачу на паскале, то подскажите) |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
если знаете , как реализовать эту задачу на паскале, то подскажите) Но главное - уяснить алгоритм. Хочешь, я скажу тебе, почему тебе никто не ответил раньше? Потому что условие несколько путаное. То есть со сканированием все более-менее ясно (хотя и не все), но потом ты добавляешь какие-то слова про малость функции и смену знака, и эти слова полностью сбивают с толку. При чем тут это? Какая связь минимума со знаком? Минимум может быть и положительный, и отрицательный, и ноль.. Сравнивать нужно только соседние значения функции (ну, или не только соседние) при этом условие типа: A[i,j] < A[k,l] - не имеет никакого отношения к знакам, на первый взгляд.. Если я что-то упускаю или не так понимаю метод сканирования, пожалуйста, поясни. И вообще, изложи чуть более точно этот метод. Было бы неплохо просто скопировать пару предложений из учебника или конспекта... А написать программу сложности никакой не представит ![]() Ну, давай, успехов. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Irina |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Irina Репутация: ![]() ![]() ![]() |
Lapp, во-первых, большое спасибо за то , что откликнулся на просьбу и готов помочь.
Просто, на самом деле, я не очень понимаю, что нужно сделать, поэтому и обратилась за помощью... если б имела понятие, то пыталась бы всеми силами сама сделать. А тут даже не знаю, за что уцепиться. Насчет метода сканирования я тоже толком не знаю. Это задание нам на самоизучение, а в интернете никакого достойного материала я не нашла, к сожалению. Знаю только то, что в алгоритме метода сканирования функция просматривается достаточно малыми шагами h : но тут дело в том, что надо просматривать не просто одну ось x, а надо, как я понимаю проходить по узлам плоскости. И еще , вроде бы функция g(x,y) именно 0 значение не примет, поэтому придется использовать что-то типа if abs(g(x,y))<10^(-7) и т.п... Lapp, если не сложно, помоги сделать.* чувствую себя в эту минуту жутко тупой, мне стыдно*, но сама не могу справиться. еще небольшое уточнение: появились точные значения функций: f=x+y g=x^2+y^2-5 |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Irina, извини, я просто случайно пропустил твою тему.. Исправлюсь.
в алгоритме метода сканирования функция просматривается достаточно малыми шагами h : но тут дело в том, что надо просматривать не просто одну ось x, а надо, как я понимаю проходить по узлам плоскости. И еще , вроде бы функция g(x,y) именно 0 значение не примет, поэтому придется использовать что-то типа if abs(g(x,y))<10^(-7) и т.п... Lapp, если не сложно, помоги сделать.* чувствую себя в эту минуту жутко тупой, мне стыдно* Если сканирование означает просто перебор значений функции - то без разницы: одномерная она, двумерная или десятимерная. Сравнение с нулем действительно придется проводить с некоторой точностью (сначала я не совсем понял о чем речь). Естественно при этом в качестве точности брать, например, шаг сканирования. Можно также вводить значение точности как дополнительный параметр. Чего тут стыдного?.. ![]() ![]() Итак, тебе просто нужно организовать двойной цикл по координатам. Не совсем ясно, как выбрать границы сканирования. У тебя есть идеи? Прогу я набросаю в общих чертах и кину сюда. Сообщение отредактировано: Lapp - 16.05.2007 3:39 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 11:14 |