| Hosted by CoCalc | Download
Kernel: SageMath 8.8

FÍSICA EXPERIMENTAL - 2020 - PARTE II

Carga Horária: 4h

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

%display unicode_art

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)

# se x < y imprima "x menor que y", se x > y nada será feito
# se x < y imprima "x menor que y", senão imprima "x maior que y"

Codifique a função definida como: f(x) = ParseError: KaTeX parse error: Expected 'EOF', got '&' at position 53: … 1 &; ~\text{x &̲lt; 0}. \end{ca…

# 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)

# Aplicar um vetor à expressão y = (x^2 - 2) em um laço FOR para 10 valores reais
%%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.0000676888000875620 . Raiz(x): 3.43681000001405
Valor(y): 0.0000318979772357952 . Raiz(x): 3.43682000001405
Valor(y): -3.89293696634319e-6 . Raiz(x): 3.43683000001405
Valor(y): -0.0000396839425147455 . Raiz(x): 3.43684000001405
Valor(y): -0.0000754750394051928 . Raiz(x): 3.43685000001405
fim CPU times: user 5.22 s, sys: 114 ms, total: 5.33 s Wall time: 5.81 s

Repetição "ENQUANTO" (WHILE)

# 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.

# Função cálculo área do circulo
# Calculo da área para r = 5
# Calculo da área para r = 5 numérico
# Função área do circulo simplificada
# Calculo da área para r = 5
# Calculo da área para r = 5 numérico

GRÁFICOS 2D E 3D

# resetar variáveis
# 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
# montar os pares ordenados dados = zip(x_dados, y_dados)
# gráfico pontos discretos point(dados)
Image in a Jupyter notebook
# gráfico espalhamento
# gráfico melhorado com axes_labels = ['x','y'], gridlines = "minor", figsize = (5, 4)
# Funções f1(x) = sin(x)*x e f2(x) = cos(x)
# Gráfico funções f1 e f2 plot(f1(x), (x, -10, 10), legend_label = 'y(x)') + plot(f2(x), (x, -10,10), color = 'red', legend_label = 'y(x)')
Image in a Jupyter notebook
# Gráfico funções f1 e f2 com preenchimento plot(f1(x), (x, -10, 10), legend_label = 'y(x)') + plot(f2(x), (x, -10,10), color = 'red', legend_label = 'y(x)', fill = 'axis')
Image in a Jupyter notebook
# Gráfico funções f1 e f2 com pontos em destaque plot(f1(x), (x, -10, 10), legend_label = 'y(x)') + point([(1,f1(1)), (2, f1(2))])
Image in a Jupyter notebook
# Gráficos múltiplos sobrepostos plot(y1, (x, -2, 2), legend_label = 'y1(x)', axes_labels = ['x','y'], color = 'red', gridlines = 'minor', figsize = (8, 6)) + plot(y2, (x, -2, 2), legend_label = 'y2(x)', thickness = 0.2, plot_points = 20, color = 'blue', marker = '*', markersize = 7) plot1 = plot(y1, (x, -2, 2), legend_label = 'y1(x)', axes_labels = ['x','y'], color = 'red') plot2 = plot(y2, (x, -2, 2), legend_label = 'y2(x)', axes_labels = ['x','y'], thickness = 0.2, plot_points = 20, color = 'blue', marker = '*', markersize = 7) # Gráfico matriz 2 linhas x 1 coluna show(graphics_array([plot1, plot2], 2, 1), gridlines = 'minor') # Gráfico matriz 1 linha x 2 colunas show(graphics_array([plot1, plot2], 1, 2), gridlines = 'minor')
# 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.

# Função f4(x) x^2 - 2*x - 3
# gráfico da função f4(x) com axes_labels = ['x','y'], color = "red", gridlines = "minor", figsize = (4, 3)
# resolvendo f4(x) = 0
# somente a segunda raiz
# Gráfico de f5(x) = x^2 - 3*x + cos(4*x) com axes_labels = ['x','y'], color = "red", gridlines = "minor", figsize = (4, 3)
# raízes de f5(x)
# método numérico para f5
# mínimo local
# máximo local
# resetar variáveis

Sistemas Equações Lineares

# Sistemas de Equações Lineares eq1 e eq2
# Gráfico implícito de eq1 e eq2 com axes_labels = ['x','y'] e gridlines = 'minor'
# Solução do sistema

Sistemas Equações Não Lineares

 { y2+8x=0x28y=2 ~ \begin{cases} \ y^2 + 8x = 0\\ -x^2 -8y = 2 \end{cases} ~

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

FIM