SSerge 6 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба Для такой задачи естественно нормировать вектор коэффициентов так, чтобы Σxi=1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба Для такой задачи естественно нормировать вектор коэффициентов так, чтобы Σxi=1 Да, наверное. С частными производными совсем запарно. Несколько листов A4 исписал. За всем не уследить. Наверное, аналитическое решение в данном случае не оправдано из-за своей огромной ресурсоемкости. Хотя, возможно там можно все упростить... Но может численные методы будут попроще. У меня не получается применить МНК. Метод слабо понял. Прошу, подскажите, как действовать? В математике сам далеко не "айс". Для такой задачи естественно нормировать вектор коэффициентов так, чтобы Σxi=1 Но коэффициенты могут быть и отрицательными. Причины необходимости такой нормировки не понимаю. Почему не достаточно задать один из коэффициентов константой? С частными производными совсем запарно. Несколько листов A4 исписал. Удалось значительно упростить систему линейных уравнений, когда мат. ожидания векторов на входе сделал нулевым. (Тогда МО сгенерированного вектора NewVector тоже стало нулевым) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба Все вектора на входе не нулевые. Все же речь идет о снятых показаниях сигналов. Не совсем уж теоретическое применение. Ну какой упертый Ну хорошо, вот вам парочка ненулевых векторов, для "прочувствования" минимизации при разных ограничениях. <1,0,0> и <0,1,0>. Система получается невырожденная. И только не говорите мне теперь, что хоть вектора коэффициентов и не пропорциональны, но минимум получается одинаковый. Если так думаете - умножьте в условии второй вектор на 2. :laughing: Для такой задачи естественно нормировать вектор коэффициентов так, чтобы Σxi=1 Мне кажется, скорее всего, там совершенно естественно нормировать среднее значение результата на 1. С частными производными совсем запарно. Несколько листов A4 исписал. За всем не уследить. Наверное, аналитическое решение в данном случае не оправдано из-за своей огромной ресурсоемкости. Хотя, возможно там можно все упростить... Но может численные методы будут попроще. У меня не получается применить МНК. Метод слабо понял. Прошу, подскажите, как действовать? В математике сам далеко не "айс". Вы просто не умеете их готовить B) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба Ну какой упертый Ну хорошо, вот вам парочка ненулевых векторов, для "прочувствования" минимизации при разных ограничениях. <1,0,0> и <0,1,0>. Система получается невырожденная. И только не говорите мне теперь, что хоть вектора коэффициентов и не пропорциональны, но минимум получается одинаковый. Если так думаете - умножьте в условии второй вектор на 2. :laughing: Действительно, упертый! Мне кажется, скорее всего, там совершенно естественно нормировать среднее значение результата на 1. Хорошо, покажу как делать для нормировки среднего значения результата на единицу. Пусть А - это матрица, состоящая из столбцов - исходных векторов, а x - вектор неизвестных коэффициентов. Нужно минимизировать квадратичную норму вектора I-A*x, где I - это вектор-столбец, состоящий из единиц. Решение этой задачи хорошо известно, выводить здесь не буду, хоть оно тривиально выводится аналитически дифференцированием дисперсии по x: x=inv(A'*A)*A'*I, что эквивалентно решению системы линейных уравнений (A'*A)*x=A'*I. Единственная тонкость - если матрица A'*A вырождена. Например, в исходных данных два одинаковых столбца. В этом случае линейная система оказывается недоопределенной, имеет бесконечное количество решений, и можно взять любое решение - все решения дают одинаковую дисперсию. Кстати, I может быть произвольным вектором, а не только вектором, состоящим из одних единиц, от этого выражение решения, минимизирующее сумму квадратов разности, не изменится. В матричной алгебре на уровне такого объяснения не понимаю. Чайник совсем. При нулевом МО входных векторов после дифференцирования получилась удобносчитаемая матрица линейных уравнений. Осталось только запрограммировать. Из общения понял, что матричная алгебра - отличный инструмент. Но перед изучением желательно представлять, для каких задач (и их практичность) она бывает полезна. К сожалению, студентам об этом часто забывают рассказать-показать, говоря только о теоретической части и давая задачи для закрепления тоже теоретического плана. При нулевом МО входных векторов после дифференцирования получилась удобносчитаемая матрица линейных уравнений. Получилась матрица из N уравнений, а неизвестных (N - 1). Это нормально? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 · Жалоба В матричной алгебре на уровне такого объяснения не понимаю. Чайник совсем. При нулевом МО входных векторов после дифференцирования получилась удобносчитаемая матрица линейных уравнений. Осталось только запрограммировать. Из общения понял, что матричная алгебра - отличный инструмент. Но перед изучением желательно представлять, для каких задач (и их практичность) она бывает полезна. К сожалению, студентам об этом часто забывают рассказать-показать, говоря только о теоретической части и давая задачи для закрепления тоже теоретического плана. Там на самом деле была у меня ошибка. С минимизацией именно дисперсии результата при фиксированном среднем не всё так просто, приведенное решение не гарантирует равенство единице среднего от результата, а находит решение, минимизирующее сумму квадратов отклонений результата от единиц. Для нормировки среднего результата на единицу нужно сделать пару промежуточных шагов, но я лучше для примера покажу, как решать то, что вы ищете - как делать для выделенного первого вектора с коэффициентом 1. Пусть А - это матрица, состоящая из столбцов - исходных векторов, начиная со второго, y - первый исходный вектор (выделенный), I - вектор-столбец, состоящий из единиц, а x - вектор-столбец неизвестных коэффициентов, начиная со второго коэффициента (первый известен). Задача - минимизировать квадратичную норму вектора y+A*x-m*I, где m - также неизвестное среднее значение результата, которое, как известно, само минимизирует дисперсию результата при остальных фиксированных членах выражения. Пусть B=[i -A], а z=[m; x], тут мы добавляем к -A спереди единичный столбец и добавляем к столбцу неизвестных коэффициентов еще один неизвестный коэффициент - среднее значение результата. Тогда задача сводится к нахождению наилучшего решения переопределенной системы B*z=y, из линейной алгебры хорошо известно, что точное решение в большинстве случаев не существует, а минимизирующее квадратичную норму ошибки решение есть z=pinv(B )*y, то есть z - есть решение возможно недоопределенной системы N линейных уравнений (B'*B )*z=B'*y. Найдя z мы явно получаем x и m как его компоненты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 6 сентября, 2010 Опубликовано 6 сентября, 2010 (изменено) · Жалоба Там на самом деле была у меня ошибка. С минимизацией именно дисперсии результата при фиксированном среднем не всё так просто, приведенное решение не гарантирует равенство единице среднего от результата, а находит решение, минимизирующее сумму квадратов отклонений результата от единиц. Для нормировки среднего результата на единицу нужно сделать пару промежуточных шагов, но я лучше для примера покажу, как решать то, что вы ищете - как делать для выделенного первого вектора с коэффициентом 1. Пусть А - это матрица, состоящая из столбцов - исходных векторов, начиная со второго, y - первый исходный вектор (выделенный), I - вектор-столбец, состоящий из единиц, а x - вектор-столбец неизвестных коэффициентов, начиная со второго коэффициента (первый известен). Задача - минимизировать квадратичную норму вектора y+A*x-m*I, где m - также неизвестное среднее значение результата, которое, как известно, само минимизирует дисперсию результата при остальных фиксированных членах выражения. Пусть B=[i -A], а z=[m; x], тут мы добавляем к -A спереди единичный столбец и добавляем к столбцу неизвестных коэффициентов еще один неизвестный коэффициент - среднее значение результата. Тогда задача сводится к нахождению наилучшего решения переопределенной системы B*z=y, из линейной алгебры хорошо известно, что точное решение в большинстве случаев не существует, а минимизирующее квадратичную норму ошибки решение есть z=pinv(B )*y, то есть z - есть решение возможно недоопределенной системы N линейных уравнений (B'*B )*z=B'*y. Найдя z мы явно получаем x и m как его компоненты. Все, наверное, замечательно. Только я не понимаю. Поскольку МО входных векторов обнулил, то вот так строю матрицу линейных уравнений: Здесь Matrix - матрица, где каждый столбец - вектор (размерность M) на входе LinMatrix - матрица линейных уравнений NxN (искомый вектор тоже размерности N). Вектор для линейной матрицы нулевой (частные производные в нуле). Матрица уравнений получилась такая, что элементы симметрично повторяются относительно диагонали (из левого-верхнего в правый-нижний угол). В итоге у меня получается N уравнений и N неизвестных. Когда первый коэффициент задаю единицей, то уравнений остается N, а неизвестных уже (N - 1). Решать однозначно такую систему не получается. Как тут можно действовать? Подумал так: выкидывать по одному уравнению и решать систему. Итого будет N решений. Потом среди них найти то, где дисперсия в минимуме. Так правильно? И как сюда еще добавить условие нормализации, когда и так избыточность уравнений? Изменено 6 сентября, 2010 пользователем getch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба Как тут можно действовать? Пожалуй, тут остается всего два варианта. Или пройти заново программу первого курса по линейной алгебре хорошего института, или просить, чтобы кто-то написал программу за вас. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба Все, наверное, замечательно. Только я не понимаю. И как сюда еще добавить условие нормализации, когда и так избыточность уравнений? На эту тему есть классная книга (на английском) Regression and the Moore-Penrose Pseudoinverse На русском есть известная строгая книга известного Д.Беклемишева Дополнительные главы линейной алгебры Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба На эту тему есть классная книга (на английском) Regression and the Moore-Penrose Pseudoinverse "И вышел опять на Дерибасовскую". Дурацкое файлохранилище. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба Дурацкое файлохранилище. Что попалось, я нагуглил, а не выкладывал. Это классическая книга 1972 года И вообще это не Вам, а всем тем у кого уравнений слишком много или слишком мало Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба И вообще это не Вам Думаете, только я пользуюсь IE? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 (изменено) · Жалоба Пожалуй, тут остается всего два варианта. Или пройти заново программу первого курса по линейной алгебре хорошего института, или просить, чтобы кто-то написал программу за вас. После дифференцирования (алгоритм, что привел выше, верный) получил однородную матрицу, единственное решение которой - тривиальное (все нули). Добавление условия, что все коэффициенты в сумме = 1, переопределяет матрицу и она уже не дает никакого решения. Подобный момент вы упомянули, когда написали свое видение решения алгебраическим путем. Раз метод дифференцирования не дал результата, что хотелось. Значит функция дисперсии в точке искомого решения не будет иметь нулевые чатные производные. С таким я раньше не сталкивался по своей зелености в этом деле. Нахожусь в стране, где купить русскоязычную литературу, особенно учебную для студентов, почти невозможно. Поэтому скачал учебник Булдырев В.С., Павлов Б.С. - "Линейная алгебра. Функции многих переменных". Если знаете учебник более хороший, прошу вас, порекомендуйте. К сожалению, ваше решение, написанное в формате форума, крайне сложно уловить мне, как собирающемуся все же пройти курс линейной алгебры самостоятельно. Если вас не затруднит, могли бы вы написать его на листке бумаги (или мат. пакете) и приложить его сюда. Чтобы стало более-менее ясно, что и где делается. И по учебнику тогда уже разбирался в этом досканально. Понимаю, что наглею, прося вас обо всем этом. Никогда никого не просил выполнять за меня работу. Прошу только направить к решению, программировать считаю правильным всегда самому, разобравшись в предмете. Спасибо! P.S. Никак не думал, что решение задачи с такой простой формулировкой (конечно, не гипотеза Ферма), потребует столького. Изменено 7 сентября, 2010 пользователем getch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба К сожалению, ваше решение, написанное в формате форума, крайне сложно уловить мне, как собирающемуся все же пройти курс линейной алгебры самостоятельно. Так что там непонятно? А - матрица размером Mx(N-1) B - матрица размером MxN y - вектор-столбец размером Mx1 x - вектор-столбец размером (N-1)x1 m - скаляр I - вектор-столбец размером Mx1, заполненный единицами z - вектор-столбец размером Nx1 Штрих обозначает транспонирование. Звездочка - матричное умножение. Линейное уравнение записано в стандартном матричном виде. Чтобы учесть единственное линейное ограничение, один из простых путей - выразить одну переменную через остальные и подставить в уравнения до дифференцирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба Нахожусь в стране, где купить русскоязычную литературу, особенно учебную для студентов, почти невозможно. Поэтому скачал учебник Булдырев В.С., Павлов Б.С. - "Линейная алгебра. Функции многих переменных". Если знаете учебник более хороший, прошу вас, порекомендуйте. Псевдоинверсия обычно не читалась в отечественных курсах линейной алгебры.Поэтому, хоть я не не читал учебник Булдырев-Павлов, но подозреваю, что там этого нет. Беклемишев начитывал в дополнительных главах. Это как бы не сама линейная алгебра, а её вычислительные аспекты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 7 сентября, 2010 Опубликовано 7 сентября, 2010 · Жалоба P.S. Никак не думал, что решение задачи с такой простой формулировкой (конечно, не гипотеза Ферма), потребует столького. Так и решение задачи на самом деле очень простое. Это как бы не сама линейная алгебра, а её вычислительные аспекты Не соглашусь. Псевдоинверсии непосредственно связаны со структурой небиективных линейных отображений. Без понимания их структуры полноценного понимания линейной алгебры быть не может. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться