SharedSECITEC-2019-PARTE-2-EXE.ipynbOpen in CoCalc
Author: João Marcello Pereira
Views : 14
License: MIT License
Description: SECITEC-2019-PARTE-2-EXE

SECITEC - 2019 - PARTE II

A Semana da Ciência e Tecnologia – SECITEC é o evento anual científico oficial do Campus Luzerna do Instituto Federal Catarinense, realizada a partir de 2012 como plataforma para divulgação da produção científica de seus alunos e professores.

Carga Horária: 4h

Prof João Marcello Pereira ([email protected])

Link para a parte I : https://share.cocalc.com/share/9110c074abc3ba6f36ef922980eaf978580ee422/SECITEC-2019-PARTE-1-EXE.ipynb?viewer=share

Link para a parte III: https://share.cocalc.com/share/c36feb3553f76b64163a3d568ce5cd9c2081ed71/SECITEC-2019-PARTE-3-EXE.ipynb?viewer=share

PROGRAMAÇÃO BÁSICA

A estrutura de programação do CoCalc é baseada em Python, com algumas diferenças quanto à sintaxe de alguns comandos.

ESTRUTURA DE DECISÃO

Condicional "SE" (IF)

In [1]:
%display latex
In [1]:
# números aleatorios x e y import pygame
--------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-1-6c9c8726329e> in <module>() 1 # números aleatorios x e y 2 ----> 3 import pygame ImportError: No module named pygame
In [76]:
# se x < y imprima "x menor que y", se x > y nada será feito
In [2]:
# se x < y imprima "x menor que y", senão imprima "x maior que y"

Codifique a função definida como: f(x) = {x2; x0x+1; x < 0.\begin{cases} x^2 &; ~ x \geq 0\\ x + 1 &; ~\text{x < 0}. \end{cases}

Drag Racing

In [1]:
# se x < y imprima "x menor que y", senão se x > y imprima "x maior que y", senão imprima "x igual a y"

ESTRURA DE REPETIÇÃO

Repetição "PARA" (FOR)

In [26]:
# Aplicar um vetor à expressão (x^2 - 2) em um laço FOR
In [3]:
%%time # Método bruto de encontrar raízes de uma função sem otimização k = srange(0, 5, 0.00001) for x in k: if abs(sin(x)*x + 1 ) < 0.0001: show("Valor(y):", sin(x)*x + 1 ," . Raiz(x): ", x) print('fim')
Valor(y):0.0000676888000875620x.xRaiz(x):3.43681000001405\verb|Valor(y):| 0.0000676888000875620 \phantom{\verb!x!}\verb|.|\phantom{\verb!x!}\verb|Raiz(x):| 3.43681000001405
Valor(y):0.0000318979772357952x.xRaiz(x):3.43682000001405\verb|Valor(y):| 0.0000318979772357952 \phantom{\verb!x!}\verb|.|\phantom{\verb!x!}\verb|Raiz(x):| 3.43682000001405
Valor(y):3.89293696634319×106x.xRaiz(x):3.43683000001405\verb|Valor(y):| -3.89293696634319 \times 10^{-6} \phantom{\verb!x!}\verb|.|\phantom{\verb!x!}\verb|Raiz(x):| 3.43683000001405
Valor(y):0.0000396839425147455x.xRaiz(x):3.43684000001405\verb|Valor(y):| -0.0000396839425147455 \phantom{\verb!x!}\verb|.|\phantom{\verb!x!}\verb|Raiz(x):| 3.43684000001405
Valor(y):0.0000754750394051928x.xRaiz(x):3.43685000001405\verb|Valor(y):| -0.0000754750394051928 \phantom{\verb!x!}\verb|.|\phantom{\verb!x!}\verb|Raiz(x):| 3.43685000001405
fim CPU times: user 6.31 s, sys: 61.7 ms, total: 6.37 s Wall time: 7.04 s

Repetição "ENQUANTO" (WHILE)

In [77]:
# Enquanto a variável a for menor que 10 print a + 1

FUNÇÃO

Função, de acordo com a definição matemática, é uma correspondência unívoca entre dois conjuntos em que a cada elemento do primeiro conjunto corresponde a um e somente um elemento do segundo. Dessa forma, temos que uma função é uma relação entre das variáveis, sendo uma dependente e outra independente. Ex: y(x)=x+2,z=xy2x,f(x)=x2+y2y(x) = x + 2, z = xy - 2x, f(x) = x^2 + y^2.

Para definir uma nova função no CoCalc de duas maneiras:

  • forma reduzida - utilizada de forma semelhante a definição matemática de função. função_nome(argumento) = código.

  • def - use o comando def e dois pontos após a lista de nomes das variáveis. Em Python, blocos de código não são indicados por colchetes ou blocos de início e fim, como em outras linguagens. Em vez disso, blocos de código são indicados por identação, que devem estar alinhadas exatamente.

In [16]:
# Função cálculo área do circulo
In [1]:
# Calculo da área para r = 5
In [19]:
# Calculo da área para r = 5 numérico
In [24]:
# Função área do circulo simplificada
In [25]:
# Calculo da área para r = 5
In [81]:
# Calculo da área para r = 5 numérico

GRÁFICOS 2D E 3D

In [23]:
# resetar variáveis
In [20]:
# dados x_dados = [0.0, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0] y_dados = [0.0, 0.5, 0.84, 1.0, 0.91, 0.6, 0.14, -0.35, -0.76, -0.98] len(x_dados) == len(y_dados)
True
In [22]:
# montar os pares ordenados
In [79]:
# gráfico pontos discretos
In [78]:
# gráfico espalhamento
In [79]:
# gráfico melhorado com axes_labels = ['x','y'], gridlines = "minor", figsize = (5, 4)
In [80]:
# Funções f1(x) = sin(x)*x e f2(x) = cos(x)
In [81]:
# Gráfico funções f1 e f2
In [28]:
# Gráfico funções f1 e f2 com preenchimento
In [29]:
# Gráfico funções f1 e f2 com pontos em destaque
In [82]:
# Gráfico 3d f(x, y) = cos(y^2 + x^2)*x^2 + sin(x^2) com color = 'green', mesh = True, aspect_ratio = 1, spin = 30

RAÍZES

De acordo com o dicionario matemático disponível em "http://www.somatematica.com.br/dicionarioMatematico" temos que:

Equação: Expressão algébrica indicada por uma igualdade, onde há valores desconhecidos expressos por letras (incógnitas). Logo, todo conjunto de expressões no qual há uma igualdade cuja(s) incógita(s) satisfaçam a um conjunto limitado de soluções, então temos uma equação. Ex: x+2=0,xy2x=2,x2+y2=22x + 2 =0, xy - 2x = 2, x^2 + y^2 = 2^2.

In [83]:
# Função f4(x) x^2 - 2*x - 3
In [84]:
# gráfico da função f4(x) com axes_labels = ['x','y'], color = "red", gridlines = "minor", figsize = (4, 3)
In [4]:
# resolvendo f4(x) = 0
In [85]:
# somente a segunda raiz
In [45]:
# Gráfico de f5(x) = x^2 - 3*x + cos(4*x) com axes_labels = ['x','y'], color = "red", gridlines = "minor", figsize = (4, 3)
In [40]:
# raízes de f5(x)
In [43]:
# método numérico para f5
In [47]:
# mínimo local
In [48]:
# máximo local
In [86]:
# resetar variáveis
In [87]:
# Sistemas de Equações Lineares eq1(x) = 2*x+3*y-6 eq2(x) = 3*x-4*y-12
In [88]:
# Gráfico implícito de eq1 e eq2 com axes_labels = ['x','y'] e gridlines = 'minor'
In [90]:
# Solução do sistema
In [ ]:

Sistemas Equações Não Lineares

In [91]:
# definir eq3(x, y) = y^2 + 8*x e eq4(x, y) = -x^2 -8*y -2
In [92]:
# Gráfico implícito com color = 'red', axes_labels = ['x','y'] e gridlines = 'minor'
In [93]:
# Solução solnl
In [75]:
# solução de y do primeiro conjunto solução
In [59]:
# somente a parte numérica de y

INTERPOLAÇÃO

Os resultados de medições experimentais ou simulações numéricas fornecem, em geral,um conjunto de valores de uma função em pontos discretos de uma variável independente. Esses valores podem ser apresentados naforma de uma tabela para valores discretos de 𝑥. O processo de calcular a função para valores intermédios aos valores conhecidos de 𝑓(𝑥)é chamado interpolação (MIRANDA, 2018). Tipos de interpolação:

  • Interpolação linear (padrão da funçao interp1d)
  • Interpolação polinomial
  • Interpolação trigonométrica
  • Spline

Gráfico interpolação linear:

In [6]:
# Dados x_dados = [0.0, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0] y_dados = [0.0, 0.5, 0.84, 1.0, 0.91, 0.6, 0.14, -0.35, -0.76, -0.98]
In [7]:
# gráfico com axes_labels = ['x','y'], gridlines = 'minor', figsize = (5, 4)
In [25]:
# Importar a função interp1d do scipy.interpolate
In [24]:
# fint recebe interp1d(x_dados, y_dados)
In [23]:
# testar a função
In [22]:
# gráfico pontos + gráfico fint

AJUSTE DE CURVAS

Ajuste de Curvas é um método que consiste em encontrar uma curva que se ajuste a uma série de pontos e que possivelmente cumpra uma série de parâmetros adicionais. Ajuste de curvas pode envolver tanto interpolação, onde é necessário um ajuste exato aos dados, quanto suavização, na qual é construída uma função "suave" que se aproximadamente se ajusta aos dados. Outro assunto relacionado é análise de regressão, a qual se foca mais em questões da inferência estatística (Wikipedia, 2019).

In [53]:
# Importar CSV e pandas
In [32]:
# importar dados_reta.csv para variável dados
In [46]:
# visualizar dados
In [107]:
# Gráfico dos dados com axes_labels = ['x','y'], gridlines = 'minor', figsize = (5, 4)
In [52]:
# Definir variáveis simbólicas a e b
In [47]:
# função modelo_reta 'ax + b'
In [48]:
# coeficientes coef recebe os dados da função find_fit(dados_pontos, modelo, [ai, bi], solution_dict = True)
In [49]:
#imprimir coef 'a'
In [50]:
# substituir coef no modelo reta
In [51]:
# Gráfico pontos e modelo reta

FIM