2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Операции с матрицами (оформление)
Сообщение23.12.2006, 12:02 


02/09/06
33
Здравствуйте. В ходе расчета используются матрицы, которые заполняются по определенным алгоритмам с помощью различных циклических процедур (операторы while, for), а также операторов условия (if, else). Также широко применяются операции поэлементного вычисления…

[color=blue][size=9]Добавлено спустя 30 секунд:[/size][/color]

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

 Профиль  
                  
 
 
Сообщение23.12.2006, 15:26 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
Посмотрите здесь: Гантмахер Ф.Р. — Теория матриц , Хорн Р., Джонсон Ч. — Матричный анализ

 Профиль  
                  
 
 
Сообщение24.12.2006, 10:53 


02/09/06
33
Полистал ученую книжку. Так и не понял, как оформлять циклические процедуры. Помогите, пожалуйста «перевести» с языка Matlab на язык математики

for i=1:6
for m=1:5
for n=1:4
A(m,n)=m+n;
B(m,n)=1+1/(2*i + n + 1);
end
end
%если сумма всех элементов матрицы A.^B>130 и i>1
if sum(sum(A.^B))>130&i>1
C(:,:,i)=A.^B;%поэлементное возведение в степень
else
C(:,:,i)=4*A+B;
end
end

 Профиль  
                  
 
 
Сообщение24.12.2006, 22:07 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
У Вас не матричные операции, и стандартной нотации, по-видимому, просто нет.

Вы можете пытаться записывать построение $A$ как семейства величин ($B$ выглядит как вспомогательная матрица).

 Профиль  
                  
 
 
Сообщение25.12.2006, 08:47 


02/09/06
33
Я так все время и «пытался». Постоянно приходилось придумывать термины и разъяснять что к чему. Просто надоело все это творчество – ни к чему хорошему оно не ведет, очень много времени уходит в пустую, а понятнее алгоритм от этого не становится.
А что неужели в математике нет значка для операции «.^» - возведение в степень каждого элемента матрицы на соответствующий элемент другой матрицы.

Добавлено спустя 40 секунд:

Скорее А и B вспомогательные матрицы, С – массив, набор матриц (array).

 Профиль  
                  
 
 
Сообщение25.12.2006, 13:57 
Заслуженный участник
Аватара пользователя


23/07/05
17991
Москва
fuzzy2006 писал(а):
А что неужели в математике нет значка для операции «.^» - возведение в степень каждого элемента матрицы на соответствующий элемент другой матрицы.


А для чего нужна такая операция, кроме упражнений по программированию?

 Профиль  
                  
 
 
Сообщение25.12.2006, 16:53 


02/09/06
33
Someone писал(а):
А для чего нужна такая операция, кроме упражнений по программированию?

А для чего нужна операция умножение? Можно же было обойтись сложением?! С таким подходом можно много чего упразднить, станут ли от этого записи более компактными и наглядными?

 Профиль  
                  
 
 
Сообщение25.12.2006, 17:04 


14/11/06
34
Например, для того, чтобы можно было умножить левую и правую часть уравнение $ Ax=B $ на $ A^{-1} $ и получить корни системы уравнений.
А зачем может быть нужно описанное Вами возведение в степень?

 Профиль  
                  
 
 
Сообщение25.12.2006, 17:48 


02/09/06
33
obezyan писал(а):
Например, для того, чтобы можно было умножить левую и правую часть уравнение $ Ax=B $ на $ A^{-1} $ и получить корни системы уравнений.

А что другим способом нельзя было найти корни системы уравнений? Например, взять и найти решение методом Крамера, оставив при этом операции сложения и вычитания.

Добавлено спустя 7 минут:

clc,clear all
%1я часть
tic,x=0:2*pi/10000:2*pi;y=exp(-x.^2).^cos(x);toc
%2я часть
tic
for i=1:10001
c(i)=2*pi/10000*(i-1);d(i)=exp(-x(i)^2)^cos(x(i));
end
toc
%Содержимое матрицы d совпадает с содержимым матрицы y.
%Обе части функции делают практически одно и тоже,
%но используя разные операторы. Использование циклов значительно
%снижает быстродействие программы.
%h**p://phys.lan.krasu.ru/bvvmatlab/lecture1/lecture1.htm

 Профиль  
                  
 
 
