{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ed76fb9e",
   "metadata": {},
   "source": [
    "# Python demo Modul 1\n",
    "\n",
    "\n",
    "## Indlæser pakker"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3248a127",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "299e6add",
   "metadata": {},
   "source": [
    "## Definer vektorer og matricer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aff9daa9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Definér matrixen (fx 2x2)\n",
    "A = np.array([[4, 2],\n",
    "              [1, 3]])\n",
    "B = np.array([[5, 6],\n",
    "              [7, 8]])\n",
    "b = np.array([1, 2])\n",
    "\n",
    "print(\"A=\",A)\n",
    "print(\"B=\",B)\n",
    "print(\"b=\",b)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1fc3faf5",
   "metadata": {},
   "source": [
    "## Løsning af ligningssystemer $Ax=b$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b68cd4a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "x = np.linalg.solve(A, b)  # finder x, så A x = b\n",
    "print(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d5d48109",
   "metadata": {},
   "source": [
    "## Matrix algebra"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "33a7fa17",
   "metadata": {},
   "outputs": [],
   "source": [
    "C=2*A-5*B\n",
    "print(C)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8ac4b536",
   "metadata": {},
   "outputs": [],
   "source": [
    "D=A@B\n",
    "print(D)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94f4b1c5",
   "metadata": {},
   "source": [
    "## Transponering, invers og determinant"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "03441768",
   "metadata": {},
   "outputs": [],
   "source": [
    "A_Trans = A.T\n",
    "A_inv = np.linalg.inv(A)\n",
    "A_det = np.linalg.det(A)\n",
    "rank_A = np.linalg.matrix_rank(A)\n",
    "\n",
    "\n",
    "print(\"A**T=\",A_Trans)\n",
    "print(\"A**(-1)=\",A_inv)\n",
    "print(\"det(a)=\",A_det)\n",
    "print(\"Rangen af A er:\", rank_A)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9e3f1978",
   "metadata": {},
   "source": [
    "## Egenværdier og vektorer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "538b0e7c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Find egenværdier og egenvektorer\n",
    "eigenvalues, eigenvectors = np.linalg.eig(A)\n",
    "\n",
    "print(\"Egenværdier:\")\n",
    "print(eigenvalues)\n",
    "\n",
    "print(\"Egenvektorer:\")\n",
    "print(eigenvectors)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8885dd17",
   "metadata": {},
   "source": [
    "## Kun egenværdier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "37a5c05e",
   "metadata": {},
   "outputs": [],
   "source": [
    "eigenvalues = np.linalg.eigvals(A)\n",
    "print(\"Egenværdier:\", eigenvalues)"
   ]
  }
 ],
 "metadata": {
  "jupytext": {
   "formats": "ipynb,md:myst",
   "text_representation": {
    "extension": ".md",
    "format_name": "myst",
    "format_version": 0.13,
    "jupytext_version": "1.16.0"
   }
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "source_map": [
   13,
   20,
   22,
   26,
   38,
   42,
   45,
   49,
   54,
   57,
   61,
   72,
   76,
   85,
   89
  ]
 },
 "nbformat": 4,
 "nbformat_minor": 5
}