double* operator [](int i);
// прочие функции
int ExportMatrix(const char *FileName); // Сохранить матрицу в текстовый файл
int ImportMatrix(const char *FileName); // Загрузить матрицу из текстового файла
int SaveMatrix (const char *FileName); // сохранить матрицу в двоичный файл
int LoadMatrix (const char *FileName); // загрузить из двоичного файла
void CpMat(KMatrix *M2); // копировать значения в М2
void Assign(KMatrix *M2); // присвоить значения матрицы М2
int CheckSymmetry(); // проверка на симметричность матрицы 0-не симметрична 1-симметрична 2-треугольная(ниже главн диагонали нули) 3-не квадратная
void mirror(); // зеркально отобразить данные относительно главной диагонали(вниз)
void Mult(double D); // домножить все элементы матрицы на число
// тензорные функции
int ToOneIndex(); // преобразование тензора к одноиндексной форме(если возможно)
int ToMatrix3x3(); // преобразование тензора к матричной форме 3x3(если возможно)
};
#endif };
Файл "KTensKalk.h" (Операции с данными)
#ifndef _KTensKalk_h
#define _KTensKalk_h
#include <math.h>
#include "KMatrix.h"
// матричные операции
int MULLMat(KMatrix *MR,KMatrix *M1,KMatrix *M2); // умножение матриц(векторов)
int SUBMat (KMatrix *MR,KMatrix *M1,KMatrix *M2); // вычитание матриц(векторов)
int ADDMat (KMatrix *MR,KMatrix *M1,KMatrix *M2); // сложение матриц(векторов)
int cosVec3(KMatrix *MR,KMatrix *M1); // Расчет вектора направляющих косинусов по произвольному вектору
int cosMat3(KMatrix *MR,KMatrix *M1); // расчет матрицы направляющих косинусов
int rotVec3(KMatrix *VY,KMatrix *VX,KMatrix *VX0,KMatrix *MA);// Преобразование вектора к новой системе координат
int alpha (KMatrix *MR,KMatrix *M1,KMatrix *M2); // Формирование матрицы поворота от одной ортогональной системы координат к другой
double NormMatr(KMatrix *MR); // норма матрицы(модуль вектора)
double scalVec3(KMatrix *M1,KMatrix *M2,int &err); // скалярое произведение векторов
int vectVec3(KMatrix *MR,KMatrix *M1,KMatrix *M2); // векторное умножение векторов
int checkOrt3(KMatrix *MR,int &err); // проверка ортогональностиъ
double detMat3(KMatrix *MR,int &err); // определитель матрицы
// тензорные операции
int T2toTLa(KMatrix *T2, KMatrix *Vcos,double& scal); // скалярное значение величины, описываемой тенз 2 ранга
int rotT2 (KMatrix *T2old, KMatrix *MA,KMatrix *T2new); // Преобразованиe тензора второго ранга к новой системе координат
// формирование тензоров и констант
void C_Si(double T,double &C11,double &C12,double &C44); // Процедура формирования констант упругой жесткости кремния
void S_Si(double T,double &S11,double &S12,double &S44); // Процедура формирования констант упругой податливости кремния
int TenzorSx(double T,KMatrix *A,KMatrix *S); // Процедура формирования тензора констант податливости в матричной форме в произвольной системе координат
int VTtoT2(double T,KMatrix *Vcos,KMatrix *T2); // Формирование тензора одноосного воздействия в произвольной системе координат
#endif
Файл "MatrixForm.h" (основныеэлементы)
…
private: // User declarations
// служебные данные
int FmTyp; // тип формы /0 - не определено/1-тензор/2-матрица/
TfmMatrix** ThisPointer; // внешний указатель на эту форму
TStringGrid *sg1; // лист для вывода
void ClearSG(); // очистить SG
public: // User declarations
// функции инициализации формы
__fastcall TfmMatrix(TComponent* Owner,
TfmMatrix *&_ThisPointer,int _FmTyp,bool* _deleted); // конструктор для тензора
__fastcall TfmMatrix(TComponent* Owner, TfmMatrix *&_ThisPointer,
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.