На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: shadeofgray, JoeUser
  
> кусочная функция на отрезке + табулирование + поиск экстремумов
Всем хай! Сходу к делу!

Нашел в сети такую задачку.
Дана функция на отрезке (см.рис.). Вводятся границы отрезка [a ... b] и n - число шагов табулирования(n > 80). Нужно протабулировать ф-цию на этом отрезке [a; b] и вывести результат в таком виде (табличном):

--------------------------------------------------------
| Текущее значение х | Значение функции | Экстремум |
--------------------------------------------------------

3-я колонка предназначена только для вывода МИН/МАКС значения функции.
Прикреплённая картинка
Прикреплённая картинка

- конец условия -


1. область определения ф-ции: [-1; 1]
2. все элементы графика составляют полуокружности (половина окружности единичного радиуса)
3.
если x = [0; 4] ИЛИ x = [8; 12], то y = +(1 - x^2)
если x = [4; 8], то y = -(1 - x^2)
*правда в формулах не просто х нужно подставлять, а учитывать сдвиг окружности (x^2 + y^2 = 1^2) вдоль оси Ох.

ГЛАВНАЯ ПРОБЛЕМА с выводом/поиском экстремальных значений функции.
1. хоть предельные значения заданной функции = +-1 нет гарантий, что табулирование пройдет строго через них, может пройти через окрестность
2. как я понимаю, периодичность появления, например, максимумов, не совпадает с периодичностью полуокружностей (№1, №2, №5 или №6). Из этого вытекает такое заключение, что НЕВОЗМОЖНО узнать максимумы до тех пор, пока не будет проведен анализ всего отрезка [a; b]?? Это приводит к тому, что ЗА ОДИН ЦИКЛ результирующую таблицу НЕВОЗМОЖНО построить? Вообще, это задача похожа, например, на задачу, когда нужно вывести на экран все максимальные элементы массива (за 1 цикл такое не делается, но за 1 цикл можно было бы узнать ОБЩЕЕ кол-во максимальных, без печати).
1-ый вопрос: невозможно ли построить результирующую таблицу ЗА 1 ЦИКЛ по отрезку [a; b]??
2-й вопрос: все эти окружности получаются парал.переносом окружности x^2 + y^2 = 1 вдоль оси Ох. Как оптимально обращаться к нужной окружности (их всего 6 штук) при текущем х?
Сообщение отредактировано: FasterHarder -
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Цитата FasterHarder @
1. область определения ф-ции: [-1; 1]

А график прорисован в [0, 12].

Цитата FasterHarder @
нет гарантий, что табулирование пройдет строго через них

А когда это таблично заданная недискретная функция давала точно значение экстремума?

Цитата FasterHarder @
1-ый вопрос: невозможно ли построить результирующую таблицу ЗА 1 ЦИКЛ по отрезку [a; b]??

Запросто. Формула есть, считать умеем...

Цитата FasterHarder @
2-й вопрос: все эти окружности получаются парал.переносом окружности x^2 + y^2 = 1 вдоль оси Ох. Как оптимально обращаться к нужной окружности (их всего 6 штук) при текущем х?

Параметризовать.
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Цитата Akina @
А график прорисован в [0, 12].

ок, попутал я здесь, конечно с областью допустимых значений ф-ции

Цитата Akina @
Запросто. Формула есть, считать умеем...

смотря, что считать. Для данного случая я не вижу такой возможности...)
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Надо обозначить всего лишь отрезки, где функция положительна или отрицательна. Т.е. нужна функция типа

y([0..4])=m
y([4..8])=n
y([8..12])=m
...

Это элементарно

y=(x DIV 4) MOD 2

имеет именно такой вид, m=0, n=1.

Аналогично размечаются и центры полуокружностей - по формуле

xo = (x DIV 2) * 2 + 1
Сообщение отредактировано: Akina -
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
Akina, твой предыдущий пост описывает, как я понял, параметризацию окружностей (определение центров), это все хорошо, но ГЛАВНАЯ проблема ведь не эта, а нахождение экстремальных за 1 проход табулирования...

еще раз о проблеме, на др.примере: дан одномерный массив целых чисел, нужно вывести на экран ВСЕ МАКСИМАЛЬНЫЕ И МИНИМАЛЬНЫЕ элементы. Вспомог.памяти использовать нельзя.
I originate
You must appreciate, all the others imitate

SCOOTER "GUEST LIST"

'Pon the mic I'm the teacher!
Spread my words like a preacher!
Yiiihhaaaa!!!!

SCOOTER "WEEKEND"
Цитата FasterHarder @
дан одномерный массив целых чисел, нужно вывести на экран ВСЕ МАКСИМАЛЬНЫЕ И МИНИМАЛЬНЫЕ элементы.

Ну так это ж типичный поиск локального экстремума. Если предыдущий больше текущего и пред-предыдущего - вывести. Ну и по-любому вывести первый и последний - они тоже локальные экстремумы. Три переменные под "доп. память" не подпадают же ж?
Сообщение отредактировано: Akina -
Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
Есть претензии ко мне как к участнику? да ради бога.
Не нравятся мои ответы? не читайте их.
В общем, берегите себя. Нервные клетки не восстанавливаются.
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1194 ]   [ 21 queries used ]   [ Generated: 17.02.20, 00:38 GMT ]