Как стать автором
Обновить

Комментарии 16

Предлагаю давать чуть больше контекста по математическим выкладкам, всё таки в тегах заявлен C++ (которого в статье нет :( ).

Например, в C++ (который Вы упоминаете в первом абзаце) результат выражения (AX, X) очень часто оказывается равен X. (а для "классического" скалярного произведения вроде бы (поправьте) существует другое обозначение, не скобки).

Скалярное произведение в рамках вариационного исчесления обозначают (X, Y). Под классическим, понимается скалярное произведение в ортонормированном базисе, например ДПСК i, j, k. В ОНБ матрица Грамма - единичная матрица и в записи X^T * Г * Y опускается, образуется тензорная свертка. Другими словами тензораная свертка - сумма произведений соответсвующих элементов: x1y1+x2y2+ ... + xnyn.

" результат выражения (AX, X) очень часто оказывается равен X " - скалярное произведение в евклидовом линейном пространстве - вещественное число, оно не может равняться вектору. Про контекст услышал, согласен, его не хватает. В ближайщее время добавлю.

С++ - статье указано, что методы решения СЛАУ будут реализовны на плюсах, от слов не отказываюсь. Но в данной части методы не приведены, а реализации отдельных операциях либо слишком просты, либо наооброт настолько сложны, что требует отдельных статей. Например редукционные реализации скалярного произведения на графическом процессоре.

Спасибо за комментарий!

"Связь решения СЛАУ и минимума квадратичного функционала» постараюсь осветить различные методы решения СЛАУ, которые редко можно встретить в учебниках по линейной алгебре." - сказано слишком самонадеянно, в любом приличном учебнике лин.алгеб. это описано.

Согласен, но это вступление, думаю просительно. В добавок суть в том, чтобы одним языком и поставить задачу и рассказать о методах решения. Связать все воедино, четко (насколько мне по силами) и понятно. И можете пожалуйста сослаться на учебники, которые Вы имеете ввиду?

Если Вы не знаете учебники, то....не беритесь писать теорию, лучше поясняйте программированием Си, Си++, и т.д.

Статья написана крайне скверно, перепишите, пожалуйста, в традиционных терминах, нормально используя ТеХ (разделение и перенос длинных строк, использование \left( и \right), смотреть больно). Что такое \theta ? Вы имели в виду \varnothing ? Если да, то так и пишите, если нет -- вводите обозначение корректно.

Тут на помощь приходят итерационные методы, такие как покоординатный спуск, сопряженные градиенты и градиентный спуск

Вы назвали методы численной оптимизации -- они могут использоваться в итерационном методе решения, но необязательно. Итерационный метод определяется иначе.

Квадратная симметричная матрица A размерности n на n называется положительно определенной, когда для любого вектора X (кроме нулевого) координатного вещественного пространства R^n выполняется неравенство:

Положительно определённая матрица определяется иначе. Если у Вас не так, то вводите корректно, описывая, почему не подходят уже известные определения.

В дополнении советую прочитать про критерий Сильвестра.

Почитайте о нём сами, пожалуйста. А заодно расскажите, как именно он связан с Вашей статьей, читателей надо уважать и не отправлять изучать матчасть, если взялись её рассказывать сами.

Постепенно начнем отвечать на второй вопрос.

Но так нигде и не закончим. Я догадываюсь (к сожалению, только догадываюсь: Ваш текст не даёт мне никакой опоры), что Вы имели в виду во всей основной части статьи, но Вы так и не выдвинули главный тезис, в котором связали бы положительную определенность, критерий Сильвестра и применение приближенных методов оптимизации к решению СЛАУ. Статья без главного и четко выраженного тезиса оказалась набором слов ни о чём конкретно.

Для обобщения утверждения введем функционал (в данном случае это просто
функция, у которой аргумент вектор столбец, (AX,X) - "классическое"
склярное произведение в ортонормированном базисе) и построим теорему:

Вы хотели сказать "аргумент вектор-столбец", пишите по-русски, пожалуйста. То есть, введем просто функцию векторного аргумента. Функция векторная, или Вы имеете в виду функционал из функционального анализа, который сопоставляет функции некий скаляр? И вот тут стоило бы упомянуть, что (AX,X) = \mathbf{xA}^\mathrm{T} \mathbf{x}^\mathrm{T}, и всё было бы куда проще.

В итоге, у меня сложилось впечатление, что автор просто перепечатывает сюда плохо записанные лекции какого-то преподавателя, не очень четко понимая, где и что введено и почему. Рекомендую прочитать источник ещё раз с карандашом, в самой идее есть рациональное интересное зерно, ради него можно постараться. И я тоже жду C++.

Ну и наконец, из комментариев:

И можете пожалуйста сослаться на учебники, которые Вы имеете ввиду?

Это Вы, пожалуйста, предоставьте список источников и дополнительной литературы! Нельзя писать просто так текст без источников, либо сразу объявляйте, что он весь -- Ваша оригинальная работа и Вы -- автор каждого утверждения и знака.

Рекомендую обратиться к книгам:

  1. Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. Пер. с англ. — М.: Мир, 1985

  2. Березин, И. С., Жидков Н. П. Методы вычислений. — М.: Физматлит, 1959. — Т. II.

  3. Самарский А. А., Гулин А. В. Численные методы: Учеб, пособие для вузов,—М.: Наука. Гл. ред. физ-мат. лит., 1989.

Обратите, пожалуйста, внимание -- все источники достаточно старые, но вполне покрывают Ваши нужды. Стоит ли говорить, что существует целый пласт более современной литературы по вопросу, на которую стоило бы Вам сослаться.

Вы не совсем правы :

1) Человек пишет , что это " вступление " , то есть предполагается раскрытие темы...да - в последствии ( может быть )...

