Como varia a Temperatura no Deserto?

Como sabemos, a água possui um elevado calor específico 1,00 [cal/g °C], em outras palavras, ela não varia de temperatura “facilmente”. As regiões do planeta terra que possuem água em abundância, seja no mar ou na atmosfera, se beneficiam desta propriedade e, portanto, têm a variação de temperatura amenizada devido a esta propriedade. No entanto, em lugares que carecem de água, a variação de temperatura não é amenizada; é, de fato, abrupta. Alguns bons exemplos destes lugares são os desertos, que possuem, muitas vezes, temperaturas elevadíssimas durante o dia e temperaturas negativas durante a noite. ![Gráfico de Temperatura](https://webfisica.com/imagens-fisica/aulas/aula6-41/saara.png “Temperatura Diária no Deserto do Saara”)

O gráfico representa, aproximadamente, como varia a temperatura ambiente no período de um dia, em determinada época do ano, no deserto do Saara – Fonte: https://webfisica.com/fisica/curso-de-fisica-basica/aula/6-41

Tarefa

  1. Crie uma matriz com os valores mostrados no gráfico. Dica: A matriz será de dimensão 12×2
  2. Faça um algoritmo ou implementação que calcule e mostre os cálculos de:
    2a. A Temperatura média diária série de dados
    2b. A Temperatura média diurna da série de dados
    2c. A Temperatura mínima da série de dados
    2d. A Temperatura máxima da série de dados
    2e. A amplitude térmica do dia
  3. Plote os dados reproduzindo o Gráfico do exercício.
  4. Crie um programa que crie uma Matriz de dimensão 3×3 e preencha com valores lidos pelo teclado. No final, mostre a matriz na tela, com a formatação tabular correta.

Dicas e Recursos

  • [Vídeo](https://www.youtube.com/watch?v=FDU-D8ddTU4)
  • [w3resource](https://www.w3resource.com/index.php)

Para demonstrar o uso de uma lista como matriz em Python, podemos criar uma lista com outras listas aninhadas dentro dela. Cada sub lista representa uma linha da matriz e seus elementos representam os valores correspondentes naquela linha.
Segue um exemplo de código:

# criando uma matriz 3x3
matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# acessando valores da matriz
print(matriz[0][0]) # primeiro elemento da primeira linha
print(matriz[2][1]) # segundo elemento da terceira linha
print(matriz[1]) # segunda linha completa
# alterando valores da matriz
matriz[0][2] = 10 # alterando terceiro elemento da primeira linha
matriz[2][0] = 20 # alterando primeiro elemento da terceira linha
print(matriz) # exibindo a matriz atualizada
Python

Neste exemplo, criamos uma matriz 3×3 e acessamos e alteramos seus valores utilizando a notação de índices de lista. Ao imprimir a matriz atualizada, podemos ver como a mudança de valores refletiu na matriz original.

Solução

 Crie uma matriz com os valores mostrados no gráfico. Dica: A matriz será de dimensão 12×2

# Cálculos
# VETORES
x = [0,2,4,6,8,10,12,14,16,18,20,22,24]
y = [0,-5,-10,0,13,31,54,47,33,24,18,5,0]
#1 Criar uma MATRIZ
#  dados = [ [linha1], [linha2], [linha3],...[linha_n] ]
dados = [x,y] # Já que  criamos duas listas (vetores) anteriormente, adicionando dentro da lista dados tem-se uma matriz 2x12
print(dados)
#Precisamos criar uma Matriz 12x2 que será justamente a transposta da Matriz dados, irá conter 2 colunas e 12 linhas
# transposição da matriz dados para mtx_dados:
# inicializando uma matriz 2x12 com valores zero.
mtx_dados = [ [0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0] ]
for coluna in range(0,len(x)):
    for linha in range(0,2):
        #print('c',coluna,',l',linha, 'dados d:',dados[linha][coluna])
        mtx_dados[coluna][linha] = dados[linha][coluna]
#print(mtx_dados)
Python

 [[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24], [0, -5, -10, 0, 13, 31, 54, 47, 33, 24, 18, 5, 0]]

2. Faça um algoritmo ou implementação que calcule mostre:

        2a. A Temperatura média diária série de dados

        2b. A Temperatura média diurna da série de dados

        2c. A Temperatura mínima da série de dados

        2d. A Temperatura máxima da série de dados

        2e. A amplitude térmica do dia

  1.  Plote os dados reproduzindo o Grágico do exercício.

Exercício 2

Crie um programa que crie uma Matriz de dimensão 3×3 e preencha com valores lidos pelo teclado. No final, mostre a matriz na tela, com a formatação tabular correta.

2.a Temperatura média diária da série de dados:

$$\bar{T} = \frac{1}{N} \; \int_{0}^{N-1}{\theta_i} $$

\[ \text{em que} \; {\theta_i} \;\text{é o i-ésimo valor de temperatura da série.} \]
# 2.a Temperatura média diária série de dados
somatorio = 0.0
linhas = len(mtx_dados)
#colunas = len(mtx_dados[0])
for i in range(0,linhas):
    #print(f'{i:2} - hora: {mtx_dados[i][0]:2} temperatura:{mtx_dados[i][1]:3}')
    somatorio = somatorio + mtx_dados[i][1]
media = somatorio / linhas
print(f'Média Diária: {media:.2f} [°C]')
Python

Média Diurna (6-18 horas): 13.69 [°C]

# 2c. A Temperatura mínima da série de dados
t_minima = 0.0
linhas = len(mtx_dados)
colunas = len(mtx_dados[0])
for i in range(0,linhas):
    #print(f'{i:2} - hora: {mtx_dados[i][0]:2} temperatura:{mtx_dados[i][1]:3}')
    if mtx_dados[i][1]  t_maxima :
        t_maxima =  mtx_dados[i][1]
print(f'Temperatura máxima: {t_maxima:.2f} [°C]')
Python
    Temperatura máxima: 54.00 [°C]
# 2e. A amplitude térmica do dia
amplitude_termica = t_maxima - t_minima
print(f'Amplitude térmica: {amplitude_termica:.2f} [°C]')
Amplitude térmica: 64.00 [°C]

***plot()***

import matplotlib.pyplot as plt
%matplotlib inline #apenas se for usar o jupyter notebook

[https://matplotlib.org/stable/plot_types/basic/plot.html#sphx-glr-plot-types-basic-plot-py](https://matplotlib.org/stable/plot_types/basic/plot.html#sphx-glr-plot-types-basic-plot-py)

plt.plot(x,y)

Grafico ![png](output_16_1.png)

# Melhorando o visual do gráfico
plt.title('Temperatura diária no deserto do Saara')
plt.ylim(-25, 60)
plt.xlim(0,25)
plt.ylabel('$\theta , [ °mathrm{C}]

Grafico ![png](output_17_0.png)

x = [elemento[0] for elemento in mtx_dados]
y = [elemento[1] for elemento in mtx_dados]
type(x)
print(x,y)
Python
 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24] [0, -5, -10, 0, 13, 31, 54, 47, 33, 24, 18, 5, 0]

##plot avançado##

# [x for x in fruits if "a" in x]
x = [elemento[0] for elemento in mtx_dados] # Gera a lista para o eixo x
y = [elemento[1] for elemento in mtx_dados] # Gera a lista para o eixo y
fig, ax = plt.subplots(figsize=(14,5))  # Create a figure containing a single axes.
ax.axhline(0, color='gray',linestyle='dashed', linewidth=1.8)
ax.plot(x,y, label='Temperatura', color='red', marker='o', markersize=12,  markerfacecolor='#0095da', markeredgecolor='black', linewidth=3);  # Plot some data on the axes.
ax.set_ylim(-25, 60)
ax.set_xlim(0,25)
ax.set_xlabel('$t ,[h], loc='right') plt.axhline(0, color='k', linewidth=0.5) plt.xticks(x) plt.annotate('Temperatura max', xy=(11.8, 54), xytext=(1, 52), arrowprops=dict(facecolor='orange', shrink=0.05), ) plt.annotate('Temperatura min', xy=(4, -10), xytext=(16, -11),              arrowprops=dict(facecolor='blue', shrink=0.05),              ) plt.plot(x,y, color='red', marker='o', markerfacecolor='#0095da', markeredgecolor='black') plt.sho

Python

colocar gráfico