2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 00:00 
Заслуженный участник


12/07/07
4522
Alm99 в сообщении #1446830 писал(а):
Но функция lsqlin может минимизировать только один параметр, и я не могу понять, что за условия для работы <...>
Один, но векторный. Вот простой пример
Используется синтаксис Matlab M
N = 10;
X = [1:1:N]';
Y = X + random('norm', 0, 1, [1, N])';
C = [X, ones(N, 1)];
Z = lsqlin(C, Y);
plot(X, Y, 's', X, Z(1)*X+Z(2));
 

Вложение:
Комментарий к файлу: Иллюстрация получения оценок простейшей линейной модели
lsqlin_ex.png
lsqlin_ex.png [ 4.38 Кб | Просмотров: 2554 ]

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 00:25 


17/03/20
183
GAA

Правильно ли я понял, что если вместо X и Y запишу вектор координат $x_{i}$ и $y_{i}$, и вызвать , то linsql выдаст мне удовлетворительные результаты? Ну допустим, если я возьму те же значения что И в примере методички... Только я не понял все же, у меня прописана эта функция, и мне надо найти параметры a и b, а я не могу почему -то задать функцию с $x_{i}$ и $y_{i}$. Matlab говорит, что параметры должны быть скалярами...

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 10:36 
Заслуженный участник


12/07/07
4522
Правильно поняли. Но нет смысла задавать такой вопрос, лучше самому попробовать.

(Линейный МНК без ограничений можно без использования встроенных функций matlab легко сделать.) Я первоначально невнимательно прочитал начальное сообщение темы и отвечал на автомате. Теперь в теме есть ссылка на статью. Давайте вернёмся к задаче, сформулированной в начальном сообщении, если Вы, конечно, не шутите.

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 11:04 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Alm99 в сообщении #1446848 писал(а):
Евгений Машеров

Но ведь в этой функции условие $\leqslant 0$ а у меня уравнения больше нуля. Как тогда записать это условие ?


Ну, домножте коэффициенты на $-1$...

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 11:27 


17/03/20
183
GAA в сообщении #1447027 писал(а):
Правильно поняли. Но нет смысла задавать такой вопрос, лучше самому попробовать.


Я попробую, постараюсь побыстрее вернуться ко второй задаче. И проделать первую... Постараюсь как можно быстрее..

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 11:43 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
GAA в сообщении #1446765 писал(а):
Да, в optimization toolbox есть функция lsqlin
с возможностью задать линейные ограничения.


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

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 12:38 
Заслуженный участник


12/07/07
4522
Она совсем не для этой задачи. Я же уже написал
GAA в сообщении #1447027 писал(а):
Я первоначально невнимательно прочитал начальное сообщение темы и отвечал на автомате.
.

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 12:47 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Я к тому, что если это не учебная задача, в которой надо делать именно то, что задано, а прикладная, то может оказаться, что МНК тоже годно, не только минимакс.
А если именно минимакс - то ЛП, и оно в Матлабе есть.

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 13:02 


17/03/20
183
Евгений Машеров в сообщении #1447055 писал(а):
Я к тому, что если это не учебная задача, в которой надо делать именно то, что задано, а прикладная, то может оказаться, что МНК тоже годно, не только минимакс.
А если именно минимакс - то ЛП, и оно в Матлабе есть.


Не, это чисто учебная задача

-- 25.03.2020, 13:34 --

GAA
"Error using horzcat
Dimensions of arrays being concatenated are not consistent."

Вот такую ошибку получил
Используется синтаксис Matlab M
N = 14;
X = [0:100:N];
Y = [0 3 7 8 6 5 6 9 11 12 12 10 10 13]';
C = [X, ones(N, 1)];
Z = lsqlin(C, Y);


Я не понимаю, почему он выдал мне ее

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 13:42 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Да, и при формулировании задачи для удобного решения этой программой я бы использовал равенства для условий вида $ax_i+b-y_i\ge 0$, включив в них невязку $v_i$, а неравенства оставил бы для $v_i-V\le 0$

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение25.03.2020, 14:43 
Заслуженный участник


12/07/07
4522
Alm99 в сообщении #1447061 писал(а):
Я не понимаю, почему он выдал мне ее
Длина массива X не равна длине массива Y.
Используется синтаксис Matlab M
>> N = 14;
>> X = [0:100:N]
X =
     0
Формально по тексту: длина массива X (один элемент) не равна длине массива ones(N, 1) (столбец с N, т.е. 14, элементами) — невозможно создать матрицу с N строками и двумя столбцами.

 !  Alm99, почитайте хотя бы один день рекомендованный Вам [в учебной дисциплине или руководителем курсовой работы] учебник/справочник/руководство по matlab или одну из доступных в Сети книг.
Например, можно почитать
Ануфриев И. Е., Смирнов А. Б., Смирнова Е. Н. MATLAB 7.
Н.Н.Мартынов, А.П.Иванов MATLAB 5.X. Вычисления, визуализация, программирование.

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение26.03.2020, 08:42 
Заслуженный участник


12/07/07
4522
Мне понятна формулировка задачи в сообщении
Евгений Машеров в сообщении #1446824 писал(а):
Эта задача сводится к задаче линейного программирования.
<...>
Евгений Машеров, спасибо! Текст написать несколько минут времени.
Используется синтаксис Matlab M
% linprog(f,A,b,Aeq,beq)
% Solves min f'*z such that A*z <= b

N = 10;
X = [1:1:N]';
Y = X + random('norm', 0, 1, [1, N])';
A1 = -[X, ones(N, 1), zeros(N, 1)];
A2 = [X, ones(N, 1), -ones(N, 1)];
A = [A1;A2];
b =[-Y; Y];
f = [0, 0, 1]';
Z = linprog(f,A,b);
disp(Z);
plot(X, Y, 's', X, Z(1)*X+Z(2));
Работает вроде быстро. На рис. пример для одного из вариантов данных.
Вложение:
Комментарий к файлу: Иллюстрация использования linprog
linprog_1.png
linprog_1.png [ 4.5 Кб | Просмотров: 2476 ]

Многократно генерировал данные, проблем не наблюдал. А что даёт новая модификация?
Евгений Машеров в сообщении #1447069 писал(а):
Да, и при формулировании задачи для удобного решения этой программой я бы использовал равенства для условий вида $ax_i+b-y_i\ge 0$, включив в них невязку $v_i$, а неравенства оставил бы для $v_i-V\le 0$

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение26.03.2020, 10:41 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
Это для топикстартера, который задумался, как работать с условиями вида "больше или равно", если программа требует "меньше или равно". Вот я предложил два варианта - умножить условие на -1, перевернув неравенство, или использовать в виде равенства.
Да, и ещё. Программа может работать с ограничениями на переменные вида $L_i\le x_i \le U_i$. По умолчанию, АФАИК, нижняя граница 0, верхняя бесконечность. Для невязок это "самое оно", но вот a и b, как переменные задачи, такому ограничению не подлежат.

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение26.03.2020, 21:11 
Заслуженный участник


12/07/07
4522
Евгений Машеров, понял, спасибо.
Я linprog не пользовался в пакетах (в частности в matlab). Поэтому подумал, что там какие-то подводные камни. Вот и спросил.

 Профиль  
                  
 
 Re: Поиск параметров. Статистическая обработка рез-тов. [Matlab]
Сообщение30.03.2020, 12:56 


17/03/20
183
Спасибо всем огромное за помощь, задачу удалось решить!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group