2 ) Положительно определенная матрица во многих учебниках по линейной алгебре определяется именно так , как написано в данной статье . Да и ваша ссылка демонстрирует - это критерий положительной матрицы , что автоматически предполагает , что само определение может быть иным .

3 ) Употребление термина функционал вполне уместно здесь , так как в общем случае это отображение в кольцо ( в частности - в поле ) .То есть не просто функция векторных аргументов , а именно отображение в поле .

4 ) И уж придираться к орфографии ( вектор столбец вместо вектор-столбец ) не имеет смысла .

  1. Да, поэтому я всё ещё жду и C++, но многие вещи надо раскрывать сразу на месте.

  2. Во многих -- да, а во многих -- нет. Здесь никак не пояснено, почему нам надо определить именно так, почему не подходят другие определения, и как этот выбор определения связан с сутью статьи. Я хотел обратить внимание на то, что определяется ещё и по-другому, в чём разница?

  3. Это явный оверхед, автор (не статьи, а источника материала статьи) прав, но явно имел в виду не функционал как отображение в кольцо, а моя претензия такая же, как и в п.2. Это явно функционал, но автору статьи не удалось прямо и честно написать, что и куда отображается (религия не позволяет?), в обозначениях путаница: с первого и даже со второго взгляда не разберёшься, где вектор, а где скаляр.

  4. Нет, я это заметил, значит делаю замечание, я же трачу время на этот текст. Там ещё "СЛАУ" не в том роде употреблено. Всё, хватит это терпеть, мы не на Пикабу и не на конкурсе по дальности плевков, буду пинать за орфографию в статьях с претензией на науку точно. Орфография, грамматика, стилистика, лексика -- полезу в драку за эти вещи, Вы же не против моих замечаний по использованию TeX? Вот здесь это то же самое, нельзя писать как попало, текст не соберётся.

За комментарий спасибо. Но он, к сожалению, только подчеркивает мою главную претензию: в статье нет тезиса, нет систематичности, которая позволила бы избежать других моих замечаний, не было бы кривых оборотов и нелепых фраз, зато сразу стало бы ясно, о чём мы говорим, какие ограничения и свойства у всех сущностей, как они обозначены и взаимосвязаны. А не "рекомендую почитать про критерий Сильвестра". Можно и статью тогда было написать одной фразой: "минимум квадратичного функционала и решение СЛАУ связаны, кому надо -- тот разберётся", и всё, если настолько плевать на содержание.

