Форум программистов, компьютерный форум, киберфорум
jogano
Войти
Регистрация
Восстановить пароль

Сведение квадратичной формы к каноническому виду

Запись от jogano размещена 19.01.2014 в 21:16
Показов 4853 Комментарии 3
Метки геометрия

Есть квадратичная форма https://www.cyberforum.ru/cgi-bin/latex.cgi?Ax^2+2Bxy+Cy^2+2Dx+2Ey+F=0, которую нужно свести к каноническому виду. Последовательность действий такая:
1) Выполняется центрирование - перенос начала системы координат в такую точку https://www.cyberforum.ru/cgi-bin/latex.cgi?(x_0;y_0), чтобы коэффициенты https://www.cyberforum.ru/cgi-bin/latex.cgi?D,E были бы равны по 0. Т.е. вводятся новые координаты https://www.cyberforum.ru/cgi-bin/latex.cgi?(x';y') такие, чтобы https://www.cyberforum.ru/cgi-bin/latex.cgi?x=x'+x_0; y=y'+y_0. В общем виде https://www.cyberforum.ru/cgi-bin/latex.cgi?(x_0;y_0)=\left(\frac{BE-CD}{AC-B^2}; \frac{BD-AE}{AC-B^2}\right). Подставив вместо x , y выражения https://www.cyberforum.ru/cgi-bin/latex.cgi?x'+\frac{BE-CD}{AC-B^2},\: y'+\frac{BD-AE}{AC-B^2}, получаем центрированное уравнение https://www.cyberforum.ru/cgi-bin/latex.cgi?Ax'^2+2Bx'y'+Cy'^2+F-\frac{AE^2-2BDE+CD^2}{AC-B^2}=0. Свободный член обозначим как https://www.cyberforum.ru/cgi-bin/latex.cgi?F'=F-\frac{AE^2-2BDE+CD^2}{AC-B^2}.
Центрированное уравнение: https://www.cyberforum.ru/cgi-bin/latex.cgi?Ax'^2+2Bx'y'+Cy'^2+F'=0.
2) Далее систему координат, если это необходимо, поворачиваем вокруг нового начала координат так, чтобы коэффициент при произведении https://www.cyberforum.ru/cgi-bin/latex.cgi?x'y' был бы равен 0. Если у исходной кривой https://www.cyberforum.ru/cgi-bin/latex.cgi?B=0, то поворачивать систему координат не нужно - кривая после центрирования уже приведена к каноническому виду. При https://www.cyberforum.ru/cgi-bin/latex.cgi?B\ne 0 необходим поворот осей координат.
При повороте системы координат https://www.cyberforum.ru/cgi-bin/latex.cgi?(x';y') на угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha против часовой стрелки получаем новую систему координат https://www.cyberforum.ru/cgi-bin/latex.cgi?(x";y"). Формулы для преобразования такие:
https://www.cyberforum.ru/cgi-bin/latex.cgi?x'=x''\cdot \cos\alpha-y''\cdot \sin\alpha ;\;  y'=x''\cdot \sin\alpha +y''\cdot \cos\alpha.
Подставляя эти выражения вместо https://www.cyberforum.ru/cgi-bin/latex.cgi?x',y' в уравнение центрированной кривой и приравнивая коэффициент при https://www.cyberforum.ru/cgi-bin/latex.cgi?x''y'' к 0, получаем угол поворота. Этот коэффициент равен https://www.cyberforum.ru/cgi-bin/latex.cgi?(C-A)\sin 2\alpha +2B\cos 2\alpha
Возможны два варианта:
- https://www.cyberforum.ru/cgi-bin/latex.cgi?A=C, тогда https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha = \frac{\pi}{4} и кривая принимает канонический вид https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
<br />
(A+B)x''^2+(A-B)y''^2+F'=0
- https://www.cyberforum.ru/cgi-bin/latex.cgi?A\ne C, тогда угол ищется из уравнения https://www.cyberforum.ru/cgi-bin/latex.cgi?tg2\alpha=\frac{2B}{A-C} (в зависимости от знака тангенса берем угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha в пределах https://www.cyberforum.ru/cgi-bin/latex.cgi?(-\frac{\pi}{4};\:\frac{\pi}{4})). Тогда новые коэффициенты канонического уравнения https://www.cyberforum.ru/cgi-bin/latex.cgi?A'x''^2+C'y''^2+F'=0 будут равны
https://www.cyberforum.ru/cgi-bin/latex.cgi?A'=A\cos^2\alpha+2B\sin\alpha \cos\alpha +C\sin^2\alpha,
https://www.cyberforum.ru/cgi-bin/latex.cgi?C'=A\sin^2\alpha-2B\sin\alpha \cos\alpha +C\cos^2\alpha

Еще раз насчет системы координат - начало координат системы https://www.cyberforum.ru/cgi-bin/latex.cgi?(x'';y'') лежит в точке https://www.cyberforum.ru/cgi-bin/latex.cgi?(x_0;\: y_0), а оси повернуты вокруг этой точки на угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha (против часовой стрелки, если https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha >0 ) по отношению к осям системы (x;y).
Метки геометрия
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 3
Комментарии
  1. Старый комментарий
    Вообще-то, квадратичной формой (недавно как раз гуглил) все упорно называют однородный многочлен второго порядка, то бишь, без первых/нулевых степеней. Переменных там не обязательно две. И уж совершенно точно: квадратичная функция — это функция, а у тебя уравнение кривой второго порядка.
    Запись от iifat размещена 29.01.2014 в 15:15 iifat вне форума
  2. Старый комментарий
    Аватар для Matan!
    Цитата Сообщение от iifat
    Вообще-то, квадратичной формой (недавно как раз гуглил) все упорно называют однородный многочлен второго порядка, то бишь, без первых/нулевых степеней. Переменных там не обязательно две. И уж совершенно точно: квадратичная функция — это функция, а у тебя уравнение кривой второго порядка.
    Ну уж нет.В инете могут писать что угодно,но квадрат.форма определена правильно.Другое дело,каноническая квадратичная форма,содержащая только квадраты с коэффициентами 1.
    Запись от Matan! размещена 20.03.2014 в 09:32 Matan! вне форума
  3. Старый комментарий
    Аватар для jogano
    Цитата Сообщение от iifat
    Вообще-то, квадратичной формой (недавно как раз гуглил) все упорно называют однородный многочлен второго порядка, то бишь, без первых/нулевых степеней. Переменных там не обязательно две. И уж совершенно точно: квадратичная функция — это функция, а у тебя уравнение кривой второго порядка.
    Я писал так, как эта задача формулируется для студентов. Пусть будет кривая второго порядка. О квадратичной функции у меня ни слова.
    Запись от jogano размещена 20.03.2014 в 12:00 jogano вне форума
 
Новые блоги и статьи
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
Реляционная модель и правила Кодда: фундамент современных баз данных
Codd 05.04.2025
Конец 1960-х — начало 1970-х годов был периодом глубоких трансформаций в области хранения и обработки данных. На фоне растущих потребностей бизнеса и правительственных структур существовавшие на тот. . .
Асинхронные операции в Django с Celery
py-thonny 05.04.2025
Разработчики Django часто сталкиваются с проблемой, когда пользователь нажимает кнопку отправки формы и. . . ждёт. Секунды растягиваются в минуты, терпение иссякает, а интерфейс приложения замирает. . . .
Использование кэшей CPU: Максимальная производительность в Go
golander 05.04.2025
Разработчикам хорошо известно, что эффективность кода зависит не только от алгоритмов и структур данных, но и от того, насколько удачно программа взаимодействует с железом. Среди множества факторов,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер