Ищем прок от применения матриц - страница 3

 
Aleksey Vyazmikin #:

Гражданин пытается оскорбить?

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

Зачем мне Вас оскорблять?   Просто я привел наглядный пример, что для того, чтобы адекватно судить о полезности   какого-то предмета нужно его знать. Матричный аппарат позволяет решать   различные задачи из многих областей (например, колебания сложных многомерных связанных систем, модели чего можно попытаться применить и к описанию рынка). Изучите его и Вы поймете в чем он может быть полезен.  


 
Aleksey Ivanov #:

Зачем мне Вас оскорблять?   Просто я привел наглядный пример, что для того, чтобы адекватно судить о полезности   какого-то предмета нужно его знать. Матричный аппарат позволяет решать   различные задачи из многих областей (например, колебания сложных многомерных связанных систем, модели чего можно попытаться применить и к описанию рынка). Изучите его и Вы поймете в чем он может быть полезен.  


Вот я и спрашиваю, есть ли для моей конкретной потребности - в решении задач, смысл от матриц тех, кто умеет ими пользоваться.

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

 
Странно, но почему-то никто не вспомнил об основном выигрыше от функций, оперирующих с одно- и двумерными массивами (векторами и матрицами) большой размерности. Они работают быстрее, чем написанные в языках MQL непосредственные их реализации с доступом к их элементам по номерам в массивах. Из-за отсутствия арифметики указателей при непосредственной реализации в MQL для вычисления адреса каждого из многочисленных компонентов вектора в памяти (смещения от начального адреса) нужно посчитать Ofs [i] = i*Size и сложить это смещение с известным адресом самого вектора. Всего одно умножение и одно сложение. Для матрицы NxM еще больше работы, Ofs [i,j] = (i*M+j)*Size, уже два умножения и два сложения. Тогда как внутри функции нет запрета на арифметику указателей, она реализуется не на MQL, и адрес следующего элемента вполне можно вычислять путем наращивания адреса предыдущего на Size (командой Inc), что гораздо быстрее.
 
Aleksey Vyazmikin #:

Вот я и спрашиваю, есть ли для моей конкретной потребности - в решении задач, смысл от матриц тех, кто умеет ими пользоваться.

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

Для Ваших задач аппарат матриц (по своему предназначению) подходит как "корове седло".
 

Алексей, Вы молодец! Посмотрите в Алглиб, как там используются матрицы.

 
Denis Kirichenko #:

Алексей, Вы молодец! Посмотрите в Алглиб, как там используются матрицы.

Аппарат матриц используется, когда есть система линейных уравнений для ее решения, или когда в многомерном  пространстве есть   какай-то инвариант (например, простейший - вектор) и нужно   найти   его координаты в другом (повернутом) многомерном базисе,   или в иных задачах линейной алгебры или задачах других разделов математики, где   ее (линейной алгебры)   представления используются.     К задачам   классификации чисел в таблицах, о чем пишет автор ветки,   аппарат матриц не имеет никакого   отношения.


 
Aleksey Ivanov #:

Аппарат матриц используется, когда есть система линейных уравнений для ее решения, или когда в многомерном  пространстве есть   какай-то инвариант (например, простейший - вектор) и нужно   найти   его координаты в другом (повернутом) многомерном базисе,   или в иных задачах линейной алгебры или задачах других разделов математики, где   ее (линейной алгебры)   представления используются.     К задачам   классификации чисел в таблицах, о чем пишет автор ветки,   аппарат матриц не имеет никакого   отношения.

Однако. Совпадение имён ))  Мой посыл был в адрес автора ветки...

Кстати, буквально только что вышла статья. Наконец-то добавили матрицы в OpenCL!

Работа с матрицами и векторами в MQL5
Работа с матрицами и векторами в MQL5
  • www.mql5.com
Для решения математических задач в MQL5 были добавлены матрицы и векторы. Новые типы имеют встроенные методы для написания краткого и понятного кода, который близок к математической записи. Массивы — это хорошо, но матрицы во многих случаях лучше.
 
Vladimir #:
Странно, но почему-то никто не вспомнил об основном выигрыше от функций, оперирующих с одно- и двумерными массивами (векторами и матрицами) большой размерности. Они работают быстрее, чем написанные в языках MQL непосредственные их реализации с доступом к их элементам по номерам в массивах. Из-за отсутствия арифметики указателей при непосредственной реализации в MQL для вычисления адреса каждого из многочисленных компонентов вектора в памяти (смещения от начального адреса) нужно посчитать Ofs [i] = i*Size и сложить это смещение с известным адресом самого вектора. Всего одно умножение и одно сложение. Для матрицы NxM еще больше работы, Ofs [i,j] = (i*M+j)*Size, уже два умножения и два сложения. Тогда как внутри функции нет запрета на арифметику указателей, она реализуется не на MQL, и адрес следующего элемента вполне можно вычислять путем наращивания адреса предыдущего на Size (командой Inc), что гораздо быстрее.

Можете показать, как реализовать это преимущество на конкретном примере?

Ниже я выложу код, как сделал - наверняка не оптимально и на MQL5 - поэтому открыт к критике и замечаниям.

 
Aleksey Ivanov #:
Для Ваших задач аппарат матриц (по своему предназначению) подходит как "корове седло".

Ваше мнение услышал - будем проверять тут.

 
Denis Kirichenko #:

Алексей, Вы молодец! Посмотрите в Алглиб, как там используются матрицы.

Спасибо! А конкретной ссылке нет куда смотреть?  Увы, я не знаю где искать :(

Причина обращения: