Матричные и тензорные объекты более высокого уровня для численного моделирования.Васина Википедия

Новости с планеты OGLE-2018-BLG-0677
Что вы не только не знали, но и не хотели знать
Ответить Пред. темаСлед. тема
Автор темы
wiki_de
Всего сообщений: 42840
Зарегистрирован: 13.01.2023
 Матричные и тензорные объекты более высокого уровня для численного моделирования.

Сообщение wiki_de »

Разработка объектно-ориентированного анализа и моделирование оказывает значительное влияние на применение совместного проектирования и проектирования
вплоть до текущего информационного моделирования продуктов и зданий (BIM) Численные модели особенно важны для моделирования физических процессов в твердом теле
и механика жидкости решающую роль в понимании сложных взаимодействий в природе и технологиях. В целом физические основы преобразуются в надежные алгоритмы различных методов аппроксимации с использованием методов тензорного анализа, матричного исчисления и числовых программных структур, таких как: B. Разностные методы или методы конечных элементов
Алгоритмы в объектно-ориентированных структурах весьма актуальны, поскольку лежащие в их основе парадигмы инкапсуляции и наследования обеспечивают прозрачность формулировки и надежность методов, а также четко определяют связь с объектами. Объектная ориентация, в частности, открывает новые возможности для объединения теоретических основ тензорного анализа с численными преимуществами матричного исчисления и алгоритмами вычислительных программ в единую методологическую единицу.

Потому что классический матричный расчет : C_{ikl} = A_{ikl}+ B_{ikl} или '''C''' = '''A''' + '''B'''
или
: f^{ilk} = k^{isl} * {v^k}_s или '''f''' ≠ '''k''' * '''v'' ' ^T
и где, к сожалению, не работает символьная матричная запись.
С другой стороны, концепция объектно-ориентированного класса создает подходящие структуры для новых тензорных и матричных классов, которые позволяют определять матричные операции на основе индексов для многомерных матриц, обобщать вычисление матриц на объекты более высокого уровня и унифицировать номенклатура тензоров, матриц и полей. Перегрузка арифметических и функциональных стандартных операторов для матричных объектов также существенно повышает удобство интерфейсов.

Эта статья иллюстрирует эту проверенную концепцию в следующих главах с использованием удобных примеров линейной алгебры с использованием четко структурированных прототипов программных структур. Это означает, что процессы представлены в прозрачной, понятной форме и проверены численно. Методы объектно-ориентированного программирования находятся в .
== Матричные объекты и перегруженные операторы ==
Далее предполагается, что '''''матрицы второго уровня''''' хранятся "по столбцам", как это принято в научных и технических приложениях и языках алгоритмического программирования, таких как FORTRAN.< бр / >
:
\mathbf{M} =
\влево(
\begin{array}{ccc}
a_{0,0} & a_{1,1} & ... & a_{1,N_{k-1 \\
... \\
... \\
... \\
... \\
a_{N_{i-1},0} & a_{N_{i-1},1} & ... & a_{N_{i-1},N_{k-1
\end{array}
\справа)

= M_{ik} с размерами (N_{i}\times N_{k}).

Первый индекс i пробегает строки, а второй индекс k пробегает столбцы матрицы M_{ik.

«Внутреннее хранилище» в матричных объектах осуществляется путем последовательного присвоения элементов матрицы одномерному векторному полю:

:
\mathbf{V} :=
\влево(
\begin{array}{ccc}
a_{0,0} & a_{1,0} & ... & a_{N_{i-1},0} & a_{0,1} & a_{1,1} & ... & a_{ N_{i-1},1} &
... & ... &
a_{0,N_{i-1 & a_{1,N_{i-1 & ... & a_{N_{i-1},N_{k-1
). \end{array}
\справа)


:
=
\влево(
\begin{array}{ccc}
v_{0} & v_{1} & ... & v_{N_{i-1 & ... & ... & v_{N_{i}*N_{k}-1
\end{array}
\справа)
= V_{z} с размером N_{z} = N_{i} * N_{k} ,

как это также происходит внутри компьютерных архитектур фон Неймана. .

Соответствующие «биективные отображения» осуществляются правилами

иллюстрация


V_{z} := M\underbrace{_{ik_z
, присвоив z = k * N_{i} + i
,

и обратное изображение


M\underbrace{_{ik_z := V_{z}
с помощью присваиваний k = \text{Entier}(z/N_{i}) и i = z - k * N_{i} .

''Дескриптор'' объекта представления матрицы, по-видимому, не зависит от внутреннего последовательного хранения элементов и лишь внешне управляет специальным представлением формы матрицы.

Если вы сократите матрицу \mathbf {M} до одной строки, будет создан вектор-строка M_{0k} , то же самое относится и к вектору-столбцу M_ {i0} . Это показывает, что с помощью «индексной записи» можно вставлять в номенклатуру «0-индексы», не меняя места хранения векторов или матриц.

Это касается и вектора
V_{z} := V_{0z} := V_{z0}
как и для любых матриц:
M_{ik} := M_{0ik} := M_{i0k} := M_{ik0} .

'''''Конструктор''''' M(N_i,N_k,N_l,N_m) используется для преобразования базовой математической формы в '''''матрицы более высокого уровня'''' объектно-ориентированным образом», расширяется и определяется выбором измерений. Изначально допускается до четырех измерений, которых обычно достаточно для инженерных приложений, тем более, что с помощью приведенных выше цифр можно суммировать несколько соседних индексов, что используется в программном коде.

В следующем примере программы на C++ сначала объясняется, как новые '''''матричные классы''''' структурируются семантически, чтобы создавать соответствующие матричные объекты ("экземпляры") и использовать их с "индексной арифметикой". ' используя ''перегруженные стандартные операторы'' для синтаксической обработки. Конструкторы классов Vector, MATRIX, delta_MATRIX, e_MATRIX могут использоваться для создания статических или динамических объектов с элементами типа double. Используя поле (массив) в обозначениях языка программирования Си, также можно заранее присвоить числовые значения векторным и матричным элементам. Ввод/вывод осуществляется через перегруженные стандартные операторы ''>>'' или ''
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение