Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Numpy e Álgebra linear, Esquemas de Álgebra

[3]: import numpy as np ... Existem várias maneiras dentro de Numpy para gerar arrays. ... [24]: a = np.linspace(0,20,5000) print(a).

Tipologia: Esquemas

2023

Compartilhado em 17/01/2023

Nazareth85
Nazareth85 🇵🇹

4.4

(39)

3.2K documentos

1 / 9

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Numpy e Álgebra linear
May 14, 2020
0.0.1 Numpy
0.0.2 A partir de uma lista em Python
Podemos criar um array convertendo diretamente uma lista ou lista de listas:
[2]: a=[1,2,3]
b=[1,2,3]
c=a+b
c
[2]: [1, 2, 3, 1, 2, 3]
[3]: import numpy as np
[5]: aa =np.array(a)
bb =np.array(b)
[6]: aa +bb
[6]: array([2, 4, 6])
0.1 Métodos incorporados
Existem várias maneiras dentro de Numpy para gerar arrays.
-zeros((dim1,dim2),type)
-ones((dim1,dim2),type)
-arange(começo,final,incremento)
0.1.1 arange
Cria valores uniformemente espaçados dentro de um determinado intervalo.
[10]: v=np.arange(0,10,0.1)
v
[10]: array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2,
1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5,
2.6, 2.7, 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8,
1
pf3
pf4
pf5
pf8
pf9

Pré-visualização parcial do texto

Baixe Numpy e Álgebra linear e outras Esquemas em PDF para Álgebra, somente na Docsity!

Numpy e Álgebra linear

May 14, 2020

0.0.1 Numpy 0.0.2 A partir de uma lista em Python Podemos criar um array convertendo diretamente uma lista ou lista de listas: [2]: a = [ 1 , 2 , 3 ] b = [ 1 , 2 , 3 ] c = a + b c

[2]: [1, 2, 3, 1, 2, 3]

[3]: import numpy as np

[5]: aa = np.array(a) bb = np.array(b)

[6]: aa + bb

[6]: array([2, 4, 6])

0.1 Métodos incorporados

Existem várias maneiras dentro de Numpy para gerar arrays.

  • zeros((dim1,dim2),type)
  • ones((dim1,dim2),type)
  • arange(começo,final,incremento)

0.1.1 arange Cria valores uniformemente espaçados dentro de um determinado intervalo.

[10]: v = np.arange( 0 , 10 ,0.1) v

[10]: array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8,

9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9])

0.1.2 zeros and ones Gera arrays de zeros ou uns.

[12]: a = np.zeros( 5 ) a

[12]: array([0., 0., 0., 0., 0.])

[18]: a = np.ones(( 3 , 3 )) a

[18]: array([[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]])

0.1.3 linspace Retorna números espaçados uniformemente em um intervalo especificado.

[24]: a = np.linspace( 0 , 20 , 5000 ) print(a)

[0.00000000e+00 4.00080016e-03 8.00160032e-03 … 1.99919984e+ 1.99959992e+01 2.00000000e+01]

[26]: np.arange( 0 ,20.01,0.01)

[26]: array([0.000e+00, 1.000e-02, 2.000e-02, …, 1.999e+01, 2.000e+01, 2.001e+01])

0.2 eye

Cria um array (matriz) identidade

[30]: I = np.eye( 3 , 3 ) I

[30]: array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])

0.3.3 randint Retornar números inteiros aleatórios

[38]: np.random.randint( 0 , 50 , 10 )

[38]: array([38, 25, 25, 3, 20, 45, 39, 5, 45, 9])

Reshape Retorna uma matriz que contém os mesmos dados com uma nova forma.

[40]: M = np.random.randint( 0 , 100 ,( 5 , 5 )) M

[40]: array([[ 3, 10, 26, 58, 70], [21, 90, 36, 80, 73], [52, 10, 5, 13, 87], [84, 6, 76, 92, 70], [30, 40, 19, 72, 10]])

[41]: M.reshape( 1 , 25 )

[41]: array([[ 3, 10, 26, 58, 70, 21, 90, 36, 80, 73, 52, 10, 5, 13, 87, 84, 6, 76, 92, 70, 30, 40, 19, 72, 10]])

[42]: v = np.arange( 25 ) v

[42]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24])

[44]: v.reshape( 5 , 5 )

[44]: array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]])

max, min, argmax, argmin Estes são métodos úteis para encontrar valores máximos ou míni- mos. Ou para encontrar seus locais de índice usando argmin ou argmax.

[48]: T = np.random.randint( 0 , 100 , 10 ) T

[48]: array([94, 92, 8, 96, 55, 76, 46, 81, 94, 42])

Aritmética É possível executar facilmente aritmética de arrays

[53]: a = np.random.randint( 0 , 20 , 5 ) b = np.random.randint( 70 , 150 , 5 )

54: array([18, 18, 9, 10, 15])

55: array([ 72, 129, 92, 112, 135])

56: array([ 90, 147, 101, 122, 150])

57: array([ -54, -111, -83, -102, -120])

58: array([1296, 2322, 828, 1120, 2025])

59: array([0.25 , 0.13953488, 0.09782609, 0.08928571, 0.11111111])

[61]: c = np.arange( 5 ) c

[83]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

[89]: b = a[a < 4 ]

90: array([0, 1, 2, 3])

Exemplo: Por exemplo, as três equações simultâneas

3 x − 2 y = 8 − 2 x + y − 3 z = − 20 4 x + 6y + z = 7

pode ser representado como a equação Mx = b :

 

x y z

e resolvido passando matrizes correspondentes à matriz M e o vetor b to np.linalg.

[94]: M = np.array([[ 3 ,- 2 , 0 ],[- 2 , 1 ,- 3 ],[ 4 , 6 , 1 ]]); M

[94]: array([[ 3, -2, 0], [-2, 1, -3], [ 4, 6, 1]])

[95]: b = np.array([ 8 ,- 20 , 7 ]);b

[95]: array([ 8, -20, 7])

[100]: x,y,z = np.linalg.solve(M,b)

Exemplo: Calcular os valores próprios da matriz de rotação bidimensional:

R =

cos θ − sin θ sin θ cos θ

que gira pontos no plano xy no sentido anti-horário através θ = 30° = π 6 about the origin.

[104]: theta = np.pi/ 6

[105]: c = np.cos(theta) s = np.sin(theta)

[122]: R = np.array([[c,-s],[s,c]]) R

[122]: array([[ 0.8660254, -0.5 ], [ 0.5 , 0.8660254]])

[108]: aval,avec = np.linalg.eig(R)

125: array([[ 0.8660254, 0.5 ], [-0.5 , 0.8660254]])

123: array([[ 0.8660254, 0.5 ], [-0.5 , 0.8660254]])

[114]: lambda1 = aval[ 0 ]

[115]: lambda2 = aval[ 1 ]