Перейти к содержанию
    

Регуляризация Тихонова в MathCAD

Добрый вечер, Коллеги.

В моей работе встал вопрос об использовании регуляризации Тихонова. Интернет не блещет примерами, есть лишь один пример в MathCAD12. Однако, набрав листинг я не получил результата, похожего на разобранный пример.

 

Функция Y0(x) почему-то пошла вдоль оси абсцисс. Если кто-то сталкивался с подобной проблемой, прошу помощи.

post-68780-1323552994_thumb.jpg

post-68780-1323553001_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый вечер, Коллеги.

В моей работе встал вопрос об использовании регуляризации Тихонова. Интернет не блещет примерами, есть лишь один пример в MathCAD12. Однако, набрав листинг я не получил результата, похожего на разобранный пример.

 

Функция Y0(x) почему-то пошла вдоль оси абсцисс. Если кто-то сталкивался с подобной проблемой, прошу помощи.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Для начала протестируйте код на rhs без шума (в этом случае лямбда надо установить в ноль при поиске решения).

Когда ПР равен нулю метод Тихонова полностью эквивалентен методу максимального правдоподобия (МНК может быть реализацией поиска решения). Если на данных без шума вы сможете получить решение, то можно двигаться дальше.

 

2. можно запостить хелп либо линку на функцию lsolve (не пользуюсь маткадом)?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

1. Для начала протестируйте код на rhs без шума (в этом случае лямбда надо установить в ноль при поиске решения).

Когда ПР равен нулю метод Тихонова полностью эквивалентен методу максимального правдоподобия (МНК может быть реализацией поиска решения). Если на данных без шума вы сможете получить решение, то можно двигаться дальше.

 

2. можно запостить хелп либо линку на функцию lsolve (не пользуюсь маткадом)?

2. "lsolve(M, v) Returns the solution x for the linear system of equations M·x = v, using LU decomposition. The BLAS/LAPACK libraries (http://www.intel.com/software/products/mkl/features/lin_alg.htm) from Intel are used.

 

Arguments:

M is a real or complex matrix. If the matrix is square, it must be non-singular.

v is a real or complex vector or matrix having the same number of rows as M. "

 

1. к сожалению, я не понимаю что такое RHS без шума. Как раз на примере из учебника хотел понять и решить свое уравнение (Максвелла для E,B,H,D в обратном радиоканале)

"Когда ПР равен нулю метод Тихонова полностью эквивалентен методу максимального правдоподобия (МНК может быть реализацией поиска решения). Если на данных без шума вы сможете получить решение, то можно двигаться дальше." спасибо, попробую. Опишусь, если получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RHS без шума это праваю часть уравнения задать без шума.

В вашем случае надо установить сигма равной нулю.

 

ПР - параметр регуляризации (лямбда).

Если решаете задачу без шума, то лямбда можно установить равной нулю.

 

Если в задаче с шумом или без шума установить лямбда=0, то получим метод наименьших квадратов (МНК).

Этот метод дает решение по критерия максимального правдоподобия (МП-оценку).

Оценка ОНК является лучшей в классе несмещенных оценка (теорема гаусса-маркова).

Это означает что дисперсия оценки будет минимальная и оценка имеет нулевое смещение.

 

Регуляризация позволяет позволяет снизить дисперсию, но плата за это смещение результата.

Ее можно рассматривать как некий вид оптимальной фильтрации.

Обычно регуляризацию Тихонова записывают в виде минимизации функционала.

То что записано у вас это приведение у уравнению Эйлера.

A'*Au+au=A'f

u - искомый вектор,

f - правая часть (rhs)

A - оператор (A' транспонированный).

 

 

Ваше уравнение это уравнение фредгольма первого порядка, с не самым лучшим ядром. Надеяться на хороший результат при данных с шумом особо не приходиться.

 

У вас походе ошибка в коде:

вы написали Y0(x), а надо Y0(X)

 

Как-то так. Позже дополню еще.

 

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RHS без шума это праваю часть уравнения задать без шума.

В вашем случае надо установить сигма равной нулю.

 

У вас походе ошибка в коде:

вы написали Y0(x), а надо Y0(X)

"посидел еще немножко" до 5ти утра.

ни приравнивание сигмы к нулю, ни изменение х на Х в коде к решению не привели. Появилось подозрение, что к учебнику Маткад 12 шел диск с программой, а в этих листингах НЕПОЛНЫЙ ее текст.

Как результат, скорее всего там за "принт скрином" осталась часть кода программы.

 

Кто-нибудь может объяснить, как решить y=kx методом Тихонова, если k тоже плавает?

post-68780-1323872927_thumb.jpg

Изменено пользователем Ufauser

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Matlab подойдет?

все, что угодно. Мне важно понять, как задавать уравнения, чтобы вытаскивать и невязку и ПР. Сам я в Мейпл привык работать с института еще. В маткад ударился только потому, что единственный пример в интернете именно для него разобран))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему клин сошелся на регуляризации Тихонова? Почему бы не решить задачу по-простецки - обычной регрессией, аки методом наименьших квадратов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему клин сошелся на регуляризации Тихонова? Почему бы не решить задачу по-простецки - обычной регрессией, аки методом наименьших квадратов?

Ксения, представьте себе город. Ваш, в котором Вы живете.

Представьте себе, что там есть сотовая связь.

Базовая станция(БС) излучает в "свободное пространство" города, Мобильная Станция(МС) "ловит" излучение. Вопрос в том, что расчетная зона покрытия может не совпасть с реальной. Вот посчитали Вам, что на улице Ленина у Вас будет связь. Вы вышли с МС, и не смогли позвонить, "палочек" на антенне нет. )

Начинаем изучать канал связи в прямую и обратную сторону.

Фундаментальный подход - посчитать волну с помощью уравнений Максвелла. Однако, в уравнении типа D=eE явно есть "косяки"

Ну не совпадает эксперимент и расчет.

Начинаем думать, возможно, ошибка кроется в e=1 для воздуха. (тем более, что японец посчитал диэлектрическую проницаемость не просто для воздуха, а для СУхого воздуха при частоте 0,9МГц), начинаем решать уравнение Тихонова, которое имеет ту же структуру с регуляризационными параметрами. Собственно, мне интересно, что получится именно этим способом. Так понятно объяснил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Matlab подойдет?

Понял я одно, минимизировать исходную функцию можно обычным дифференциированием. По сути оно на картинке.

Но вот как построить невязку я пока не понял. Буду вести эту тему ради тех, кто еще наступит на эти грабли. Обещаю выложить результат.

 

 

 

решение изначальной задачи в Маткаде завершено. До смешного просто все.

В листинге нет вот этой формулы YO(X)=7X. Они не ввели функцию, к которой должна стремиться исходная.

 

Вот результат -

post-68780-1324279763_thumb.jpg

post-68780-1324282340_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Файл подгрузил.

По сути регуляризации я писал выше.

Проверить можно вызывая reg_solver_test(20,0.08).

Первый параметр мощность шума, второй альфа.

Будут вопросы, пишите.

 

P.S. Был в отъезде, поэтому долго не отвечал.

reg_solver_test.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...