|
|
  |
Сложение сигналов в самый "узкий", Как найти весовые коэффициенты для сложения? |
|
|
|
Sep 6 2010, 20:23
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(SSerge @ Sep 6 2010, 22:48)  Для такой задачи естественно нормировать вектор коэффициентов так, чтобы Σxi=1 Да, наверное. С частными производными совсем запарно. Несколько листов A4 исписал. За всем не уследить. Наверное, аналитическое решение в данном случае не оправдано из-за своей огромной ресурсоемкости. Хотя, возможно там можно все упростить... Но может численные методы будут попроще. У меня не получается применить МНК. Метод слабо понял. Прошу, подскажите, как действовать? В математике сам далеко не "айс". Цитата(SSerge @ Sep 6 2010, 22:48)  Для такой задачи естественно нормировать вектор коэффициентов так, чтобы Σxi=1 Но коэффициенты могут быть и отрицательными. Причины необходимости такой нормировки не понимаю. Почему не достаточно задать один из коэффициентов константой? Цитата(getch @ Sep 6 2010, 23:06)  С частными производными совсем запарно. Несколько листов A4 исписал. Удалось значительно упростить систему линейных уравнений, когда мат. ожидания векторов на входе сделал нулевым. (Тогда МО сгенерированного вектора NewVector тоже стало нулевым)
|
|
|
|
|
Sep 6 2010, 21:00
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(getch @ Sep 6 2010, 23:14)  Все вектора на входе не нулевые. Все же речь идет о снятых показаниях сигналов. Не совсем уж теоретическое применение. Ну какой упертый  Ну хорошо, вот вам парочка ненулевых векторов, для "прочувствования" минимизации при разных ограничениях. <1,0,0> и <0,1,0>. Система получается невырожденная. И только не говорите мне теперь, что хоть вектора коэффициентов и не пропорциональны, но минимум получается одинаковый. Если так думаете - умножьте в условии второй вектор на 2. Цитата(SSerge @ Sep 6 2010, 23:48)  Для такой задачи естественно нормировать вектор коэффициентов так, чтобы Σxi=1 Мне кажется, скорее всего, там совершенно естественно нормировать среднее значение результата на 1. Цитата(getch @ Sep 7 2010, 00:23)  С частными производными совсем запарно. Несколько листов A4 исписал. За всем не уследить. Наверное, аналитическое решение в данном случае не оправдано из-за своей огромной ресурсоемкости. Хотя, возможно там можно все упростить... Но может численные методы будут попроще. У меня не получается применить МНК. Метод слабо понял. Прошу, подскажите, как действовать? В математике сам далеко не "айс". Вы просто не умеете их готовить
--------------------
Пишите в личку.
|
|
|
|
|
Sep 6 2010, 21:45
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Oldring @ Sep 7 2010, 00:00)  Ну какой упертый  Ну хорошо, вот вам парочка ненулевых векторов, для "прочувствования" минимизации при разных ограничениях. <1,0,0> и <0,1,0>. Система получается невырожденная. И только не говорите мне теперь, что хоть вектора коэффициентов и не пропорциональны, но минимум получается одинаковый. Если так думаете - умножьте в условии второй вектор на 2.  Действительно, упертый! Цитата(Oldring @ Sep 7 2010, 00:00)  Мне кажется, скорее всего, там совершенно естественно нормировать среднее значение результата на 1.
Хорошо, покажу как делать для нормировки среднего значения результата на единицу.
Пусть А - это матрица, состоящая из столбцов - исходных векторов, а x - вектор неизвестных коэффициентов. Нужно минимизировать квадратичную норму вектора I-A*x, где I - это вектор-столбец, состоящий из единиц. Решение этой задачи хорошо известно, выводить здесь не буду, хоть оно тривиально выводится аналитически дифференцированием дисперсии по x: x=inv(A'*A)*A'*I, что эквивалентно решению системы линейных уравнений (A'*A)*x=A'*I. Единственная тонкость - если матрица A'*A вырождена. Например, в исходных данных два одинаковых столбца. В этом случае линейная система оказывается недоопределенной, имеет бесконечное количество решений, и можно взять любое решение - все решения дают одинаковую дисперсию.
Кстати, I может быть произвольным вектором, а не только вектором, состоящим из одних единиц, от этого выражение решения, минимизирующее сумму квадратов разности, не изменится. В матричной алгебре на уровне такого объяснения не понимаю. Чайник совсем. При нулевом МО входных векторов после дифференцирования получилась удобносчитаемая матрица линейных уравнений. Осталось только запрограммировать. Из общения понял, что матричная алгебра - отличный инструмент. Но перед изучением желательно представлять, для каких задач (и их практичность) она бывает полезна. К сожалению, студентам об этом часто забывают рассказать-показать, говоря только о теоретической части и давая задачи для закрепления тоже теоретического плана. Цитата(getch @ Sep 7 2010, 00:14)  При нулевом МО входных векторов после дифференцирования получилась удобносчитаемая матрица линейных уравнений. Получилась матрица из N уравнений, а неизвестных (N - 1). Это нормально?
|
|
|
|
|
Sep 6 2010, 21:50
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(getch @ Sep 7 2010, 01:14)  В матричной алгебре на уровне такого объяснения не понимаю. Чайник совсем. При нулевом МО входных векторов после дифференцирования получилась удобносчитаемая матрица линейных уравнений. Осталось только запрограммировать. Из общения понял, что матричная алгебра - отличный инструмент. Но перед изучением желательно представлять, для каких задач (и их практичность) она бывает полезна. К сожалению, студентам об этом часто забывают рассказать-показать, говоря только о теоретической части и давая задачи для закрепления тоже теоретического плана. Там на самом деле была у меня ошибка. С минимизацией именно дисперсии результата при фиксированном среднем не всё так просто, приведенное решение не гарантирует равенство единице среднего от результата, а находит решение, минимизирующее сумму квадратов отклонений результата от единиц. Для нормировки среднего результата на единицу нужно сделать пару промежуточных шагов, но я лучше для примера покажу, как решать то, что вы ищете - как делать для выделенного первого вектора с коэффициентом 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 как его компоненты.
--------------------
Пишите в личку.
|
|
|
|
|
Sep 6 2010, 22:13
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Oldring @ Sep 7 2010, 00:50)  Там на самом деле была у меня ошибка. С минимизацией именно дисперсии результата при фиксированном среднем не всё так просто, приведенное решение не гарантирует равенство единице среднего от результата, а находит решение, минимизирующее сумму квадратов отклонений результата от единиц. Для нормировки среднего результата на единицу нужно сделать пару промежуточных шагов, но я лучше для примера покажу, как решать то, что вы ищете - как делать для выделенного первого вектора с коэффициентом 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 решений. Потом среди них найти то, где дисперсия в минимуме. Так правильно? И как сюда еще добавить условие нормализации, когда и так избыточность уравнений?
Сообщение отредактировал getch - Sep 6 2010, 22:41
|
|
|
|
|
Sep 7 2010, 10:04
|
Частый гость
 
Группа: Участник
Сообщений: 117
Регистрация: 6-09-10
Пользователь №: 59 335

|
Цитата(Oldring @ Sep 7 2010, 10:57)  Пожалуй, тут остается всего два варианта. Или пройти заново программу первого курса по линейной алгебре хорошего института, или просить, чтобы кто-то написал программу за вас. После дифференцирования (алгоритм, что привел выше, верный) получил однородную матрицу, единственное решение которой - тривиальное (все нули). Добавление условия, что все коэффициенты в сумме = 1, переопределяет матрицу и она уже не дает никакого решения. Подобный момент вы упомянули, когда написали свое видение решения алгебраическим путем. Раз метод дифференцирования не дал результата, что хотелось. Значит функция дисперсии в точке искомого решения не будет иметь нулевые чатные производные. С таким я раньше не сталкивался по своей зелености в этом деле. Нахожусь в стране, где купить русскоязычную литературу, особенно учебную для студентов, почти невозможно. Поэтому скачал учебник Булдырев В.С., Павлов Б.С. - "Линейная алгебра. Функции многих переменных". Если знаете учебник более хороший, прошу вас, порекомендуйте. К сожалению, ваше решение, написанное в формате форума, крайне сложно уловить мне, как собирающемуся все же пройти курс линейной алгебры самостоятельно. Если вас не затруднит, могли бы вы написать его на листке бумаги (или мат. пакете) и приложить его сюда. Чтобы стало более-менее ясно, что и где делается. И по учебнику тогда уже разбирался в этом досканально. Понимаю, что наглею, прося вас обо всем этом. Никогда никого не просил выполнять за меня работу. Прошу только направить к решению, программировать считаю правильным всегда самому, разобравшись в предмете. Спасибо! P.S. Никак не думал, что решение задачи с такой простой формулировкой (конечно, не гипотеза Ферма), потребует столького.
Сообщение отредактировал getch - Sep 7 2010, 10:09
|
|
|
|
|
Sep 7 2010, 10:16
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(getch @ Sep 7 2010, 14:04)  К сожалению, ваше решение, написанное в формате форума, крайне сложно уловить мне, как собирающемуся все же пройти курс линейной алгебры самостоятельно. Так что там непонятно? А - матрица размером Mx(N-1) B - матрица размером MxN y - вектор-столбец размером Mx1 x - вектор-столбец размером (N-1)x1 m - скаляр I - вектор-столбец размером Mx1, заполненный единицами z - вектор-столбец размером Nx1 Штрих обозначает транспонирование. Звездочка - матричное умножение. Линейное уравнение записано в стандартном матричном виде. Чтобы учесть единственное линейное ограничение, один из простых путей - выразить одну переменную через остальные и подставить в уравнения до дифференцирования.
--------------------
Пишите в личку.
|
|
|
|
|
Sep 7 2010, 10:18
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
QUOTE (getch @ Sep 7 2010, 14:04)  Нахожусь в стране, где купить русскоязычную литературу, особенно учебную для студентов, почти невозможно. Поэтому скачал учебник Булдырев В.С., Павлов Б.С. - "Линейная алгебра. Функции многих переменных". Если знаете учебник более хороший, прошу вас, порекомендуйте. Псевдоинверсия обычно не читалась в отечественных курсах линейной алгебры.Поэтому, хоть я не не читал учебник Булдырев-Павлов, но подозреваю, что там этого нет. Беклемишев начитывал в дополнительных главах. Это как бы не сама линейная алгебра, а её вычислительные аспекты
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|