1 ) Человек написал , что планируется 4 статьи : первая - " Связь решения СЛАУ и минимума квадратичного функционала " . В данной статье эта связь явно обозначена . Поэтому все верно : ждите !

2 ) А ему не надо пояснять , почему именно так - это зависит от " структуры лекций " . Главное - определение корректно . А вот ваша ссылка " сама пишет " - это КРИТЕРИЙ . То есть - само определение явно другое .

И еще : если уж быть настолько педантичным , то нужно требовать доказательства всех инвариантов линейного оператора ( которые есть коэффициенты характеристического многочлена ) . Это к вопросу ссылки - " определения " положительности матрицы через собственные числа ....

3 ) " оверхед " , если я правильно понимаю ( не програмист ) - избыточные вычисления . При чем здесь само понятие " функционал " , которое подчеркивает - это именно отражение в кольцо ( в нашем случае - поле ) . А у вас , кстати : " ...То есть, введем просто функцию векторного аргумента...." . Правда следом вы пишите : " это явно функционал " .... то есть отображение именно в поле ( в нашем случае ) . Так об этом и пишет автор !!! Поэтому ( и не только ) и употребил слово функционал : результат - " скаляр " .

И еще : не знаю кому и как , но лично мне было понятно везде - где скаляр , а где вектор .

4 ) Да , это не пикабу , но и не " диссертационный совет " . Что же касается ТеХ , то лично я ( например ) использую " Maple " и как это " вставить сюда " , не совсем понимаю ( за ненадобностью ) . Может у человека аналогичная ситуация ?

Что же касается самой претензии в отсутствии систематичности : формально - трудно спорить , но ...есть такие категории как педагогика и такт....

  1. Согласен (и с "И ещё..." -- тоже).

  2. "Оверхед" в данном случае -- это Ваше предположение о том, что автор это вот поэтому-то сделал, потому что хотел как лучше и имел в виду сложное. Нет, похоже, что не имел: то сложное, что Вы предположили -- слишком сложное, явно не из этого исходил автор. Со всем остальным в Вашем пункте 3 согласен.

  3. Да, это не диссовет, но вполне себе аналог рецензируемого издания, а их мало и стоило бы воспользоваться шансом улучшить качество своего текста бесплатно. А вообще говоря, из-за страха устроить случайно диссовет где-то у нас повсюду пикабу расцветает и еще хуже. Опубликованные тексты от надписей на заборе уже давно отличит только специалист, а Вы всё диссоветов боитесь. Что касается формул и что как и куда вставлять -- ну так человек, решившийся на публикацию должен или не должен разобраться в какие кнопки как тыкать? Как Вам кажется?

Что же касается главной претензии: я вот выше сейчас написал, что согласен с Вами в почти каждом слове. Вот только я хотел эти же слова увидеть от автора, с какими-то минимальными корректурами, заодно он бы подразобрался и подтянул бы стиль у текста. Но ради демонстрации Вашей тактичности и Вашего лозунга о педагогике (причем здесь педагогика, автор -- явно взрослый?) автору больше не надо ни думать, ни стараться. Это полный педагогический успех, коллега, поздравляю Вас.

Во многих -- да, а во многих -- нет. Здесь никак не пояснено, почему нам
надо определить именно так, почему не подходят другие определения, и
как этот выбор определения связан с сутью статьи. Я хотел обратить
внимание на то, что определяется ещё и по-другому, в чём разница?

Так это курс по линейной алгебре надо переписывать сюда, зачем? Положительно определенная квадратичная форма, что логично, принимает положительные значения на всех ненулевых векторах --- это же определение совершенно естественное. Ну и соответственно матрица положительно определена, если такова ее кв. форма. Тут ничего знать не надо, и неопытный читатель вроде легче переварит такое определение, чем через собственные числа.
Жалко, что автор ограничился лишь одномерным случаем, где неопределенных матриц не бывает. Нарисовал бы еще седло и параболоид, и было бы понятно, что в сигнатуре (2, 0) все хорошо, а в сигнатуре (1,1) все плохо. И все еще доступно старшекласснику.

