ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

23.12.2009, 01:28
|
|
Познающий
Регистрация: 08.05.2009
Сообщений: 46
Провел на форуме: 1403678
Репутация:
55
|
|
Тупой вопрос ( или я )
Привет ачат. Прошу вашей помощи, просветите "умного" студента
Есть такое задание:
написать программу на С++ которая бы Вычислила 18 значений функции y=ax^2+bx+c на отрезке [e,f], сохранила их в массиве Y и определила, имеет ли уравнение y=ax^2+bx+c на отрезке [e,f] хотя бы один корень.
Саму програмку написать не сложно, минут 5-10. Вот только я самого смысла не понимаю. Как можно узнать имеет ли уравнение y=ax^2+bx+c на отрезке [e,f] хотя бы один корень. ?
Типа эти 18-ть значений которые я сохранил в векторе Y попеременно подставлять в уравнение и проверять не равно ли оно нулю ? Или как ?
p,s почему не в раздел кодинга ? Потому что я не прошу написать программу 
|
|
|

23.12.2009, 01:34
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Проверяй меняют ли знак значения функции... Если в массиве имеются как положительные, так и отрицательные значения, то в силу непрерывнсти функции y=ax^2+bx+c, она будет иметь корень....
Кстати говоря, если знак не меняется, это ещё не значит, что корней нет... Тут нужно проверить ещё одно условие (монотонность) то есть упорялоченность твоего массива значений по возрастанию или убыванию...
И вообще не граматно составлена задача с математической точки зрения.. На сто процентов нельзя будет сказать что нет корней на отрезке если значения окажутся все одного знака и упорядоченны по возрастанию и убыванию...
Но вот если знаки разные или значения не упорядочены, то 100% есть хотябы один корень...
Последний раз редактировалось Fepsis; 23.12.2009 в 01:42..
|
|
|

23.12.2009, 01:46
|
|
Познающий
Регистрация: 08.05.2009
Сообщений: 46
Провел на форуме: 1403678
Репутация:
55
|
|
Тут нужно проверить ещё одно условие (монотонность) то есть упорялоченность твоего массива значений по возрастанию или убыванию...
Не, первого условия я думаю достаточно так как в задании написано :
имеет ли уравнение y=ax^2+bx+c НА ОТРЕЗКЕ [e,f]. Тоесть все что дальше отрезке, мне пофиг 
В общем, спасибо, щас допишу програмку 
|
|
|

23.12.2009, 02:06
|
|
Познавший АНТИЧАТ
Регистрация: 22.11.2007
Сообщений: 1,822
Провел на форуме: 4468361
Репутация:
1549
|
|
задача имеет однозначное решение. Мне лень обьяснять аналитически, посему я покажу графическое решение.
Корнями, удовлетворяющими задачу будет пересечение графика квадратного уравнения с отрезком.
18 раз - это 18 раз задаются новые параметры уравнения. Логично предположить, что отрезок будет статически задан один для одного массива, хотя это не важно. Если реализуешь аналитическое общее решение, то тебе не надо будет долго думать как переделать код под препода, да и препод поймет, что, по сути, ты все знаешь.
|
|
|

23.12.2009, 21:06
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Да, со вторым условием я намудрил  ...
Сообщение от Cthulchu
задача имеет однозначное решение.
В задаче требуется сделать вывод о наличии (отсутствии) корней на отрезке... Как я понял вывод этот должен быть сделан как раз из этих 18-ти значений функции на отрезке, а иначе, какой смысл их находить... Так вот по 18-ти значениям нельзя делать вывод об отсутствии корней... Я приведу пример с конкретными значениями:
написать программу на С++ которая бы Вычислила 18 значений функции y=x^2+2.8x+1.9 на отрезке [-18,-1], сохранила их в массиве Y и определила, имеет ли уравнение y=x^2+2.8x+1.9 на отрезке [-18,-1] хотя бы один корень.
Так вот, программа находит значения функции в 18-ти точках (шаг не обязательно одинаковый, просто для примера)
x : y
-18 : 275,5
-17 : 243,3
-16 : 213,1
-15 : 184,9
-14 : 158,7
-13 : 134,5
-12 : 112,3
-11 : 92,1
-10 : 73,9
-9 : 57,7
-8 : 43,5
-7 : 31,3
-6 : 21,1
-5 : 12,9
-4 : 6,7
-3 : 2,5
-2 : 0,3
-1 : 0,1
Видим, что значение функции не меняет знак.. Какой вывод сделает программа..?! что на отрезке [-18,-1] уравнение x^2+2.8x+1.9=0 не имеет корней... Хотя на самом деле корни есть и даже 2.. Т.к. на промежутке (-2, -1) функция 2 раза меняет знак...
|
|
|

23.12.2009, 23:25
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
а что мешает найти корни уравнения и проверить их на вхождение в промежуток [e;f]? или я чего-то не понял?
|
|
|

24.12.2009, 01:33
|
|
Новичок
Регистрация: 04.06.2009
Сообщений: 3
Провел на форуме: 73724
Репутация:
6
|
|
Что мешает повторить курс математики за 7 класс, и посмотреть как находятся корни 3-хчлена? http://ru.wikipedia.org/wiki/Теорема_Виета
Если кратко - существует два корня если дискриманант больше нуля, одно - если Д равен нулю, и комплексные решения если он меньше нуля.
Последний раз редактировалось Retro; 24.12.2009 в 01:41..
|
|
|

24.12.2009, 01:57
|
|
Познающий
Регистрация: 08.05.2009
Сообщений: 46
Провел на форуме: 1403678
Репутация:
55
|
|
а что мешает найти корни уравнения и проверить их на вхождение в промежуток [e;f]? или я чего-то не понял?
Оо...точно, а я об этом и не подумал даже.
ну да лан, уже сделал как сделал. Если надо будет переделать - переделаю с дискриминантом
Видим, что значение функции не меняет знак.. Какой вывод сделает программа..?! что на отрезке [-18,-1] уравнение x^2+2.8x+1.9=0 не имеет корней... Хотя на самом деле корни есть и даже 2.. Т.к. на промежутке (-2, -1) функция 2 раза меняет знак...
Тогда по идее надо просто большее количество значений найти. Ну к примеру, 50.... хотя не, это тупо. Если отрезок большой то и 50 и 1000 значений не хватит.... кароче, надо дискриминант
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|