Как получить переменную из сложного уравнения?
Выбор региона:
-
Все регионы
-
Россия
- Москва
- Санкт-Петербург
- Адыгея
- Башкортостан
- Бурятия
- Алтай
- Дагестан
- Ингушетия
- Кабардино-Балкария
- Калмыкия
- Карачаево-Черкесия
- Карелия
- Коми
- Марий Эл
- Мордовия
- Саха (Якутия)
- Северная Осетия
- Татарстан
- Тыва (Тува)
- Удмуртская Республика
- Хакасия
- Чеченская Республика
- Чувашская Республика
- Алтайский край
- Краснодарский край
- Красноярский край
- Приморский край
- Ставропольский край
- Хабаровский край
- Амурская область
- Архангельская область
- Астраханская область
- Белгородская область
- Брянская область
- Владимирская область
- Волгоградская область
- Вологодская область
- Воронежская область
- Ивановская область
- Иркутская область
- Калининградская область
- Калужская область
- Кемеровская область
- Камчатская область
- Кировская область
- Костромская область
- Курганская область
- Курская область
- Ленинградская область
- Липецкая область
- Магаданская область
- Московская область
- Мурманская область
- Нижегородская область
- Новгородская область
- Новосибирская область
- Омская область
- Оренбургская область
- Орловская область
- Пензенская область
- Пермский край
- Псковская область
- Ростовская область
- Рязанская область
- Самарская область
- Саратовская область
- Сахалинская область
- Свердловская область
- Смоленская область
- Тамбовская область
- Тверская область
- Томская область
- Тульская область
- Тюменская область
- Ульяновская область
- Челябинская область
- Ярославская область
- Еврейская авт. область
- Ненецкий АО
- Ханты-Мансийский АО
- Чукотский АО
- Ямало-Ненецкий АО
- Забайкальский край
- Украина
- Белоруссия
- Грузия
- Туркмения
- Узбекистан
- Таджикистан
- Молдавия
- Киргизия
- Казахстан
- Армения
- Азербайджан
- США
- Израиль
- Чехия
- Германия
- Литва
- Эстония
- Латвия
- Другие регионы
- Без региона
-
Россия
3 февраля 2017 в 22:24 | 4451 | Россия / Башкортостан
Я пишу программу, которая должна решать задачи на нахождение условного экстремума по методу множителей Лагранжа. На одном из этапов столкнулся с уравнением, в котором всего одна переменная, но я не знаю как её выразить, т.к. уравнение сложное. Подскажите, пожалуйста, как можно выразить переменную, которая содержится в разных дробях, находясь в них при этом и в числителях, и в знаменателях? Степеней нет.
В уравнении коэффициенты a, b и c - заранее известные числа, вводимые пользователем. Коэффициент может равняться нулю и чаще всего половина или больше половины коэффициентов (а их всего 13) равны нулю.
Обновление от 04.02.2017 в 21:03 (мск): сайт почему не даёт возможность оставить комментарий: нажимаю добавить комментарий, ввожу текст, проверочные цифры, нажимаю Enter - но комментарий не добавляется, поэтому добавлю сюда:
Аналогичный тексту ниже в удобном виде с возможностью редактирования здесь: https://docs.google.com/document/d/1iE5jklPPBhGLe3_c98c1LDatQLywaqKmG7smJo9NfL8/edit?usp=sharing
a_1-a_6 ,b_1-b_6 и c_2-это заранее известные (вводимые пользователем) числа.Нужно выразить x. L(x)=a_1 x^2+a_2 y^2+a_3 z^2+a_4 x+a_5 y+a_6 z+c_1+λ(b_1 x^2+b_2 y^2+b_3 z^2+b_4 x+b_5 y+b_6 z+c_2 ) Получим производные по х, y и z. L_x^\'=2a_1 x+a_4+2λb_1 x+λb_4 L_y^\'=2a_2 y+a_5+2λb_2 y+λb_5 L_z^\'=2a_3 z+a_6+2λb_3 z+λb_6 Построим систему уравнений, приравнях производные и то, что стоит в скобочках после лямбды, к нулю. {█(2a_1 x+a_4+2λb_1 x+λb_4=0@2a_2 y+a_5+2λb_2 y+λb_5=0@2a_3 z+a_6+2λb_3 z+λb_6=0@b_1 x^2+b_2 y^2+b_3 z^2+b_4 x+b_5 y+b_6 z+c_2=0)┤ Наша задача из системы получить значения x,y,z – это будут координаты точки, которая в дальнейшем будет определена как условный максимум или минимум. Для этого выразим x,y,z из первых трёх уравнений и подставим в 4-е уравнение. В итоге 4-е уравнение примет следующий вид: a_1 (-(a_4+b_4 λ)/(2(a_1+b_1 λ)))^2+a_2 (-(a_5+b_5 λ)/(2(a_2+b_2 λ)))^2+a_3 (-(a_6+b_6 λ)/(2(a_3+b_3 λ)))^2+a_4 (-(a_4+b_4 λ)/(2(a_1+b_1 λ)))+a_5 (-(a_5+b_5 λ)/(2(a_2+b_2 λ)))+a_6 (-(a_6+b_6 λ)/(2(a_3+b_3 λ)))+c_2=0 Когда нам известны значения коэффициентов a_1-a_6 ,b_1-b_6 и c_2, то 4-е уравнение принимает простой вид, из которого легко получить значение для лямбды. Подставляя данное значение в первые три уравнения, мы получим искомые x,y,z. Дальше через матрицу мы сможем определить тип точки (или точек). Однако при написании программы мы не знаем какими будут коэффициенты, в т.ч. мы не знаем какие из них будут нулевыми (а нулевых будет большинство), поэтому 4-е уравнение получается таким громоздким. Но я не могу понять как из него выразить лямбду. Пока только приходит на ум сделать перебор: присваивать лямбде значения от -100 до 100 и с шагом 1 подставлять значение и сравнивать выполняется равенство или нет. Т.е. беру -100 подставляю, потом -99 и так до 100. Но этот алгоритм длителен по выполнению и ограничен, т.к. вдруг лямбда будет за диапазоном [-100;100] или не будет целым числом. Можно, конечно, сделать и перебор в диапазоне [-100,99;100,99] – но это всё ограничивает возможности программы и скорость работы, т.к. в худшем случае при данном диапазоне придётся совершить 20000 переборов.
- Файл: 580_f_41_kak-poluchit-peremennuyu-iz-slozhnogo-uravneniya.gif
- Содержание файла: Задача
|
Добавить комментарий