векторное пространство (vektornoje prostranstvo)
векторное пространство • (vektornoje prostranstvo) sn
---
📌 **Векторное пространство** – это множество **векторов**, где определены **сложение** и **умножение на число**, подчиняющиеся определённым законам.
🔹 **Примеры векторных пространств:** - Двумерные векторы **** (плоскость). - Трёхмерные векторы **** (пространство). - Полиномы, матрицы, функции – тоже примеры векторных пространств!
---
- **Сложение векторов**: - **Умножение на число**:
📌 **8 аксиом векторного пространства:** 1. **Коммутативность сложения:** . 2. **Ассоциативность сложения:** . 3. **Существование нулевого вектора:** . 4. **Существование обратного вектора:** . 5. **Ассоциативность умножения на скаляр:** . 6. **Распределение скаляра относительно векторов:** . 7. **Распределение векторов относительно скаляров:** . 8. **Умножение на 1 не изменяет вектор:** .
---
✅ Множество всех пар **(x, y)**, где . ✅ Операции:
✅ Все тройки **(x, y, z)**, где . ✅ Аналогично двумерному пространству.
✅ Векторным пространством можно считать **множество всех матриц** одного размера. ✅ Например, **матрицы **:
---
Vector2D
(двумерные векторы)📌 Описываем сложение, вычитание и умножение на число.
#include <iostream>
using namespace std;
// Класс двумерного вектора
class Vector2D {
public:
double x, y;
// Конструктор
Vector2D(double x = 0, double y = 0) : x(x), y(y) {}
// Сложение векторов
Vector2D operator+(const Vector2D& v) const {
return Vector2D(x + v.x, y + v.y);
}
// Вычитание векторов
Vector2D operator-(const Vector2D& v) const {
return Vector2D(x - v.x, y - v.y);
}
// Умножение на скаляр
Vector2D operator*(double scalar) const {
return Vector2D(x * scalar, y * scalar);
}
// Вывод вектора
void print() const {
cout << "(" << x << ", " << y << ")" << endl;
}
};
int main() {
Vector2D v1(3, 4);
Vector2D v2(1, 2);
Vector2D sum = v1 + v2;
Vector2D diff = v1 - v2;
Vector2D scaled = v1 * 2;
cout << "Сумма: "; sum.print();
cout << "Разность: "; diff.print();
cout << "Умножение на 2: "; scaled.print();
return 0;
}
📌 Вывод:
Сумма: (4, 6) Разность: (2, 2) Умножение на 2: (6, 8)
📌 Добавляем поддержку скалярного и векторного произведения.
#include <iostream>
using namespace std;
class Vector3D {
public:
double x, y, z;
Vector3D(double x = 0, double y = 0, double z = 0) : x(x), y(y), z(z) {}
// Сложение
Vector3D operator+(const Vector3D& v) const {
return Vector3D(x + v.x, y + v.y, z + v.z);
}
// Вычитание
Vector3D operator-(const Vector3D& v) const {
return Vector3D(x - v.x, y - v.y, z - v.z);
}
// Умножение на число
Vector3D operator*(double scalar) const {
return Vector3D(x * scalar, y * scalar, z * scalar);
}
// Скалярное произведение
double dot(const Vector3D& v) const {
return x * v.x + y * v.y + z * v.z;
}
// Векторное произведение
Vector3D cross(const Vector3D& v) const {
return Vector3D(
y * v.z - z * v.y,
z * v.x - x * v.z,
x * v.y - y * v.x
);
}
void print() const {
cout << "(" << x << ", " << y << ", " << z << ")" << endl;
}
};
int main() {
Vector3D v1(1, 2, 3);
Vector3D v2(4, 5, 6);
cout << "Скалярное произведение: " << v1.dot(v2) << endl;
cout << "Векторное произведение: "; v1.cross(v2).print();
return 0;
}
📌 Вывод:
Скалярное произведение: 32 Векторное произведение: (-3, 6, -3)
🔹 Векторное пространство – это множество векторов, где можно выполнять сложение и умножение на число.
🔹 В программировании векторы реализуются через классы (Vector2D
, Vector3D
).
🔹 Применяются в физике, компьютерной графике, машинном обучении и обработке данных. 🚀