И вот тут стоило бы упомянуть, что (AX,X) = \mathbf{xA}^\mathrm{T} \mathbf{x}^\mathrm{T}, и всё было бы куда проще.

Вот ровно наоборот для меня. Дело привычки, думаю. Круглые (или угловые) скобки распознаются как скалярное произведение, так что все сразу понятно --- отображаемся из линейного пространства в поле скаляров (ну да, векторы лучше строчными буквами обозначать, конечно, но сигнатура (в программистском смысле) функции понятна сразу). А при такой записи, как у вас, каждый раз надо напрягаться, считать размерности, чтобы понять, ответ --- это число или матрица ранга 1? И вообще, корректна ли эта запись?

Так это курс по линейной алгебре надо переписывать сюда, зачем?

А у меня возникло стойкое впечатление, что автор его не знает, этого самого курса. Слова у него написаны правильные, но бессвязно, потому я и сказал, что он не свой текст сюда пишет.

Вы тоже всё правильно говорите, вот только я не думаю, что автор это всё имел в виду. А надо, чтобы точно имел, раз публикует, либо писал иначе.

Первое что скажу, спасибо за активное обсуждения, все прочитал и принял к сведению. Касаемо оформления - согласен, не красиво, буду исправлять.

Линейная алгебра и оригинал. Оригинала как такого нет, еще довольно давно я прочитал о минимизации в книге, но в ней был сильный упор в доказательствах на ЛА, мне захотелось упростить все это дело и поиграть с понятием «функционал», которое в книге было, но сути не имело. Теперь я встречаю обратное явление - нехватка ЛА.

По моему мнению, главная проблема статьи это отсутствие плавных переходов и аргументации действий! Почему мы ввели именно такой функционал? Почему мы наложили именно положительную определенность, есть же еще отрицательно определенные матрицы. Над этими вопросами я размышляю и ищу ответы в литературе. (Вопрос положительной определенности, как таковой, как мне показалось, осветил достаточно. Именно положительная определенность утверждает нам, что функционал имеет минимум, нелинейная часть приращения строго больше нуля, что уже дает основание использовать методы градиентного спуска и его производный МСГ).

Еще вопрос к комментаторам: Конечно, я упомянул реализацию на C++, но почему такой ажиотаж? Как по мне, реализовать методы - это тривиальная задача, которая проще, чем их понять. Реализация будет последовательной, не параллельной. У меня есть готовые алгоритмы на CUDA C, но они по большей части упираются в особенности организации матричных операций, поскольку МСГ и градиентный спуск построены на них. «Внешний» код от C++ реализации вообще ни чем не отличается.

Нет ли какого-нибудь утверждения, что решение СЛАУ может быть (приближенно?) представлено в виде ряда по степеням матрицы А, действующего на столбец В?

Здравствуйте! Не рассматривал это вопрос, но возможно вам стоит посмотреть в сторону собственных значений основной матрицы системы, поскольку соответствующие собственные векторы образуют базис пространства Крылова. В методе сопряженных градиентов, как раз минимальное число шагов, по которым мы можем найти точное решение СЛАУ есть число уникальных собственных значений, а направления движения образуют ортогональный базис. Таким образом, решение СЛАУ можно разложить по этому базису. Касаемо ряда по степеням A, возможно Вам поможет книга «Вычислительные методы» в двух томах В. И. Крылов, В. В. Бобков, П. И. Монастырный 1976 г.. Конкретно 1 том 127 стр.

Было бы неплохо, чем ни будь практическим дополнить.

Например:

  1. Алгоритм Левенберга — Марквардта

  2. "Решение" систем нелинейных уравнений.

PS: Я понимаю, что практика у каждого своя...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории