Re: Шлях на математичну вершину
таке питання, є у нас ось така система рівнянь
x + 2y + 3z = 100
x + y + z = 50
як знайти такі x, y, z, аби z та y були максимально можливими? (пріорітет надається z)
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Алгоритми та структури даних, технології → Шлях на математичну вершину
Сторінки Попередня 1 … 29 30 31 32 33 … 41 Наступна
Для відправлення відповіді ви повинні увійти або зареєструватися
таке питання, є у нас ось така система рівнянь
x + 2y + 3z = 100
x + y + z = 50
як знайти такі x, y, z, аби z та y були максимально можливими? (пріорітет надається z)
Розв'язуємо:
z = x
y=50-2x
Пріоритет у z? Ставте якомога більший x - матимете якомога більший z
x y і z повинні бути додатніми, при цьому треба знайти такі значення, аби Z було найбільшим, далі йшло Y, і далі X,
тобто, Z = 20, y = 15, і x = 10
Ну так це задача лінійного програмування. Є лінійні рівняння і умова z>=y>=x>=0. Але з рівнянь можна знайти z=x. Отже, єдиний розв'язок - це z=x=y=50/3. У загальному випадку користуйтеся сімплекс-методом.
https://uk.wikipedia.org/wiki/Лінійне_програмування
таке питання, є у нас ось така система рівнянь
x + 2y + 3z = 100 x + y + z = 50
як знайти такі x, y, z, аби z та y були максимально можливими? (пріорітет надається z)
// Дано =============================
x + 2y + 3z = 100 // a
x + y + z = 50 // b
// Знайдемо z(x) ====================
x + 2y + 3z = 100 // a
2x + 2y + 2z = 100 // b * 2
-x + z = 0 // a - (b * 2)
// ----------------------------------
z = x
// Знайдемо y(x) ====================
3x + 3y + 3z = 150 // b * 3
x + 2y + 3z = 100 // a
2x + y = 50 // (b * 3) - a
// ----------------------------------
y = 50 - 2x
З останнього рівняння видно, що як мінімум один із { x, y } буде від'ємним.
Тобто для ( x >= 0 && y >= 0 ) система не має розв'язків.
Розв'язуємо:
z = x
y=50-2x
Пріоритет у z? Ставте якомога більший x - матимете якомога більший z
Як ви то рахуєте, я не розумію.
Є лінійні рівняння і умова z>=y>=x>=0. Але з рівнянь можна знайти z=x. Отже, єдиний розв'язок - це z=x=y=50/3.
Поділіться з нами, звідки ви взяли умову ( y >= x ) ?
upd: Оце я затупив. Здається треба виходити з запою.
leofun01, ви в правій частині b * 2 забули 50 на 2 домножити.
Це ви мого першого допису по цій темі не бачили
колись дивився відео, де пояснюється, звідки взялись оті формули для вирішення квадратного рівняння, і воно мені почало снитись ще тиждень тому, то я думаю - чи зможу вивести хоч щось близьке до тих формул, але вийшло, як завжди
https://cdn.discordapp.com/attachments/333936584481177600/452205815600906261/complete_square.png
1. Записую саме рівняння
2. Знищую нуля
3. x^2 представляю як площу квадрата зі стороною x, котра множиться на a, bx представляю як площу прямокутника зі сторонами x та b.
4. розділяю прямокутник bx вздовж x і отримую два прямокутничка зі сторонами x та b/2, додаю ці два прямокутничка до двох перпендикулярних сторін квадрата, і отримую недороблений квадрат, від котрого відкушений маленький квадрат зі стороною b/2. Додаю до цього квадрата маленький квадрат, аби доповнити його і отримати один великий квадрат, і так самомо додаю цей маленький квадрат до -c.
Далі я намагаюсь вивести формулу для x, а потім тестую її, і виходить невірне рішення.
Могли б ви, будь ласка, сказати, де я помилився?
Не треба знищувати нуль, треба виділяти повний квадрат. Формулу квадрата суми пам'ятаєте - (a+b)^2=a^2+b^2+2ab. А ми маємо ax^2+bx+c=0 і хочемо запхати всі члени з x в квадрат. Отже,
(sqrt(a)x)^2+2*sqrt(a)x*b/(2*sqrt(a))+c=0
Перший член - повний квадрат. Другий - добуток 2 на корінь з першого на ще якийсь вираз. Ось цей вираз підносимо до квадрата і додаємо та віднімаємо:
(sqrt(a)x)^2+2*(sqrt(a)x)*(b/(2*sqrt(a)))+b^2/(4a)-b^2/(4a)+c=0
(sqrt(a)x+b/(2sqrt(a)))^2 = b^2/(4a)-c
(x+b/2)^2=b^2/(4a^2)-c/a
x+b/2=sqrt(b^2-4ac)/(2a)
А ви, коли додавали квадратик (b^2/4), забули, що там ще на a він множиться, і його, відповідно, треба помножити і поділити.
Можу ще порадити одразу поділити на a (якщо a=0, то це не квадратне рівняння) і замінити p=b/a і q=c/a, відповідно,
x^2+px+q=0
Так розв'язувати його буде легше. А потім підставите назад.
нічого не зрозумів, з того, що ви написали вище, але осьо. як тре було
https://cdn.discordapp.com/attachments/333936584481177600/452511257392578570/unknown.png
і от відео те
https://www.youtube.com/watch?v=EBbtoFMJvFc
моя проблема була в тому, що я вчасно не знищував a
koala
а чому ви додаєте, та віднімаєте те, що представляє b^2 ?
хіба ми не перетворюємо ax^2 + bx в a^2 + 2ab + b^2 ?
бо зараз виглядає так, що ми перетворюємо лише в a^2+2ab
Рівність
+(+a +b)^2 = +a^2 +2*a*b +b^2
перепозначимо
a -> s
b -> t
+(+s +t)^2 = +s^2 +2*s*t +t^2
, щоб не плутати з коефіцієнтами рівняння
+a*x^2 +b*x +c = 0 // eq
Саме рівняння теж перепозначимо
+a*x^2 = +s^2
+sqrt(+a)*x = +s
+x = +s/sqrt(+a)
+s^2 +b*s/sqrt(+a) +c = 0 // eq
+s^2 +2*s*b/(+2*sqrt(+a)) +c = 0 // eq
+b/(+2*sqrt(+a)) = +t
+s^2 +2*s*t +c = 0 // eq
// - сума не містить повного квадрата,
// тому ми його пхаємо насильно :
+s^2 +2*s*t +t^2 -t^2 +c = 0 // eq
// але рівність повинна залишитися рівністю, тому +t^2 -t^2
+(+s +t)^2 -t^2 +c = 0 // eq
// виділили повний квадрат
+(+s +t)^2 = +t^2 -c // eq
+s +t = [+|-]sqrt(+t^2 -c) // eq
+s = -t [+|-]sqrt(+t^2 -c) // eq
+s = +sqrt(+a)*x
+t = +b/(+2*sqrt(+a))
+sqrt(+a)*x = -b/(+2*sqrt(+a)) [+|-]sqrt(+(+b/(+2*sqrt(+a)))^2 -c) // eq
+sqrt(+a)*x = -b/(+2*sqrt(+a)) [+|-]sqrt(+b^2/(+4*a) -c) // eq
// ділимо на +sqrt(+a) :
+x = -b/(+2*a) [+|-]sqrt(+b^2/(+4*a) -c)/sqrt(+a) // eq
// виносимо /(+2*a) :
+x = +(-b [+|-]sqrt(+b^2 -4*a*c))/(+2*a) // eq
хіба ми не перетворюємо ax^2 + bx в a^2 + 2ab + b^2 ?
Ні.
бо зараз виглядає так, що ми перетворюємо лише в a^2+2ab
Так і є.
нінініні, я ж хотів сам це все розписати, я не читаю ваш допис, пане leofun01!!!!
осьо, що я раніше був писав, але не відправив
ну окей, я зрозумів ваш хід думок, і він дуже некрасивий і не є юзер френдлі, ви, по суті, просто використовуєте грубу силу, як ото колодою стіну розбивати - так, це дієво, але це тааак неелегантно, і треба мати багацько сили, аби то зробити.
Тепер поясню для таких, як я, хто теж не зрозумів то відразу.
Пан koala перетворює
ax^2+bx+c в a^2+b^2+2ab.
Зачіпати є сенс лише ax^2 та bx, тому що с - то константа, котра не має при собі ніяких змінних, а в a^2+b^2+2ab a та b є змінними. При цьому a у нас, це ax^2, а b - bx. Тепер нам потрібно, аби ось це a було в квадраті, але мало те саме значення.
Для цього ми беремо корінь з a, множимо на x, і весь вираз підносимо до кореня, таким чином отримуємо (sqrt(a)*x)^2. Якщо розв'язати цей вираз, то ми отримаємо a (тому що корінь з а в квадраті буде а, так як корінь і квадрат знищують одне одного), що множиться на x, котре піднесене до квадрату, тобто, маємо те саме ax^2.
Далі ми отримуємо 2ab. Пам'ятаймо, що a - це sqrt(a)*x, тому спочатку записуємо 2*sqrt(a)*x, що є еквівалентом 2ax^2, і тепер нам потрібно помножити цей вираз на таке значення, аби при вирішенні всього виразу у нас вийшло bx.
Таким виразом буде b/(2*sqrt(a)). Чому? Погляньте на весь вираз - 2*sqrt(a)*x * b/(2*sqrt(a)). Бачите 2*sqrt(a) ?
Спочатку ми множимо на цей вираз (на 2*sqrt(a)), а потім ми ділимо на нього, таким чином цей вираз можна спростити до x*b, тобто, маємо те саме bx.
На даному етапі ми вже маємо a^2+2ab частину, але нам ще треба знайти b^2. З попереднього виразу ми бачимо, що якщо sqrt(a)*x - це a, тоді b/(2*sqrt(a)) - це b. Отже нашим b^2 буде (b/2*sqrt(a))^2.
Тепер ми маємо наступне
((sqrt(a)*x)^2) * (2*sqrt(a)*x * b/(2*sqrt(a))) +c = 0
де вираз в перших скобках відповідає за a^2, а вираз в других скобках відповідає за 2ab, тепер, аби зробити цей вираз схожим на a^2+2ab+b^2 нам ще потрібно додати b^2, але якщо ми додаємо щось зайве до лівої частини, тоді ми порушуємо рівність, і ліва частина вже не буде дорівнювати 0.
Давайте спочатку знайдемо еквівалент b^2. Якщо 2ab - це 2*sqrt(a)*x * b/(2*sqrt(a)), а a - це (sqrt(a)*x)^2, тодв b - це b/(2*sqrt(a)), а b^2 - це (b/(2*sqrt(a)))^2 котре також можна записати, як b^2/(4a).
І тепер ми можемо додати це b^2 до нашого виразу, але, щоб рівність не ламалась, ми відразу ж віднімаємо b^2
((sqrt(a)*x)^2) * (2*sqrt(a)*x * b/(2*sqrt(a))) + b^2/(4a) - b^2/(4a) +c = 0
таким чином ліва частина рівняння має шматок, котрий можна перетворити на еквівалент (a+b)^2, і після цього перетворення ми маємо
(sqrt(a)*x + b/(2*sqrt(a)))^2 - b^2/(4a) + c = 0
а далі там вже спрощення йдуть, в котрих я не розбираюсь.
Рівність
+(+a +b)^2 = +a^2 +2*a*b +b^2
перепозначимо
a -> s
b -> t
+(+s +t)^2 = +s^2 +2*s*t +t^2
, щоб не плутати з коефіцієнтами рівняння
+a*x^2 +b*x +c = 0 // eq
Саме рівняння теж перепозначимо
+a*x^2 = +s^2
+sqrt(+a)*x = +s
+x = +s/sqrt(+a)+s^2 +b*s/sqrt(+a) +c = 0 // eq
+s^2 +2*s*b/(+2*sqrt(+a)) +c = 0 // eq
+b/(+2*sqrt(+a)) = +t
+s^2 +2*s*t +c = 0 // eq
// - сума не містить повного квадрата,
// тому ми його пхаємо насильно :
+s^2 +2*s*t +t^2 -t^2 +c = 0 // eq
// але рівність повинна залишитися рівністю, тому +t^2 -t^2+(+s +t)^2 -t^2 +c = 0 // eq
// виділили повний квадрат+(+s +t)^2 = +t^2 -c // eq
+s +t = [+|-]sqrt(+t^2 -c) // eq
+s = -t [+|-]sqrt(+t^2 -c) // eq+s = +sqrt(+a)*x
+t = +b/(+2*sqrt(+a))+sqrt(+a)*x = -b/(+2*sqrt(+a)) [+|-]sqrt(+(+b/(+2*sqrt(+a)))^2 -c) // eq
+sqrt(+a)*x = -b/(+2*sqrt(+a)) [+|-]sqrt(+b^2/(+4*a) -c) // eq
// ділимо на +sqrt(+a) :
+x = -b/(+2*a) [+|-]sqrt(+b^2/(+4*a) -c)/sqrt(+a) // eq// виносимо /(+2*a) :
+x = +(-b [+|-]sqrt(+b^2 -4*a*c))/(+2*a) // eqFakiNyan написав:хіба ми не перетворюємо ax^2 + bx в a^2 + 2ab + b^2 ?
Ні.
FakiNyan написав:бо зараз виглядає так, що ми перетворюємо лише в a^2+2ab
Так і є.
дякую, але всі ці зайві + та * роблять ваші дописи важко читати
Все так. Але дуже раджу вам не сприймати цей прийом за "грубу силу" - це досить просте і елегантне рішення, насправді. Якщо для вас воно заскладне, то або розв'яжіть півсотні задач зі Сканаві групи Б, щоб воно стало для вас нормальним... або математика - то не ваше.
так математика дійсно не моє, але я вважаю, що навіть людина з 0 талантом до математики може стати великим математиком, тут просто потрібне бажання та час. Той талант, то як "фора", деякі люди вже народжуються з, наприклад, 10 рівнем математики, а деяким треба починати з 0, + я ще не кожне пояснення сприймаю, то тре або пояснення перетворити в таке, що мозок може сприйняти, або сидіти і кулупати те "неелегантне і грубе" пояснення, аби воно запихнулось мені в мозок і сприйнялось нормально.
До речі, як ви зробили ось це?
(sqrt(a)x+b/(2sqrt(a)))^2 = b^2/(4a)-c
(x+b/2)^2=b^2/(4a^2)-c/a
ліва частина виглядає, ніби кожен додаток домножили на 1/sqrt(a), а права, ніби на 1/a
(sqrt(a)x+b/(2sqrt(a)))^2 = b^2/(4a)-c
(x+b/2)^2=b^2/(4a^2)-c/ax+b/2=sqrt(b^2-4ac)/(2a)
Мабуть, там помилка. Мало вийти :
(sqrt(a)x+b/(2sqrt(a)))^2 = b^2/(4a)-c
(x+b/(2a))^2 = b^2/(4a^2)-c/a
x+b/(2a) = sqrt(b^2-4ac)/(2a)
До речі, як ви зробили ось це?
(sqrt(a)x+b/(2sqrt(a)))^2 = b^2/(4a)-c
(x+b/2)^2=b^2/(4a^2)-c/aліва частина виглядає, ніби кожен додаток домножили на 1/sqrt(a), а права, ніби на 1/a
Зліва квадрат.
Якщо l^2 = s, то (l*sqrt(a))^2 = s*a