\( \newcommand{\abcp}[3]{\frc{#1+\sqrt{#2}}{#3}} \newcommand{\chao}[1]{\left\lfloor #1 \right\rfloor } \newcommand{\nPr}[2]{{}^{#1}A_{#2} } \newcommand{\combin}[2]{{}^{#1}C_{#2} } \newcommand{\cmod}[3]{#1 \equiv #2\left(\bmod {}{#3}\right)} \newcommand{\frc}[2]{\displaystyle\frac{#1}{#2}} \newcommand{\mdc}[2]{\left( {#1},{#2}\right)} \newcommand{\mmc}[2]{\left[ {#1},{#2}\right]} \newcommand{\cis}{\mathop{\rm cis}} \newcommand{\ImP}{\mathop{\rm Im}} \newcommand{\ReP}{\mathop{\rm Re}} \newcommand{\sen}{\mathop{\rm sen}} \newcommand{\tg}{\mathop{\rm tg}} \newcommand{\cotg}{\mathop{\rm cotg}} \newcommand{\cosec}{\mathop{\rm cosec}} \newcommand{\cotgh}{\mathop{\rm cotgh}} \newcommand{\cosech}{\mathop{\rm cosech}} \newcommand{\sech}{\mathop{\rm sech}} \newcommand{\sh}{\mathop{\rm sh}} \newcommand{\ch}{\mathop{\rm ch}} \newcommand{\th}{\mathop{\rm th}} \newcommand{\senEL}[1]{\mathop{\rm sen}^{#1}} \newcommand{\tgEL}[1]{\mathop{\rm tg}^{#1}} \newcommand{\cotgEL}[1]{\mathop{\rm cotg}^{#1}} \newcommand{\cosecEL}[1]{\mathop{\rm cosec}^{#1}} \newcommand{\shEL}[1]{\mathop{\rm sh^{#1}}} \newcommand{\chEL}[1]{\mathop{\rm ch^{#1}}} \newcommand{\thEL}[1]{\mathop{\rm th^{#1}}} \newcommand{\cotghEL}[1]{\mathop{\rm cotgh^{#1}}} \newcommand{\cosechEL}[1]{\mathop{\rm cosech^{#1}}} \newcommand{\sechEL}[1]{\mathop{\rm sech^{#1}}} \newcommand{\senq}{\senEL{2}} \newcommand{\tgq}{\tgEL{2}} \newcommand{\cotgq}{\cotgEL{2}} \newcommand{\cosecq}{\cosecEL{2}} \newcommand{\cotghq}{\cotghEL{2}} \newcommand{\cosechq}{\cosechEL{2}} \newcommand{\sechq}{\sechEL{2}} \newcommand{\shq}{\shEL{2}} \newcommand{\chq}{\chEL{2}} \newcommand{\arctg}{\mathop{\rm arctg}} \newcommand{\arcsen}{\mathop{\rm arcsen}} \newcommand{\argsh}{\mathop{\rm argsh}} \newcommand{\argch}{\mathop{\rm argch}} \newcommand{\argth}{\mathop{\rm argth}} \newcommand{\Var}{\mathop{\rm Var}} \newcommand{\vect}[1]{\overrightarrow{#1}} \newcommand{\tr}[1]{ \textnormal{Tr}\left({#1}\right)} \newcommand{\C}{\mathbb{C}} \newcommand{\E}{\mathbb{E}} \newcommand{\H}{\mathbb{H}} \newcommand{\I}{\mathbb{I}} \newcommand{\K}{\mathbb{K}} \newcommand{\N}{\mathbb{N}} \newcommand{\P}{\mathbb{P}} \newcommand{\Q}{\mathbb{Q}} \newcommand{\R}{\mathbb{R}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\til}{\sim} \newcommand{\mdc}{\mathop{\rm m.d.c.}} \newcommand{\mmc}{\mathop{\rm m.m.c.}} \newcommand{\vect}[1]{\overrightarrow{#1}} \newcommand{\dfrc}{\displaystyle\frac} \newcommand{\Mod}[1]{\ (\mathrm{mod}\ #1)} \)

quarta-feira, 18 de março de 2026

Dia do $\pi$, 2026

 

No passado Sábado, quatorze de Março de dois mil e vinte e seis, celebrou-se mais um dia do $\pi$ (pi) e dia internacional da Matemática.

Nesse dia, no meu Pokemon Legends: Z-A, no meu canal de jogos mudei o nome de um dos meus Pikachus para $\pi\text{kachu}$ e a minha Gardevoir passou a ser Miss Maths.
Ainda renomeei a minha Mantine para miss Algebra.



Está gravado em vídeo. Foi o 314° vídeo que carreguei para o canal.
Eu sei que a estatística está desequilibrada: Tenho mais vídeos do que público. :)
Sobre Matemática e Videojogos, está prometido, que vou postar um dia.

sábado, 14 de fevereiro de 2026

O binómio de Newton, a partir da derivada da potência

 No post anterior deduzi a fórmula da "derivada do produto generalizado" e com ela a derivada da potência.

Isso permite-me deduzir uma fórmula para $(a+x)^n$ com $n \in \N_0$.

Ora, $f(x)=(a+x)^n$ pode ser escrito como um polinómio de grau $n$.
Vamos lá escrever \[ f\left( x \right) = a_0 + \sum\limits_{k = 1}^n {a_k x^k } \] Para alguns números $a_k, k\in\N$.
Torna-se importante determinar os valores de cada $a_k$
Ora, conseguem-se calcular os valores de $f(x), f'(x),f''(x),... f^{(n)}(x)$.
Portanto...Podemos ter forma de o fazer! Pois \[ f\left( 0 \right) = a_0 + \sum\limits_{k = 1}^n {a_k 0^k }=a_0 \] Ou seja $a_0=f(0)$ Para determinar $a_1$ pode-se recorrer à mesma ideia, tendo em conta que \[ f'\left( x \right) = a_1 + \sum\limits_{k = 2}^n {a_k kx^{k-1} } \] Portanto \[ f'\left( 0 \right) = a_1 + \sum\limits_{k = 2}^n {a_k k^{k-1} } =a_1 \] Ou seja $a_1=f'(0)$
Pode-se continuar. \[ f''\left( x \right) = 2a_2 + \sum\limits_{k = 3}^n {a_k k\left(k-1\right)x^{k-2} } \] De onde \[ f''\left( 0 \right) = 2a_2 + \sum\limits_{k = 3}^n {a_k k\left(k-1\right)0^{k-2} }=2a_2 \] Logo $$a_2=\frc{f''(0)}{2}$$ Apareceu aqui uma fracção. Se calhar é boa ideia calcular mais alguns termos. \[ f'''\left( x \right) = 3\times2a_3 + \sum\limits_{k = 4}^n {a_k k\left(k-1\right)\left(k-2\right)x^{k-3} } \] De onde \[ f'''\left( 0 \right) = 3\times2a_3 + \sum\limits_{k = 4}^n {a_k k\left(k-1\right)\left(k-2\right)0^{k-3}=3\times2a_3 } \] Logo $$a_3=\frc{f'''(0)}{3\times2}$$ Continuando, conseguimos provar que $$a_k=\frc{f^{(k)}(0)}{k!}$$ E portanto \[ f(x)=f(0)+\sum\limits_{k=1}^n{\frc{f^{(k)}(0)}{k!}x^k}\] Que é aquilo a que normalmente se chama expansão em polinómio de MacLaurin de grau $n$ da função $f$.
Portanto, basta-nos calcular $f(0),f'(0),f''(0),...,f^{(n)}(0)$. Comecemos pelo cálculo da derivada de ordem $k$ de $(a+x)^n$ \begin{eqnarray*} {f(x)}&{=}&{(a+x)^n}\\ {f'(x)}&{=}&{n(a+x)^{n-1}}\\ {f''(x)}&{=}&{n(n-1)(a+x)^{n-2}}\\ {f'''(x)}&{=}&{n(n-1)(n-2)(a+x)^{n-3}}\\ {}&{\vdots}&{}\\ {f^{(k)}(x)}&{=}&{n(n-1)(n-2)\cdots(n-k+1)(a+x)^{n-k}}\\ {}&{\vdots}&{}\\ {f^{(n)}(0)}&{=}&{n!} \end{eqnarray*} Portanto \begin{eqnarray*} {f(0)}&{=}&{a^n}\\ {f'(0)}&{=}&{n\times a^{n-1}}\\ {f''(0)}&{=}&{n(n-1)a^{n-2}}\\ {f'''(0)}&{=}&{n(n-1)(n-2)a^{n-3}}\\ {}&{\vdots}&{}\\ {f^{(k)}(0)}&{=}&{n(n-1)(n-2)\cdots(n-k+1)a^{n-k}}\\ {}&{=}&{n(n-1)(n-2)\cdots(n-k+1)\frc{\left(n-k\right)!}{\left(n-k\right)!}a^{n-k}}\\ {}&{=}&{\frc{n!}{\left(n-k\right)!}} \end{eqnarray*} Assim sendo \[ f(x)=f(0)+\sum\limits_{k=1}^n{\frc{f^{(k)}(0)}{k!}x^k}=a^n+\sum\limits_{k=1}^n{\frc{n!}{\left(n-k\right)!k!}a^{n-k}x^k}\] Para $x\neq0$ até se pode escrever \[(a+x)^n=\sum\limits_{k=0}^n{\frc{n!}{\left(n-k\right)!k!}a^{n-k}x^k}\] Se convencionarmos que nesta fórmula $0^0=1$ então \[(a+b)^n=\sum\limits_{k=0}^n{\frc{n!}{\left(n-k\right)!k!}a^{n-k}b^k}\] Que é uma conhecida fórmula para o binómio de Newton
Note-se que $(a+b)^n=(b+a)^n$ pois a adição é comutativa. Isso significa que \[ (a+b)^n=(b+a)^n=\sum\limits_{k=0}^n{\frc{n!}{\left(n-k\right)!k!}a^{n-k}b^k}=\sum\limits_{k=0}^n{\frc{n!}{\left(n-k\right)!k!}a^{k}b^{n-k}} \] E, por exemplo, torna bastante estúpido falar em "o" termo de ordem $j$ do desenvolvimento do binómio de Newton.
PS: Sobre $0^0$ : Z0nα Exact4: Zero elevado a zero.

segunda-feira, 26 de janeiro de 2026

Derivada do produto generalizado

 Recentemente recebi uma dúvida que se respondia com

\[\left(fgh\right)'=f'gh+fg'h+fgh'\]

A fórmula está no formulário de derivação que deixei no blog Z0nα Exact4, e até se deduz rapidamente, mesmo mentalmente.

 Sabendo que $(fg)'=f'g+fg'$ então

\begin{eqnarray*} {(fgh)'}&{=}&{(f(gh))'}\\ {}&{=}&{f'(gh)+f(gh)'}\\ {}&{=}&{f'gh+f(g'h+gh')}\\ {}&{=}&{f'gh+fg'h+fgh'} \end{eqnarray*} 

$\blacksquare$ 

 Uma forma de memorizar é lembrar-se "deriva-se uma de cada vez".
Mas a regra é válida para $n$ funções deriváveis, num corpo ($\R$ ou $\C$), com $n\in \N_1$ \[ \left( {f_1 f_2 ...f_n } \right)^\prime = f_1 ^\prime f_2 ...f_n + f_1 f_2 ^\prime ...f_n + \cdots + f_1 f_2 ...f_n ^\prime \] Ou, mais precisamente

\[ \left( {\prod\limits_{k = 1}^n {f_k } } \right)^\prime = \sum\limits_{i = 1}^n {\left( {\prod\limits_{k = 1}^n {D^{\delta _{ik} } f_k } } \right)} \] onde $\delta$ é o delta de Kronecker \[ \delta _{ij} = \left\{ {\begin{array}{c} {1,\text{se }i = j} \\ {0,\text{se }i \neq j} \end{array}} \right. \] e \[ D^\alpha f = \left\{ {\begin{array}{c} {f,\text{se }\alpha = 0} \\ {\frc{{d^\alpha f}}{{dx^\alpha }},\text{se }\alpha \neq 0} \\ \end{array}} \right. \]
A fórmula da derivada do produto generalizado prova-se recorrendo a indução matemática, deixo como exercício para o leitor interessado.
Pode ser usada para provar a conhecida fórmula: \[ \left( {x^n } \right)^\prime = nx^{n - 1} \] Prova: \[ \left( {x^n } \right)^\prime = \left( {\prod\limits_{k = 1}^n x } \right)^\prime = \sum\limits_{i = 1}^n {\left( {\prod\limits_{k = 1}^n {D^{\delta _{ik} } x} } \right)} = \sum\limits_{i = 1}^n {\left( {\prod\limits_{k = 1}^{n - 1} x } \right)} = \sum\limits_{i = 1}^n {x^{n - 1} } = nx^{n - 1} \]

$\blacksquare$ 

e pela regra de derivação da função composta: \[ \left( {f^n } \right)^\prime = nf^{n - 1} f' \] onde $f$ é função escalar,derivável, definida no tal corpo.

quinta-feira, 25 de dezembro de 2025

segunda-feira, 15 de dezembro de 2025

Spoiler...

 https://www.facebook.com/share/r/1Ev6bvsePo/

Este é um assunto que inincialmente eu tinha descartado, mas, um email do professor Filipe Oliveira convenceu-me a trazê-lo para aqui...
Vou mostrar a minha abordagem ao assunto. Desconheço se já foi abordada desta forma em algum lado... mas sem pressas. 

Vou escrever num bloco de notas e depois copiar para aqui, para evitar chatices.

sábado, 13 de dezembro de 2025

Python, bom senso e calculadoras. (II)

Como pedir a variável A, inteira ao utilizador?
Casio Basic:TI Basic:Python
"A="?->A:Int A->APrompt A:Int A->Aa=int(input("a="))

Python é aquela em que se usam mais caracteres/tokens...

Eu há vários anos que tenho alguns problemas em que as calculadoras (gráficas, programáveis) sejam utilizadas exclusivamente para o ensino.
Eu sempre gostei das Casio, mas...tenho estado a consultar informações sobre a nova Casio fx-CG100 e... :/ se removeram o Basic e deixaram o Python, esta máquina leva um cartão vermelho meu.
 Passo a preferir a Numworks (...) !
Penso que Matemática não deve ser o lugar para se ensinar a programar nem impor uma linguagem de programação, deve-se usar, não impor, porque linguagens informáticas mudam muito por vários motivos, são modas (metafóricas).
As calculadoras, por mim, deviam ter liberdade de escolha na linguagem, várias à escolha, incluindo linguagens fora de moda mas com potencial, e actualizadas
 (Basic sem sequer poder definir funções está muito longe de ser actual ou sequer recomendável, mas tem os seus prós ).
É uma opinião minha, não é lei nem imposição.
Eu consigo converter o meu (longo) arquivo pessoal de 30 anos de Casio Basic para Python... (Vou acabar a fazê-lo para a minha Numworks).
 Posso falar dele...
No caso das Casio, é desmoralizante porque perdem algo que sempre tiveram: Retrocompatibilidade!
Perdendo isso, vão ter de trabalhar para me reconquistar (Até compreendo, não faço parte do público alvo deles )...
Casio Basic tem uma coisa fantástica: usa as próprias funções e variáveis da calculadora.
Tal como o bash ou qualquer shellscript em Linux usa tudo o que o Linux tem disponível. É dificil fazer melhor do que isto.
MicroPython usa... MicroPython.
Há uma certa miopia muito pouco saudável em ver Python à frente.
O problema não é o Python. É esta miopia...
Python tem os seus problemas, tal como todas as linguagens.
 Por agora, não me interessa falar daqueles específicos do Python. O maior problema está em impor Python em calculadoras (de todas as marcas), com teclado em ordem alfabética, por causa do tal "pensamento computacional". (!!!)

 Pensamento computacional não é mau, já devia ser ensinado há 30 anos... mas isso é assunto para outro post.

PS:
  • O vídeo que partilhei tem alguns erros... quem usa a CG20 ou a CG50 consegue confirmar.
  • O professor Manuel Marques (da iniciativa Casio +) está a partilhar alguns vídeos de curta duração, e melhores que muitos cursos "oficiais", com uma breve introdução ao micropython das calculadoras. Ele está a fazer aquilo num emulador de CG50 mas aquilo é 'igual' em calculadoras de outras marcas que usem Python, e até no Python que se usa em computadores. Recomendo. Ele tem tido comentários desactivados, mas como eu tenho alguns canais youtube, compreendo e suporto a decisão
      https://youtube.com/@manuelmarques4761.
     Obviamente ele não vai dar um curso de Python ali. Vejam aquilo como um tutorial de introdução, e não como algo específico para calculadoras Casio.

quarta-feira, 10 de dezembro de 2025

A quantificação da dor

 A quantificação rigorosa da dor é feita através de escalas validadas (numéricas, visuais ou multidimensionais) que permitem medir intensidade, qualidade e impacto da dor na vida do paciente.

Em Portugal, a dor é considerada o 5.º sinal vital, devendo ser avaliada e registada sistematicamente.

A dor como 5º Sinal Vital (DGS - Comissão nacional de controlo da dor)

Sofrendo eu de dores crónicas, o assunto passou a interessar-me. Não do ponto de vista neurológico, académico, mas de um ponto de vista... matemático, rigoroso.

A dor chega a ser incapacitante, ao ponto de, no meu caso, após tomar medicação, eu sincronizar o ponto em que a dor é mais fraca com a hora em que vou dormir, caso contrário, não durmo.

Não existe um “instrumento físico” que meça a dor como um termómetro mede a temperatura. A dor é subjectiva e multidimensional, mas há instrumentos clínicos validados que permitem quantificá-la de forma rigorosa e comparável, combinando escalas numéricas, visuais e questionários multidimensionais
(fonte: o site da dor)

A forma mais rigorosa de medir a dor hoje é através de instrumentos multidimensionais validados como o questionário de McGill ou Brief Pain Inventory (BPI), que combinam intensidade, qualidade e impacto funcional. Embora não sejam “objetivos” como um termómetro, são considerados cientificamente robustos e permitem monitorizar a dor de forma sistemática e comparável.
Não captam toda a complexidade da função “dor”, mas fornecem variáveis fiáveis para análise e acompanhamento clínico.

Há formas de converter estes questionários em dados numéricos para análise estatística.

Como paciente, confio nos profissionais que me acompanham.
Como matemático... não sou fã disto, sei que é o que há, no entanto sempre que a dor abusa, o assunto regressa à minha mente...
Imagens criadas com Microsoft Copilot.