Сообщение25.12.2006, 18:06 
Заслуженный участник
Аватара пользователя


23/07/05
17991
Москва
Это не есть операции над матрицами. Это есть так называемые векторизованные операции (мне встречался такой термин). Просто над всеми элементами массива выполняются одинаковые вычисления. Над каждым элементом отдельно. И что же сделаешь с тем, что в BASICе скрытый цикл выполняется быстрее, чем явно написанный - по той причине, что при выполнении явно написанного цикла тратится время на многократную интерпретацию операторов цикла, а внутренний цикл реализуется небольшим числом команд процессора.

 Профиль  
                  
 
 
Сообщение25.12.2006, 19:08 


02/09/06
33
Хорошо пусть это не есть операции над матрицами, пусть даже это не операции с матрицами. Суть не в этом.

Добавлено спустя 17 секунд:

Нужна книга сославшись на которую можно заявить: «обозначения общепринятые, если не понимаешь читай то-то и это». Т.е. как с помощью общепринятых значков (желательно математических, не привязываясь ни к какому языку программирования и не рисуя блок схемы) в компактном виде записать алгоритмы заполнения матриц (с использованием циклов и логических условий) и операции поэлементного умножения (или возведения в степень).

Добавлено спустя 32 секунды:

Someone, подскажите, пожалуйста, где зачитать про «векторизованные операции»? Что-то никак книжку не могу найти.

 Профиль  
                  
 
 
Сообщение25.12.2006, 19:37 
Заслуженный участник
Аватара пользователя


23/07/05
17991
Москва
fuzzy2006 писал(а):
Someone, подскажите, пожалуйста, где зачитать про «векторизованные операции»? Что-то никак книжку не могу найти.


Этот термин связан не с математикой, а с компьютерами. Поискал в Googlе, и первая же ссылка дала такой результат: http://www.imvs.ru/imvs/itvs/3_04/p63_77.pdf. Там статья "Метод использования мелкоформатных векторных операций в оптимизирующем компиляторе". А за ней ещё множество ссылок.

 Профиль  
                  
 
 
Сообщение26.12.2006, 00:44 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Someone писал(а):
Просто над всеми элементами массива выполняются одинаковые вычисления. Над каждым элементом отдельно. И что же сделаешь с тем, что в BASICе скрытый цикл выполняется быстрее, чем явно написанный - по той причине, что при выполнении явно написанного цикла тратится время на многократную интерпретацию операторов цикла, а внутренний цикл реализуется небольшим числом команд процессора.

Ладно бы в BASIC'е. Векторные вычисления реализовались (реализуются?) в суперкомпьютерах на аппаратном уровне (то есть, однородное вычисление идет, скажем, в 256 потоков (по числу элементов в векторном регистре)). По-моему, так работал Cray. Были и советские компы такого типа.

Я нашел массу материалов в google на “vector computation”

 Профиль  
                  
 
 
Сообщение26.12.2006, 01:00 
Заслуженный участник
Аватара пользователя


23/07/05
17991
Москва
незваный гость писал(а):
Ладно бы в BASIC'е. Векторные вычисления реализовались (реализуются?) в суперкомпьютерах на аппаратном уровне (то есть, однородное вычисление идет, скажем, в 256 потоков (по числу элементов в векторном регистре)). По-моему, так работал Cray. Были и советские компы такого типа.

Я нашел массу материалов в google на “vector computation”


Да, это в суперкомпьютерах, по-моему, очень широко применяется. Как ещё иначе при ограниченной тактовой частоте такую вычислительную мощность обеспечить.

 Профиль  
                  
 
 
Сообщение26.12.2006, 06:28 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Мое впечатление, что все же в прошедшем времени — применялось. Сейчас популярнее навтыкать тысячонку-другую процессоров.

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

Модераторы: Модераторы Математики, Супермодераторы



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

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


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

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