Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Численные методы для метода наименьших квадратов
СообщениеДобавлено: 22 июн 2016, 11:50 
Не в сети
Начинающий
Зарегистрирован:
22 июн 2016, 11:33
Сообщений: 1
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
У меня имеется следующий код в Matlab:

fileID = fopen('input.txt','r');
formatSpec = '%f';
y = fscanf(fileID,formatSpec);

step = 0.1;
x0 = step;
xn = length(y)*0.1;
x = x0:step:xn;

fitfunc = 'a + exp(x/b)+x^2/3+x'
startPoints = [-1 -1];

[f2 f2_info] = fit(x',y,fitfunc, 'Start', startPoints)
disp('Coefficients values: ');
coeffvalues(f2)
disp('Forecasts value on 600s: ');
f2(600)


Этот код выполняет фиттинг данных и строит прогноз на 600 секунду процесса.

Задача состоит в следующем: этот код нужно вшить в прибор, поэтому мне нужно преобразовать данный код в код на С++. Вижу несколько решений:

1) Поискать автоматические преобразователи кода MATLAB в код С++
2) Найти на С++ готовые библиотеки фиттинга, и используя их, переписать код.
3) Самому запрограммировать итерационный процесс фиттинга, для этого придется погрузиться в теорию.

1 вариант: попробовал использовать Matlab Coder, который автоматически конвертирует код в C. Но, к сожалению, Matlab Coder не поддерживает функцию fit.

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

Остается 3 вариант, но в теории плохо разбираюсь, залез в код Matlab, там очень сложный объектно-ориентированный язык (я смотрел исходный код функции fit) , у меня не хватает компетенции понять этого.

Затем я задал вопрос на stackoverflow, где люди подсказали, что скорее всего используется метод наименьших квадратов (МНК).

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

Затем, кажется, я нашел то, что мне нужно: Метод Левенберга-Марквардта. Прочитал статьи на википедии и на machinelearning.ru, но не могу понять, как это практически применить.

Может есть знающие люди, кто мог бы кратко описать алгоритм метода Левенберга-Марквардта для моей функции?

[math]f(x) = a + exp(\frac{x}{b})+\frac{x^2}{3}+x[/math]

Либо посоветовать любой другой численный метод для поиска коэффициентов фиттирующей нелинейной функции.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Численные методы для метода наименьших квадратов
СообщениеДобавлено: 23 июн 2016, 09:36 
Не в сети
Последняя инстанция
Аватара пользователя
Зарегистрирован:
15 мар 2016, 15:08
Сообщений: 9390
Cпасибо сказано: 122
Спасибо получено:
1726 раз в 1634 сообщениях
Очков репутации: 235

Добавить очки репутацииУменьшить очки репутации
levandos писал(а):
Может есть знающие люди, кто мог бы кратко описать алгоритм метода Левенберга-Марквардта для моей функции?

Наверное такие люди есть. Но тут надо ставить вопрос так. А есть люди, имеющие желание переписывать учебник (википедию) сюда на форум? И в чём смысл такой деятельности? Может лучше википедию исправить, если там что не так (в чём я сомневаюсь)?

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

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Метод наименьших квадратов; почему именно квадратов?

в форуме Численные методы

tushkan

17

3037

04 апр 2015, 15:19

Численные методы

в форуме Численные методы

Donauk1nder

1

234

07 сен 2020, 15:10

Численные методы

в форуме Численные методы

smolselena

2

553

11 сен 2015, 21:11

Численные методы

в форуме Численные методы

ilya2121

1

245

05 июн 2020, 21:51

Задача на численные методы

в форуме Численные методы

A_Star

4

675

08 авг 2019, 20:08

Метод наименьших квадратов

в форуме Численные методы

Dmitriy70

9

500

18 июн 2017, 15:27

Метод наименьших квадратов

в форуме Численные методы

Dolgopups_poschadi

9

913

09 янв 2016, 16:06

Метод наименьших квадратов

в форуме Численные методы

Fireman

6

538

12 дек 2018, 14:58

Метод наименьших квадратов

в форуме Математическая статистика и Эконометрика

tabaluga13

4

348

26 окт 2018, 19:06

Метод наименьших квадратов

в форуме Численные методы

cincinat

2

486

16 окт 2015, 19:07


Часовой пояс: UTC + 3 часа [ Летнее время ]



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

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


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

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved