[PYTHON] Essayez de résoudre les problèmes / problèmes du "programmeur matriciel" (Chapitre 1)

introduction

En lisant ce livre, je vais essayer de résoudre les problèmes.

Suite de "Résoudre les problèmes / problèmes du 'programmeur de matrice' (fonction du chapitre 0) --Qiita". Je le soulèverai avant "1.4.7 la formule d'Euler".

Corps du chapitre 1

1.4 Jouons avec ℂ

Défi 1.4.1

Tout d'abord, affectez l'ensemble ou la liste de nombres complexes ci-dessus à la variable S. Pour afficher des points sur un plan complexe, utilisez la procédure appelée plot incluse dans le module de traçage fourni sur ce site. Pour charger cette procédure à partir du module:

>>> from plotting import plot

Pour afficher le point S, procédez comme suit:

>>> plot(S, 4)

Python ouvrira alors une fenêtre de navigateur et affichera les points sur le plan complexe spécifié par S. Le premier argument de plot est un ensemble de nombres complexes (ou un tuple de deux nombres), et le second argument spécifie l'échelle de la figure à afficher. Dans ce cas, des nombres complexes avec des valeurs absolues de 4 ou moins pour les parties réelle et imaginaire sont affichés. Le deuxième argument est facultatif et la valeur par défaut est 1. Il existe un autre argument facultatif qui spécifie la taille du point.

>>> from plotting import plot
>>> S = {2+2j, 3+2j, 1.75+1j, 2+1j, 2.25+1j, 2.5+1j, 2.75+1j, 3+1j, 3.25+1j}
>>> plot(S, 4)

スクリーンショット 2017-01-06 2.59.22.png

1.4.1 Valeur absolue du nombre complexe

1.4.2 Ajout de nombres complexes

Défi 1.4.3

Ajoutez 1 + 2i à chaque élément de S en utilisant la notation d'inclusion et dessinez une nouvelle figure.

>>> plot({1+2j+z for z in S}, 4)

>>> plot({1+2j+z for z in S}, 4)

スクリーンショット 2017-01-06 3.06.41.png

1.4.3 Multiplier un nombre complexe par un nombre réel positif

Défi 1.4.7

Dessinez un nouveau diagramme qui divise par deux tous les nombres complexes en S en utilisant la notation d'inclusion comme dans la tâche 1.4.3.

>>> plot({z/2 for z in S}, 4)

スクリーンショット 2017-01-06 3.12.53.png

1.4.4 Multiplication d'un nombre complexe par un nombre réel négatif: rotation de 180 degrés

1.4.5 Multiplier i: rotation de 90 degrés

Défi 1.4.8

Dessinez un diagramme dans lequel chaque point de S est tourné de 90 degrés puis mis à l'échelle de moitié. Cependant, cela peut être réalisé en multipliant chaque élément de S par un nombre complexe en utilisant la notation d'inclusion.

>>> plot({z*1j/2 for z in S}, 4)

スクリーンショット 2017-01-06 3.18.01.png

Défi 1.4.9

Faites pivoter chaque magasin S de 90 degrés, mettez-le à l'échelle en deux, puis dessinez un diagramme avec une échelle vers le bas et deux échelles vers la droite. Cependant, il peut être réalisé en multipliant chaque élément de S par un nombre complexe et en ajoutant le nombre complexe en utilisant la notation d'inclusion.

>>> plot({z*1j/2+2-1j for z in S}, 4)

スクリーンショット 2017-01-06 3.21.02.png

Défi 1.4.10

Le module image fourni sur ce site contient une procédure file2image (filenae) pour charger des images au format png. Spécifiez le nom du fichier image comme argument de cette procédure, exécutez-le et affectez la valeur de retour aux données variables. Un exemple d'image en niveaux de gris, img01.png, peut être téléchargé à partir du site Web de ce document. La valeur des données est une liste de listes (listes avec des listes comme éléments), où data [y] [x] représente l'intensité de la luminosité du pixel situé en (x, y). (0, 0) est le pixel supérieur gauche de l'image et (largeur-1, hauteur-1) est le pixel inférieur droit de l'image. L'intensité est représentée par un entier de 0 à 255, où 0 est noir et 255 est blanc. Utilisez la notation d'inclusion pour définir et illustrer un nombre complexe x + iy k qui représente l'emplacement (x, y) des pixels d'une intensité inférieure à 120 dans l'image.

>>> from image import file2image
>>> data = file2image('img01.png')

>>> pts = [x - y * 1j + len(data) * 1j for y in range(len(data)) for x in range(len(data[y])) if data[y][x][0] < 120]
>>> plot(pts, 190)

スクリーンショット 2017-01-06 4.46.55.png

Défi 1.4.11

Ecrivez une procédure f (z) qui décale l'image représentée par S vers l'origine. Appliquez cette procédure à S en utilisant la notation d'inclusion et illustrez les résultats.

util.py


def f(z):
  x_list = [v.real for v in z]
  y_list = [v.imag for v in z]

  x_center = (min(x_list) + max(x_list)) / 2
  y_center = (min(y_list) + max(y_list)) / 2

  return [v - x_center - y_center * 1j for v in z]
>>> from util import f
>>> lot(f(list(S)), 4)

スクリーンショット 2017-01-06 5.32.51.png

Défi 1.4.12

Répétez l'exercice 1.4.8 avec pts au lieu de S.

>>> plot([p*1j/2 for p in pts], 190)

スクリーンショット 2017-01-06 5.38.44.png

1.4.6 Cercle unitaire sur un plan complexe: angle et angle de déflexion

Recommended Posts

Essayez de résoudre les problèmes / problèmes du "programmeur matriciel" (Chapitre 1)
Essayez de résoudre les problèmes / problèmes du "programmeur matriciel" (fonction du chapitre 0)
Essayez de résoudre le problème N Queen avec SA de PyQUBO
J'ai essayé de résoudre 100 traitements linguistiques Knock version 2020 [Chapitre 3: Expressions régulières 25-29]
Essayez de résoudre le problème du fizzbuzz avec Keras
Essayez de résoudre le problème de l'héritage de classe Python
Essayez de résoudre le diagramme homme-machine avec Python
Essayez de décomposer la matrice daimyo par valeur singulière
Essayez de simuler le mouvement du système solaire
J'ai essayé de résoudre la version 2020 de 100 problèmes de traitement du langage [Chapitre 3: Expressions régulières 20 à 24]
J'ai essayé de résoudre la version 2020 de 100 coups de traitement de langue [Chapitre 1: Mouvement préparatoire 00-04]
J'ai essayé de résoudre la version 2020 de 100 traitements linguistiques [Chapitre 1: Mouvement préparatoire 05-09]
Essayez de résoudre le livre des défis de programmation avec python3
Essayez de résoudre le problème d'affectation du médecin de formation avec Python
Essayez d'estimer le nombre de likes sur Twitter
Essayez d'obtenir le contenu de Word avec Golang
Essayez d'obtenir la liste des fonctions du paquet Python> os
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
Introduction aux statistiques Exercices du chapitre 2 de la presse de l'Université de Tokyo
Essayez d'améliorer la précision de l'estimation du nombre de Twitter
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
Essayez d'extraire les caractéristiques des données de capteur avec CNN
[Note] Essayons de prédire la quantité d'électricité utilisée! (Partie 1)
17e comment résoudre les problèmes d'écriture en temps réel hors ligne avec Python
Premier python ② Essayez d'écrire du code tout en examinant les fonctionnalités de python
Essayez d'introduire le thème sur Pelican
Résolution du labyrinthe avec Python-Supplément au chapitre 6 de la référence rapide de l'algorithme-
Résoudre le retard d'observation de l'interféromètre
Essayez de modéliser le rendement cumulatif du roulement dans le trading à terme
Essayez Cython dans les plus brefs délais
Essayez de prédire le triplet de la course de bateaux en classant l'apprentissage
Le moyen le plus rapide d'essayer EfficientNet
Essayez de résoudre l'itinéraire le plus court avec les données sociales Python + NetworkX +
Supplément à l'explication de vscode
La façon la plus simple d'essayer PyQtGraph
Essayez de résoudre le problème de minimisation des fonctions en utilisant l'optimisation des groupes de particules
Méthode Ford-Falkerson et ses applications - Supplément au chapitre 8 de la référence rapide de l'algorithme -
Utilisez Rasppie pour résoudre le problème de connexion Wi-Fi mobile insuffisante
Essayez d'estimer les paramètres de la distribution gamma tout en implémentant simplement MCMC
Essayez d'imaginer les données d'élévation du National Land Research Institute avec Python
Essayez de résoudre le problème du voyageur de commerce avec un algorithme génétique (théorie)
Essayez d'obtenir l'état de la surface de la route en utilisant de grandes données de gestion de la surface de la route
Essayez d'utiliser n pour rétrograder la version de Node.js que vous avez installée
Essayez de ne faire réagir que le carbone en bout de chaîne avec SMARTS
Essayez de résoudre un problème défini de mathématiques au lycée avec Python
Essayez de séparer l'arrière-plan et l'objet en mouvement de la vidéo avec OpenCV
L'histoire d'essayer de reconnecter le client
Script pour changer la description de fasta
10 méthodes pour améliorer la précision de BERT
Essayez de faire face à la somme partielle
Comment résoudre le problème d'emballage du bac
Faisons un noyau jupyter
L'histoire de la mise en place de MeCab dans Ubuntu 16.04
Exécutez la matrice sur le terminal de votre patron!
[Python] Essayez pydash de la version Python de lodash
[Python] Résolvez 10 problèmes d'élite passés d'Atcoder