Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.65
eugrita
3 / 4 / 0
Регистрация: 18.11.2009
Сообщений: 448
#1

Работа с alglib - C++

03.11.2011, 22:53. Просмотров 6520. Ответов 3
Метки нет (Все метки)

Здравствуйте. Пытаюсь начать работу с библиотекой alglib.
Из поверхностного знакомства понял, что никаких настроек проекта на библиотеку не надо
просто кидаешь в папку проекта основной хэдер linalg.h и связанные с ним хэдеры
ap.h, alglibmisc.h,alglibinternal.h
Первым делом попытался объявить библиотечный тип alglib::real_1d_array
Добился только включив ap.cpp в состав проекта
Далее проблема - не нашел готовых примеров работы с библиотекой
В частности, есть типы alglib::real_1d_array и alglib::real_2d_array
а как например задать размеры вектора и матрицы?
Основная цель - попробовать вызвать программу расчета собственных частот и значений smatrixevd из субпакеджа eig.
Не хватает примеров - что- то у нее хреново с документацией в отличие скажем от IMSL
Может кто примером кода поделится

Добавлено через 40 минут
как работать с массивами типов real_1d, real_2d ? если объявить
C++
1
2
const int n=3;
alglib::real_2d_array A[n][n];   alglib::real_2d_array Z[n];
то это проходит, но как инициализировать массивы?
Инициализация по обращению по индексам типа
A[0][0]=1; A[0][1]=1; A[0][2]=0; не проходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2011, 22:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с alglib (C++):

Alglib C++ Qt - C++
Пытаюсь запустить простой пример по мануалу с официального сайта http://www.alglib.net/translator/man/manual.cpp.html#example_nn_cls2 ...

Аппроксимация с alglib - C++
Всем добрый день. Решила поразвлечься с пакетом alglib и попыталась опробовать пример аппроксимации методом Левенберга-Марквардта с...

ALGLIB собственные векторы - C++
Здравствуйте, может, кто пользовался библиотекой ALGLIB, никак не могу понять, как собственные векторы вывести. Пользуюсь функцией...

Решить матричное уравнение (библиотекой AlgLib) - C++
решить уравнение при помощи библиотеки ALGLIB A*X+B=C*X+F матрицы A,B,C,F квадратные

Компилятор не видит функции из библиотеки AlgLib - C++
Здравствуйте. Добавил к проекту "fasttransforms.h". Само имя библиотеки не вызывает ошибок, но не выполняется ни одна функция. Ошибка: ...

Функция hmatrixevd из пакета alglib для поиска собственных значений и собственных векторов - C++
Добрый день. Нужно найти собственные значения и вектора комплексной эрмитовой матрицы. Под решение этой задачи подошла функция hmatrixevd ...

3
alkagolik
Заблокирован
04.11.2011, 00:17 #2
C++
1
2
3
4
alglib::real_2d_array r2("[[2,3],[3,4]]");
alglib::real_2d_array r2_1("[[]]");
alglib::real_2d_array r2_2(r2);
r2_1 = r2;
Добавлено через 17 минут
eugrita, чем boost не устраивает? по крайней мере на офсайте я не нашел даже лицензии, в то время как в вашем варианте условия GPL тыкают на всех документах.
0
eugrita
3 / 4 / 0
Регистрация: 18.11.2009
Сообщений: 448
05.11.2011, 01:44  [ТС] #3
lда пытался как-то boost настроить - не пошла.
Собственно с alglib вроде разобрался.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int n=3;
alglib::real_2d_array A,V;
alglib::real_1d_array Lm;//Lm -собств знач, V - собств векторы
alglib::real_1d_array a,b;//диагонали 3-диаг матрицы
A.setlength(n,n);
V.setlength(n,n);Lm.setlength(n);
A[0][0]=-2; A[0][1]=1; A[0][2]=0;
A[1][1]=-2; A[1][2]=1; A[2][2]=2;
alglib::smatrixevd(A,n,1,1,Lm,V);
for (int j=0;j<n;j++) {
 printf("\nEig=%7.3f V=",Lm[j]);
 for (int i=0;i<n;i++)
   printf("%5.2f ",V[i][j]);
                      }
Но неприятно что пакет сделан так, что для пользования одной программой в проект должен кидать несколько библиотечных *.cpp и *.h
Мне в идеале из всех математич библиотек нужны только 2 проги но хорошего качества:
1)решение СЛАУ с контролем (диагностикой)плохой обусловленности матрицы
2)прогр нахожд собств векторов и значений симметричной и лучше всего 3-диагональной матрицы
(хотя нужны бывают и другие формы)
Если бы у меня были эти пара исходников - проблема была бы закрыта.
Одно время думал переписать с фортрановских SIMQ, NROOT
Потом хотел найти IMSL CNL
Потом пытался (и не довел до конца) подключение к математическим б-кам Matlab6.5 -
там известная проблема - длинные строки в хэдерах и не до конца читаются редактором C++Builder
-начал как рекомендовано делить строки, вроде все сделал - наткнулся на ошибку компилятора
двойное определение. (но это тема отдельного поста)
0
Kir7
0 / 0 / 0
Регистрация: 06.04.2012
Сообщений: 2
10.12.2013, 12:37 #4
Всем доброго времени суток. Надеюсь, что мой вопрос не останется без ответа и не придется создавать новую тему.
Использую функцию rmatrixsolvels из пакета alglib. Сделал, как и автор темы. Закинул в папку с проектом все хедеры и сишники alglib. Из 13 файлов пришлось подключить 6 для вызова лишь одной функции. exe подрос заметно в размерах, время компиляции увеличилось заметно, ну да ладно, главное цель достигнута. Решается система линейных уравнений с прямоугольной матрицей - число уравнений превышает число неизвестных. Минимизируется невязка. Но чувствую, не хватает точности. В alglib есть возможность работы с арифметикой высокой точности http://alglib.sources.ru/equations/linear.php Но как ее подключить ? Что-то я не соображу... Так все запутано в этом alglib. Использую компилятор MinGW-W64. Буду признателен за любые подсказки.
0
10.12.2013, 12:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2013, 12:37
Привет! Вот еще темы с ответами:

Работа с библиотекой AlgLib - C++ Builder
Всем доброе время суток. Подскажите пожалуйста, можно ли использовать библиотеку ALGLIB в C++Builder 6 ? а то при компиляции...

ALGLIB. Интерполяция. - C#
Здравствуйте! Необходимо проинтерполировать массив. Для такого дела подключил библиотеку ALGLIB. Я рассматриваю вариант...

Установка ALGLIB - C#
Пишу на с# Для диплома необходима работа с матрицами. А именно SVD преобразование. Пытался установить AlGLIB по иструкции с сайта...

Апроксимация spline1dfitpenalized из ALGLIB - C#
Здравствуйте! Необходимо было почистить сигнал аппроксимацией, выбрал spline1dfitpenalized. Всё прогоняется нормуль, вот только ну...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru