Bastão de Asclépio & Símbolo de Integral
invisible(Sys.setlocale("LC_CTYPE", "pt_BR.UTF-8"))
invisible(Sys.setlocale("LC_ALL","pt_BR.UTF-8"))
options(warn=-1)
suppressMessages(library(Deriv, warn.conflicts=FALSE))
suppressMessages(library(DescTools, warn.conflicts=FALSE))
suppressMessages(library(knitr, warn.conflicts=FALSE))
suppressMessages(library(nlsr, warn.conflicts=FALSE))
suppressMessages(library(REAT, warn.conflicts=FALSE))
suppressMessages(library(reticulate, warn.conflicts=FALSE))
suppressMessages(library(stringr, warn.conflicts=FALSE))
suppressMessages(library(turner, warn.conflicts=FALSE))
suppressMessages(library(units, warn.conflicts=FALSE))
suppressMessages(library(xml2, warn.conflicts=FALSE))
# suppressMessages(library(crfsuite, warn.conflicts=FALSE))
# Abra o Terminal (Prompt de Comando (CMD) do Windows)
# python.exe -m pip install --upgrade pip
# Digite: pip install pacote
import numpy
import matplotlib
import scipy
# import math
# import fractions
# import sympy
# import cmath
# import statistics
# import pandas
RPubs
“A morte do homem começa no instante em que ele desiste de aprender.”
Albino Teixeira apud Leite (2009)
1. Número real (Capítulo 1)
Batschelet, E (1979) Introduction to mathematics for life scientists. 3rd ed. NY: Springer.
Batschelet, E (1978) Introdução à matemática para biocientistas. Tradução da 2ª ed. São Paulo: EDUSP e Rio de Janeiro: Interciência.
A modelagem quantitativa realizada por meio da matemática, estatística e simulação é parte integrante do corpo de disciplinas necessárias para expressar, formular, resolver e comunicar problemas no âmbito das Ciências da Vida ou Biociências, pois ela consiste numa linguagem fundamental para elaborar modelos quantitativos sobre os fenômenos biológicos.
O objetivo do primeiro capítulo é revisar algumas leis e regras de álgebra. Uma seleção enfatizando as necessidades dos biocientistas será oferecida.
Ao mesmo tempo, adicionaremos conceitos importantes que geralmente são negligenciados em livros didáticos de matemática.
As linguagens R, Python, Scilab e WolframAlpha são ferramentais computacionais gratuitas que funcionam interativamente em RMarkdown.
As quatro linguagens de programação usadas nas aulas são:
R é uma linguagem de programação livre e gratuita utilizada em matemática aplicada à biologia para análise estatística, modelagem de sistemas biológicos e visualização de dados. Com um amplo conjunto de pacotes, R facilita a manipulação de grandes volumes de dados biológicos e a criação de modelos matemáticos para entender fenômenos naturais.
\(~\)Disponível em www.r-project.org
Wolfram Alpha é um mecanismo de computação gratuito baseado em conhecimento que responde a perguntas usando cálculos avançados e bancos de dados estruturados. Diferente de motores de busca tradicionais, ele processa consultas matemáticas, científicas, estatísticas e técnicas, fornecendo respostas exatas e visualizações gráficas.
\(~\)Disponível em www.wolframalpha.com
Scilab é um software livre e gratuito para cálculo numérico, amplamente utilizado em engenharia, ciência e matemática aplicada. Ele oferece um ambiente para computação científica, incluindo álgebra linear, estatística, otimização e simulação. Com uma sintaxe semelhante à do MATLAB, o Scilab permite a criação de gráficos, modelagem de sistemas dinâmicos e desenvolvimento de algoritmos complexos.
\(~\)Disponível em www.scilab.org
Python é uma linguagem interpretada, dinâmica, com suporte a programação procedural, funcional e orientada a objetos. Destaca-se pela sintaxe clara, indentação obrigatória e extensa biblioteca padrão, com ampla aplicação em análise de dados, matemática e estatística, especialmente com pacotes como NumPy, SciPy e Pandas.
\(~\)Disponível em www.python.org
Nível de medição da variável (Stevens, 1951; Chrisman, 1998; Sarle, 1997):
A categorização de objetos e eventos é o método mais simples de mensuração.
Atribuímos palavras, símbolos ou números a esses objetos. Este é o tipo mais primitivo de escala, chamado de escala nominal (do latim nomen = nome). Também dizemos que estamos trabalhando em nível nominal.
Ao categorizar espécies biológicas, classificar diferentes comportamentos de animais ou distinguir entre condições climáticas, operamos nesse nível. Da mesma forma, um etólogo utiliza escala nominal quando classifica animais como ativos, inativos, alertas, agressivos ou submissos.
Exemplo 1.2.1. A química é capaz de distinguir entre centenas de milhares, senão milhões, de substâncias diferentes. Primeiramente, cada substância pode ser classificada como um produto químico puro ou uma mistura de produtos químicos. Além disso, entre produtos químicos puros não há sobreposição; cada um é definido de maneira única. Gelo, água e vapor de água pertencem à mesma categoria, enquanto é feita uma clara distinção entre diferentes tipos de açúcares. Isso é bem diferente da linguagem cotidiana, na qual palavras como açúcar, sal, cera ou álcool não são bem definidas.
Obtemos uma maneira mais útil de mensuração se conseguimos ordenar objetos ou eventos. É fácil distinguir dois tons musicais diferentes em termos de altura. Não apenas os categorizamos, mas conseguimos ordená-los como mais graves ou mais agudos. Quando somos capazes de ordenar objetos e eventos, estamos usando uma escala ordinal (do latim ordo = ordem). Dizemos também que atingimos o nível ordinal.
Exemplo 1.2.2. Um pesquisador médico distingue algumas categorias de insuficiência renal provocada pelo consumo excessivo de certas substâncias químicas. Ele também pode ordenar essas categorias quanto à gravidade. Para isso, atribui convenientemente o número 0 à categoria “sem insuficiência”, o número 1 à “insuficiência leve”, o número 2 à “insuficiência moderada” e o número 3 à “insuficiência grave”. Ele criou, assim, uma escala ordinal com escores ou números de classificação 0, 1, 2 e 3. Observe que não é possível afirmar que o aumento da insuficiência leve para moderada seja igual ao aumento da insuficiência moderada para grave, embora a diferença numérica entre as categorias seja sempre 1.
Alcançamos um nível ainda mais elevado de mensuração quando os intervalos passam a ter significado. Considere a escala de temperatura Celsius (°C), antigamente chamada de escala centígrada. O ponto zero (0°C) é definido arbitrariamente como o ponto de congelamento da água sob a pressão de uma atmosfera. Entretanto, temperaturas de 1°C, 2°C, 3°C, etc., não representam apenas uma ordenação simples como na escala ordinal. Um intervalo de 1°C possui um significado físico real: o mercúrio de um termômetro sobe exatamente a mesma quantidade quando a temperatura aumenta em 1°C.
Sempre que tivermos uma escala com intervalos significativos, chamamos-na de escala intervalar. Dizemos também que trabalhamos no nível intervalar.
Existem escalas ainda mais úteis do que as nominais, ordinais ou intervalares. Considere o peso de um corpo. Aqui não precisamos definir um ponto zero arbitrário. O peso zero é um ponto de referência natural. Por essa razão, faz sentido afirmar que um animal pesa duas vezes mais que outro ou que seu peso aumentou dois por cento. Como a razão entre dois pesos tem significado real, chamamos essa escala de escala de razão ou dizemos que estamos trabalhando no nível de razão.
Observe como seria absurdo dizer que um corpo a 20°C está duas vezes mais quente que um corpo a 10°C. Da mesma forma, não faz sentido afirmar que o tempo avançou 50% ou que uma direção é dez vezes maior que outra direção. Portanto, no nível intervalar, razões não possuem necessariamente significado.
Exemplo 1.2.9. Comprimento, altura, espessura e volume de um corpo são mensurados em escalas de razão. Entretanto, precisamos diferenciar entre a altura de um corpo e a altitude de um local, que não está numa escala de razão (ver Exemplo 1.2.5). Altura pode ser interpretada como a diferença entre duas altitudes e, portanto, possui um ponto de referência claro, o zero. A altitude, por outro lado, tem um ponto de referência arbitrário. Na linguagem cotidiana, altitude é geralmente referida ao nível do mar, considerado absoluto. Apenas nessa condição faz sentido dizer que o Monte Everest é duas vezes mais alto que o Monte Rainier.
Exemplo 1.2.10. A temperatura tem um ponto mais baixo absoluto, em torno de -273°C. Portanto, é possível definir uma escala de razão para a temperatura. Assim, usando os intervalos da escala Celsius, foi criada a escala Kelvin. Nessa escala, 273°K corresponde ao ponto de congelamento e 373°K ao ponto de ebulição da água sob uma pressão de uma atmosfera. Com graus Kelvin faz sentido afirmar que 180°K é 80% mais quente que 100°K.
Porcentagens só podem ser aplicadas para quantidades medidas em uma escala de razão.
Os níveis de mensuração envolvem diferentes propriedades (relações e operações) dos números ou símbolos que constituem as medições. Associado a cada nível de mensuração está um conjunto de transformações permitidas. Os níveis de mensuração mais comumente discutidos são os seguintes:
nominal:
Duas coisas recebem o mesmo símbolo se tiverem o mesmo valor do
atributo.
As transformações permitidas são qualquer transformação um-para-um ou
muitos-para-um, embora uma transformação muitos-para-um perca
informação.
Exemplos: numeração de jogadores de futebol; números atribuídos
a religiões em ordem alfabética, por exemplo, ateu=1, budista=2,
cristão=3, etc.
ordinal:
As coisas são atribuídas a números de modo que a ordem dos números
reflita uma relação de ordem definida no atributo. Duas coisas \(x\) e \(y\) com valores de atributo \(a(x)\) e \(a(y)\) recebem números \(m(x)\) e \(m(y)\) de forma que, se \(m(x) > m(y)\), então \(a(x) > a(y)\).
As transformações permitidas são qualquer transformação monotonicamente
crescente, embora uma transformação que não seja estritamente crescente
perca informação.
Exemplos: escala de Mohs para dureza de minerais; notas de desempenho acadêmico (A, B, C, …); taxa de sedimentação sanguínea como medida de intensidade de patologia.
intervalar:
As coisas são atribuídas a números de modo que as diferenças entre os
números reflitam diferenças do atributo. Se \(m(x) - m(y) > m(u) - m(v)\), então \(a(x) - a(y) > a(u) - a(v)\).
As transformações permitidas são qualquer transformação afim \(t(m) = c \cdot m + d\), onde \(c\) e \(d\) são constantes; outra maneira de dizer
isso é que a origem e a unidade de medida são arbitrárias.
Exemplos: temperatura em graus Fahrenheit ou Celsius; data no calendário.
log-intervalar:
As coisas são atribuídas a números de modo que as razões entre os
números reflitam razões do atributo. Se \(m(x)
/ m(y) > m(u) / m(v)\), então \(a(x)
/ a(y) > a(u) / a(v)\).
As transformações permitidas são qualquer transformação de potência
\(t(m) = c \cdot m^d\), onde \(c\) e \(d\) são constantes.
Exemplos: densidade (massa/volume); eficiência de combustível em mpg.
razão:
As coisas são atribuídas a números de modo que diferenças e razões
entre os números reflitam diferenças e razões do atributo.
As transformações permitidas são qualquer transformação linear
(similaridade) \(t(m) = c \cdot m\),
onde \(c\) é uma constante; outra
maneira de dizer isso é que a unidade de medida é arbitrária.
Exemplos: comprimento em centímetros; duração em segundos; temperatura
em graus Kelvin.
absoluto:
As coisas são atribuídas a números de modo que todas as propriedades
dos números reflitam propriedades análogas do atributo.
A única transformação permitida é a transformação identidade.
Exemplos: número de crianças em uma família; probabilidade.
São, legitimamente, as variáveis oriundas de contagens (e.g., número de mortes de motociclistas).
E.g., em 2019, na Cidade de São Paulo, SP:
Quantos motociclistas mortos esperamos ver em 12 meses simulados?
morte.mes <- 366/12
mortes <- rpois(n=12,lambda=morte.mes)
cat("Em doze meses, com taxa de ",morte.mes," morte/mês, podemos observar:\n",sep="")
Em doze meses, com taxa de 30.5 morte/mês, podemos observar:
[1] 23 31 28 31 19 29 48 20 28 40 35 18
Para apreciar melhor a notícia: demo_PoissonMotos.R
Sistema Internacional de Unidades: Wikipédia
Na Matemática Aplicada, as variáveis têm unidade de medida no Sistema Internacional de Unidades (SI).
O Sistema Internacional de Unidades (SI) é o sistema de medidas padrão adotado globalmente para garantir uniformidade na ciência e tecnologia. Ele é baseado em sete unidades fundamentais, a partir das quais derivam todas as outras unidades.
Este item está baseado em Pauli et al. (1980) e Simão (1980).
O princípio da homogeneidade dimensional estabelece que todas as expressões físicas devem ser dimensionalmente coerentes, ou seja, os termos de uma equação devem ter as mesmas dimensões. Isso significa que não se pode somar ou igualar grandezas com diferentes dimensões físicas.
Matematicamente, se uma equação tem a forma:
\[ A + B = C \]
Então, necessariamente:
\[ [A] = [B] = [C] \]
sendo que \([X]\) representa a dimensão da grandeza \(X\).
Esse princípio é utilizado para verificar a coerência de equações físicas e também para derivar relações entre grandezas.
As dimensões das grandezas físicas são expressas em termos das dimensões fundamentais do Sistema Internacional de Unidades (SI). As mais comuns são:
Exemplos de grandezas derivadas e suas dimensões:
O pacote units
do R e WolframAlpha permitem a
manipulação de grandezas físicas com unidades, garantindo coerência
dimensional e facilitando conversões automáticas.
Principais funcionalidades:
Se houver tentativa de somar grandezas incompatíveis, como massa e distância, o pacote gera um erro, garantindo a consistência das operações.
Esse pacote é útil em modelagem matemática aplicada às ciências biológicas, ajudando a evitar erros em cálculos envolvendo grandezas físicas.
[1] "numeric"
Units: [kg]
[1] 70 90 100
[1] "units"
Units: [m]
[1] 1.8 1.7 1.9
Units: [kg/m^2]
[1] 21.6 31.1 27.7
21.6 [kg/m^2]
[1] 70 90 100
[1] 1.8 1.7 1.9
Units: [kg]
[1] 70 90 100
[1] "units"
Units: [m]
[1] 1.8 1.7 1.9
Units: [kg/m^2]
[1] 21.6 31.1 27.7
21.6 [kg/m^2]
10 [m/s^2]
80529.71 [mi/h^2]
[1] TRUE
[1] FALSE
udunits database from C:/Users/User/AppData/Local/R/win-library/4.5/units/share/udunits/udunits2.xml
[1] "m" "kg" "s" "A" "K" "mol" "cd" "rad"
[9] "sr" "Hz" "g" "N" "Pa" "J" "W" "C"
[17] "V" "F" "Ω" "S" "Wb" "T" "H" "°C"
[25] "lm" "lx" "kat" "Bq" "Gy" "Sv" "min" "h"
[33] "d" "π" "°" "'" "\"" "L" "t" "eV"
[41] "u" "au" "ua" "" "" "Å" "a" ""
[49] "b" "" "" "Ci" "R" "" "" ""
[57] "°K" "" "" "Bd" "℃" "kt" "" "%"
[65] "ppv" "ppm" "ppb" "ppt" "ppq" "" "" ""
[73] "" "" "" "lb" "" "gr" "" ""
[81] "" "" "" "" "" "" "dr" ""
[89] "" "" "" "" "" "" "" ""
[97] "" "" "" "" "" "" "" ""
[105] "" "" "" "in" "ft" "yd" "mi" ""
[113] "" "" "rps" "rpm" "" "" "" ""
[121] "" "" "" "" "" "bu" "pk" ""
[129] "" "cc" "" "" "" "" "" "bbl"
[137] "" "" "pt" "" "" "oz" "Tbl" "fldr"
[145] "tsp" "" "" "" "" "" "" "BZ"
[153] "" "" "" "" "" "" "yr" ""
[161] "" "" "" "" "" "" "" ""
[169] "" "" "" "" "" "" "H2O" ""
[177] "" "Hg" "" "" "" "" "kgf" "ozf"
[185] "lbf" "" "gf" "" "" "atm" "at" "cm_H2O"
[193] "" "" "ftH2O" "cm_Hg" "" "" "" "mm_Hg"
[201] "in_Hg" "psi" "ksi" "" "B_SPL" "" "St" ""
[209] "" "" "" "" "cal" "" "" "thm"
[217] "" "bev" "VA" "" "hp" "" "" ""
[225] "" "" "BW" "Bm" "" "" "" ""
[233] "" "" "" "" "" "" "e" ""
[241] "" "" "" "" "" "Oe" "" ""
[249] "" "" "" "" "" "BV" "Bv" "BµV"
[257] "°R" "°F" "" "" "" "sb" "ph" "nt"
[265] "" "" "" "gp" "" "" "PVU" ""
[273] "" "" "DU" ""
[1] "The meter is the length of the path travelled by light in vacuum during a time interval of 1/299 792 458 of a second."
[2] " The kilogram is the unit of mass; it is equal to the mass of the international prototype of the kilogram."
[3] "The second is the duration of 9 192 631 770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the cesium 133 atom."
[4] "The ampere is that constant current which, if maintained in two straight parallel conductors of infinite length, of negligible circular cross-section, and placed 1 meter apart in vacuum, would produce between these conductors a force equal to 2e-7 newton per meter of length."
[5] "The kelvin, unit of thermodynamic temperature, is the fraction 1/273.16 of the thermodynamic temperature of the triple point of water."
[6] "The mole is the amount of substance of a system which contains as many elementary entities as there are atoms in 0.012 kilogram of carbon 12. When the mole is used, the elementary entities must be specified and may be atoms, molecules, ions, electrons, other particles, or specified groups of such particles."
[7] "The candela is the luminous intensity, in a given direction, of a source that emits monochromatic radiation of frequency 540e12 hertz and that has a radiant intensity in that direction of 1/683 watt per steradian."
if (requireNamespace("xml2", quietly = TRUE)) {
units::valid_udunits()
units::valid_udunits_prefixes()
if(interactive())
View(units::valid_udunits())
}
udunits database from C:/Users/User/AppData/Local/R/win-library/4.5/units/share/udunits/udunits2.xml
udunits database from C:/Users/User/AppData/Local/R/win-library/4.5/units/share/udunits/udunits2.xml
udunits database from C:/Users/User/AppData/Local/R/win-library/4.5/units/share/udunits/udunits2.xml
# A tibble: 20 × 4
symbol symbol_aliases name value
<chr> <chr> <chr> <dbl>
1 Y "" yotta 1e+24
2 Z "" zetta 1e+21
3 E "" exa 1e+18
4 P "" peta 1e+15
5 T "" tera 1e+12
6 G "" giga 1e+ 9
7 M "" mega 1e+ 6
8 k "" kilo 1e+ 3
9 h "" hecto 1e+ 2
10 da "" deka 1e+ 1
11 d "" deci 1e- 1
12 c "" centi 1e- 2
13 m "" milli 1e- 3
14 µ "μ, u" micro 1e- 6
15 n "" nano 1e- 9
16 p "" pico 1e-12
17 f "" femto 1e-15
18 a "" atto 1e-18
19 z "" zepto 1e-21
20 y "" yocto 1e-24
mtcars$consumption <- units::set_units(mtcars$mpg, mi/gallon)
mtcars$power <- units::set_units(mtcars$hp, hp)
# Use units encoded into the data
ggplot2::ggplot(mtcars) +
ggplot2::geom_point(ggplot2::aes(power, consumption))
# Convert units on the fly during plotting
ggplot2::ggplot(mtcars) +
ggplot2::geom_point(ggplot2::aes(power, consumption)) +
units::scale_x_units(unit = "W") + # 1 hp = 746 Watt
units::scale_y_units(unit = "km/l")
# Resolve units when transforming data
ggplot2::ggplot(mtcars) +
ggplot2::geom_point(ggplot2::aes(power, 1 / consumption))
# Reverse the y axis
ggplot2::ggplot(mtcars) +
ggplot2::geom_point(ggplot2::aes(power, consumption)) +
units::scale_y_units(trans="reverse")
Efetue as operações indicadas apresentando o resultado o mais simplificado possível e em unidades S.I.
Resposta:
3.878645e-03 [m^4/s^3]
Solução 1:
u1 <- 1
units(u1) <- "g cm-1 s-1"
u3 <- 1
units(u3) <- "kg m-1 s-1"
u2 <- 1
units(u2) <- "kg m-1 s-2" # 1 atm = 101325 Pa
a1 <- units::set_units(units::set_units(2.4, atm),
units(u2),
mode = "standard")
r <- (0.3/(0.53*
units::set_units(units::set_units(5, 1/cm), 1/m)^2*
((1-0.3)^2))*
units::set_units(units::set_units(6.34, cm^2), m^2)*
units::set_units(units::set_units(2.4, atm), units(u2),
mode="standard")*
units::set_units(9.8, m/s^2))/
(units::set_units(units::set_units(180, units(u1),
mode="standard"),
units(u3), mode="standard")*
units::set_units(units::set_units(10, cm), m))
format(r, scientific=TRUE)
[1] "3.878645e-03 [m^4/s^3]"
Solução 2:
a <- 0.3
b <- 0.53
c <- units::set_units(5,"cm^-1")
# ou c <- units::set_units(5,"cm-1")
d <- 0.3
e <- units::set_units(6.34,"cm^2")
# ou e <- units::set_units(6.34,"cm2")
f <- units::set_units(2.4, "atm")
# pressão = força / área
# força = massa * aceleração
# atm = massa * aceleração / área [g m s-2 m-2]
units::ud_are_convertible("atm", "(g*m/(s^2))/(m^2)")
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
f <- units::set_units(f, "g cm-1 s-2")
g <- units::set_units(9.8,"m s-2")
g <- units::set_units(g,"cm s-2")
h <- units::set_units(180,"g cm-1 s-1")
i <- units::set_units(10,"cm")
r <- (a/(b*c^2*(1-d)^2))*((e*f*g)/(h*i))
format(r, scientific=TRUE)
[1] "3.878645e+05 [cm^4/s^3]"
[1] "3.878645e-03 [m^4/s^3]"
Suponha que um biólogo esteja estudando o crescimento de um potro. Quando ele começa sua investigação, o potro pesa 50 kg. O número é simplificado para facilitar a apresentação. Em um mês a massa corporal total (MCT) aumenta 20%, ou seja, 1/5 de 50 kg, e chega a 60 kg. Suponha que em um segundo mês a MCT aumente novamente em 20%; então tendemos a dizer “o aumento total é de 20% + 20% = 40%”.
Fig. 1.1. Crescimento de um potro.
\[ f=w\left(1+\dfrac{p}{100}\right)^n \]
\(n\in\mathbb{N^{\ast}}\): número de intervalos de tempo
\(p\in\mathbb{R_{+}^{\ast}}\): proporção de aumento da MCT num período de tempo
Este é um exemplo clássico de crescimento composto, onde os ganhos de um período são reinvestidos, por assim dizer, e contribuem para o crescimento em períodos subsequentes. No contexto do crescimento da massa corporal total (MCT) do potro, o erro comum é somar as taxas de crescimento sem considerar o efeito de composição.
No primeiro mês, o potro de 50 kg aumenta sua massa em 20%, o que leva a um aumento de 10 kg, resultando em uma MCT de 60 kg.
Para o segundo mês, o aumento de 20% não é aplicado ao peso original de 50 kg, mas ao novo peso de 60 kg. Isso significa que o aumento é de 20% de 60 kg, não de 50 kg. Vamos calcular o novo peso após o segundo mês para ver por que simplesmente somar as taxas de crescimento (20% + 20% = 40%) não dá uma descrição precisa do aumento total.
\[ \begin{align} \text{Aumento no segundo mês} &= 60 \,\text{kg} \times 20\% = 60 \,\text{kg} \times 0.20 = 12 \,\text{kg} \\ \text{Novo peso após o segundo mês} &= 60 \,\text{kg} + 12 \,\text{kg} = 72 \,\text{kg} \end{align} \]
Portanto, ao final do segundo mês, o peso do potro é de 72 kg. Para calcular o aumento percentual total, podemos usar a fórmula de crescimento composto ou simplesmente calcular a diferença percentual entre o peso inicial e o final:
\[ \begin{align} \text{Aumento percentual total} &= \left( \dfrac{\text{Peso final} - \text{Peso inicial}}{\text{Peso inicial}} \right) \times 100\% \\ \text{Aumento percentual total} &= \left( \dfrac{72 \,\text{kg} - 50 \,\text{kg}}{50 \,\text{kg}} \right) \times 100\%=44\% \end{align} \]
Vamos calcular isso para ver como o aumento total é realmente maior do que a soma simples das taxas de aumento mensal.
O aumento percentual total na massa corporal total (MCT) do potro, ao longo dos dois meses, é de 44%. Isso demonstra que o aumento real é maior do que a soma simples das taxas de crescimento mensal (20% + 20% = 40%), devido ao efeito de composição do crescimento.
\[\left(1+\dfrac{20}{100}\right)^2=1.44\]
[1] 1.44
w <- 50
r <- 0.2
for(t in 0:2)
{
cat("\nPeso no tempo t(",t,")=",w,sep="")
cat("\n\t... aumento de ",r*100,"%",sep="")
w <- w*(1+r)
}
Peso no tempo t(0)=50
... aumento de 20%
Peso no tempo t(1)=60
... aumento de 20%
Peso no tempo t(2)=72
... aumento de 20%
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
1.44
Qual área foi coberta \(1,2, \ldots, n\) anos depois?
Quanto tempo levou para cobrir toda a área de remanso de 200 km2?
Solução:
\(\text{Área} = 12 \times 1.5^n \;\text{km}^2, \;n = 1,2, \ldots\)
\[ \begin{align} 12 \times 1.5^n &= 200 \\ n \times \log(1.5) &= \log\left(\dfrac{200}{12}\right) \\ n &\approx 6.94 \;\text{anos} \end{align} \]
Portanto, a água represada foi totalmente coberto em 1965 (= 1958 + 7).
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
6.9387246
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
6.9387246
n = 6.938725
n = 6.938745
curve(f(x), 0, 10, xlab="n", ylab="f(n)",
main=expression(f(n)==12*plain(x)*1.5^n-200))
points(uni, 0, pch = 16, cex = 1.2)
abline(h = 0, lty = 3)
abline(v = uni, lty = 3)
# changing axes
startyear <- 1958
curve(f(x), 0, 10,
xlab="ano = n+1958",
ylab="área (km²)",
axes=FALSE,
main=expression(f(ano)==12*plain(x)*1.5^ano))
y <- seq(-200,600,by=100)
l <- y+200
axis(2,at=y,labels=l)
axis(1,at=0:10,labels=seq(startyear,startyear+10,by=1))
points(uni, 0, pch = 16, cex = 1.2)
abline(h = 0, lty = 3)
abline(v = uni, lty = 3)
area <- 12
r <- 0.5
ano <- ano0 <- 1958
while (1)
{
cat("\nArea coberta em ",ano," = ",area,sep="")
delta <- ano-ano0
if(delta>0) {cat(" (após ",delta," anos)",sep="")}
if (area >= 200)
{
break
}
cat("\n\t... aumento de ",r*100,"%",sep="")
area <- area*(1+r)
ano <- ano+1
}
Area coberta em 1958 = 12
... aumento de 50%
Area coberta em 1959 = 18 (após 1 anos)
... aumento de 50%
Area coberta em 1960 = 27 (após 2 anos)
... aumento de 50%
Area coberta em 1961 = 40.5 (após 3 anos)
... aumento de 50%
Area coberta em 1962 = 60.75 (após 4 anos)
... aumento de 50%
Area coberta em 1963 = 91.125 (após 5 anos)
... aumento de 50%
Area coberta em 1964 = 136.6875 (após 6 anos)
... aumento de 50%
Area coberta em 1965 = 205.0312 (após 7 anos)
# definição da função
def f(x):
return 12 * 1.5**x - 200
# Encontrar raiz onde f(x)=0
raiz = scipy.optimize.brentq(f, 0, 10)
# Valores para o gráfico
x = numpy.linspace(0, 10, 200)
y = f(x)
# Gráfico
matplotlib.pyplot.plot(x, y, color='blue')
matplotlib.pyplot.axhline(y=0, linestyle='dotted', color='black')
matplotlib.pyplot.axvline(x=raiz, linestyle='dotted')
matplotlib.pyplot.plot(raiz, 0, 'o', markersize=8, color='red')
matplotlib.pyplot.xlabel('x')
matplotlib.pyplot.ylabel('f(x)')
matplotlib.pyplot.title('Gráfico da função e sua raiz')
matplotlib.pyplot.grid(False)
matplotlib.pyplot.show()
Quais expressões a seguir são equivalentes?
Resposta:
Portanto, \(a=c\).
\[\Diamond\]
Valor absoluto
\[ \begin{align} |+5|&=5 \\ |-5|&=5 \end{align} \]
[1] 5
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
5.
Nunca divida por zero!
Exemplo I. Os leitores familiarizados com o símbolo \(\infty\) que significa infinito podem estar inclinados a escrever \(3/0 = \infty\). No entanto, isso não é correto por dois motivos. Primeiramente, \(\infty\) não é um número, de modo que o sinal de igualdade não é aplicável. Em segundo lugar, se \(3/0 = \infty\) fosse verdadeiro, \(3/0 = -\infty\) também seria verdadeiro.
Exemplo II. Observe que a equação \(x^2 = px\) não pode ser resolvida adequadamente se dividirmos cada lado por \(x\). Perderíamos a solução possível \(x = 0\).
Procedendo corretamente, coletamos os dois termos do lado esquerdo, fatoramos \(x\) e decidimos que \(x\) ou \(x - p\) deve ser zero:
\[ \begin{align} x^2&=px \\ x^2-px&=0 \\ x(x-p)&=0 \end{align} \]
Para \(p=1\), tem-se \(x(x-1)=0\).
Scilab 2023.1.0 (May 23 2023, 09:23:00)
y =
-x +x^2
ans =
1. + 0.i
0. + 0.i
# Solucao incorreta!
f <- function(x) x^2 - x
curve(f(x), 0, 2, xlab="x", ylab="f(x)",
main=expression(x^2-x==0))
uni <- uniroot(f, c(0, 2))$root
cat("x =", uni)
x = 0
# Solucao correta, mas aproximada!
f <- function(x) x^2 - x
curve(f(x), -1, 2, xlab="x", ylab="f(x)",
main=expression(x^2-x==0))
All <- rootSolve::uniroot.all(f, c(-1, 2))
print(All)
[1] -0.0001680278 1.0001680278
points(All, y = rep(0, length(All)), pch = 16, cex = 1)
abline(h = 0, v = c(All[1], All[2]), lty = 3)
# Definir os coeficientes do polinômio f(x) = x² - x
coeficientes = [1, -1, 0] # Representa x² - x
# Encontrar todas as raízes do polinômio
raizes = numpy.roots(coeficientes)
print("Raízes encontradas:", raizes)
Raízes encontradas: [1. 0.]
# Criar gráfico da função
x = numpy.linspace(-1, 2, 400)
y = x**2 - x # Avaliação da função
matplotlib.pyplot.figure(figsize=(8, 6))
matplotlib.pyplot.plot(x, y, color='blue', label="f(x) = x² - x")
matplotlib.pyplot.axhline(0, color='black', linestyle='dotted')
# Marcar raízes no gráfico
for raiz in raizes:
matplotlib.pyplot.axvline(x=raiz, color='gray', linestyle='dotted')
matplotlib.pyplot.plot(raiz, 0, 'o', markersize=8, color='red')
matplotlib.pyplot.xlabel('x')
matplotlib.pyplot.ylabel('f(x)')
matplotlib.pyplot.title('Gráfico da função e suas raízes')
matplotlib.pyplot.grid(False)
matplotlib.pyplot.legend()
matplotlib.pyplot.show()
Exemplo 1.7.1. Resolver a inequação: u é incógnita e p é parâmetro
\[ u(u-1)>p-4u+u^2 \]
Resposta:
\(u>p/3\) and \(p \in \mathbb{R}\)
Exemplo II. Resolver a inequação
\[ x^2<2 \]
Resposta:
\[ -\sqrt{2}<x<\sqrt{2} \]
Média é uma medida de posição central de um conjunto de valores numéricos. Portanto, não pode ser calculada para variável ordinal e nominal.
Quando uma quantidade muda com o tempo ou quando um experimento é repetido várias vezes, temos que condensar a quantidade de dados para fins práticos. Uma maneira de fazer isso é calcular média ou valor médio.
Quando a quantidade em consideração é intervalar ou razão, o valor médio mais comum é a média aritmética.
\[ \bar{x}=\dfrac{x_{1}+x_{2}}{2} \]
Há ocasiões em que a média aritmética perde seu valor biológico significado.
A média geométrica só é aplicável se as grandezas envolvidas são medidos em uma escala de razão.
Considere o crescimento de um potro conforme descrito na Seção 1.3.
Em intervalos de tempo equidistantes, o potro atinge os pesos 50 kg, 60 kg, 72 kg.
A sequência foi o resultado da multiplicação de 50 kg repetidamente pelo fator constante 1.2. Achamos que 60 kg é a média adequada entre 50 kg e 72 kg. Porém, a média aritmética é \((50 + 72)/2 = 61\).
Peso do potro é uma variável de razão. Portanto, podemos usar a média geométrica que é definida pela fórmula \(x_{g}=\sqrt{x_{1} \times x_{2}}\). Obtemos \(\sqrt{50\times72} = \sqrt{3600} = 60\) que é o valor desejado.
\[ \begin{align} x_{g}&=\sqrt{x_{1} \times x_{2}} \\ \log(x_{g})&=\dfrac{\log(x_{1}) + \log(x_{2})}{2} \end{align} \]
mean (a,b,c)
geometric mean (a,b,c)
harmonic mean (a,b,c)
[1] 60.66667
[1] 60
[1] 59.34066
x = [50, 60, 72]
media_arit = numpy.mean(x)
media_geom = scipy.stats.gmean(x)
media_harm = scipy.stats.hmean(x)
print(f'Média Aritmética: {media_arit:.2f}')
Média Aritmética: 60.67
Média Geométrica: 60.00
Média Harmônica: 59.34
Scilab 2023.1.0 (May 23 2023, 09:23:00)
x =
50. 60. 72.
ans =
60.666667
ans =
60.000000
ans =
59.340659
Em muitas situações que envolvem taxas e razões, a média harmônica fornece a média correta. Por exemplo, se um veículo percorre uma certa distância \(d\) na ida com velocidade \(x\) (por exemplo, 60 km/h) e retorna a mesma distância com velocidade \(y\) (por exemplo, 20 km/h), então a velocidade média do trajeto é a média harmônica de \(x\) e \(y\) (30 km/h), e não a média aritmética (40 km/h). O tempo total de viagem é o mesmo que se ele tivesse percorrido toda a distância a essa velocidade média harmônica. Isso pode ser demonstrado da seguinte forma:
\[ \begin{align} \text{Velocidade média para todo o percurso} &= \dfrac{\text{Distância total percorrida}}{\text{Soma do tempo de cada segmento}} \\ &= \dfrac{2d}{\dfrac{d}{x} + \dfrac{d}{y}} \\ &= \dfrac{2xy}{x + y} \\ \text{Velocidade média para todo o percurso}&=\dfrac{(x^{-1}+y^{-1})^{-1}}{2} \end{align} \]
Por outro lado, se o veículo percorre um determinado tempo a uma velocidade \(x\) e depois o mesmo tempo a uma velocidade \(y\), então a velocidade média é a média aritmética de \(x\) e \(y\), que no exemplo acima resulta em 40 km/h:
\[ \begin{align} \text{Velocidade média para todo o percurso} &= \dfrac{\text{Distância total percorrida}}{\text{Soma do tempo de cada segmento}}\\ &= \dfrac{xt + yt}{2t}\\ \text{Velocidade média para todo o percurso}&= \dfrac{x + y}{2} \end{align} \]
O mesmo princípio se aplica para mais de dois segmentos: se há uma série de subtrajetos com velocidades diferentes, e cada subtrajeto cobre a mesma distância, então a velocidade média é a média harmônica de todas as velocidades dos subtrajetos. Se cada subtrajeto leva o mesmo tempo, então a velocidade média é a média aritmética das velocidades dos subtrajetos.
Se nenhuma dessas condições for satisfeita, então uma média harmônica ponderada ou uma média aritmética ponderada pode ser necessária. No caso da média aritmética, a velocidade de cada parte do trajeto é ponderada pelo tempo gasto naquela parte. Já na média harmônica, o peso correspondente é a distância percorrida. Em ambos os casos, a fórmula final se reduz à divisão da distância total pelo tempo total.
No entanto, é possível evitar o uso da média harmônica no caso da ponderação por distância. Podemos reformular o problema considerando a “lenteza” da viagem (onde “lenteza” significa o inverso da velocidade, expresso em tempo por quilômetro). Para cada segmento do trajeto \(i\), a lenteza é dada por:
\[ s_i = \dfrac{1}{\text{velocidade}_i} \]
Então, basta calcular a média aritmética ponderada das lentezas \(s_i\), ponderadas por suas respectivas distâncias percorridas (normalizadas para que a soma seja 1). Isso dá a verdadeira média da lenteza da viagem (em tempo por quilômetro). Descobrimos, assim, que esse procedimento — que pode ser feito sem a necessidade de conhecer a média harmônica — equivale matematicamente ao cálculo da média harmônica. Isso demonstra por que a média harmônica funciona nesse caso.
A média aritmética é maior que a geométrica. A média geométrica é maior que a harmônica.
Para dois números reais positivos \(a\) e \(b\), considere:
\[ \left(\sqrt{a} - \sqrt{b}\right)^2 \geq 0 \]
Expandindo:
\[ a - 2\sqrt{ab} + b \geq 0 \]
Daí resulta diretamente:
\[ \dfrac{a + b}{2} \geq \sqrt{ab} \]
com a igualdade ocorrendo somente quando \(a = b\).
Sejam \(a\) e \(b\) dois números reais positivos. A média harmônica é definida como:
\[ H = \dfrac{2}{\dfrac{1}{a} + \dfrac{1}{b}} = \dfrac{2ab}{a + b} \]
Pela desigualdade entre média aritmética e geométrica, sabemos que:
\[ \dfrac{a + b}{2} \geq \sqrt{ab} \]
Invertendo ambos os lados (válido, pois \(a,b>0\)):
\[ \dfrac{2}{a+b} \leq \dfrac{1}{\sqrt{ab}} \]
Multiplicando ambos os lados por \(ab\):
\[ \dfrac{2ab}{a+b} \leq \sqrt{ab} \]
Portanto, concluímos que:
\[ H \leq \sqrt{ab} \leq \dfrac{a + b}{2} \]
Assim, fica demonstrado que, para quaisquer números positivos, a média harmônica é menor ou igual à média geométrica, que, por sua vez, é menor ou igual à média aritmética. A igualdade ocorre se e somente se \(a = b\).
\[ \begin{align} \bar{x}&=\dfrac{x_{1}+x_{2}+\cdots+x_{n}}{n}=\dfrac{\sum_{i=1}^{n}{x_{i}}}{n} \\ \bar{x}&=\dfrac{\sum_{i=1}^{n}{x_{i}}}{n}=\dfrac{1}{n}\sum_{i=1}^{n}{x_{i}}=\sum_{i=1}^{n}{\dfrac{x_{i}}{n}} \end{align} \]
Mostre que o somatório dos desvios é nulo, i.e., \(\sum_{i=1}^{n}{\left(x_{i}-\bar{x}\right)}=0\).
Mostre que a média dos desvios absolutos é positiva, i.e.,\(\dfrac{1}{n}\sum_{i=1}^{n}{\left|x_{i}-\bar{x}\right|}\ge0\).
Mostre que a média dos desvios ao quadrado (variância populacional) é positiva, i.e., \(\dfrac{1}{n}\sum_{i=1}^{n}{\left(x_{i}-\bar{x}\right)^2}\ge0\).
Exemplo:
\(x_{i}\) | \(x_{i}-\bar{x}\) | \(\left(x_{i}-\bar{x}\right)^2\) |
---|---|---|
2.4 | -0.3 | 0.09 |
3.1 | +0.4 | 0.16 |
2.8 | +0.1 | 0.01 |
2.9 | +0.2 | 0.04 |
2.2 | -0.5 | 0.25 |
2.8 | +0.1 | 0.01 |
—- | —— | ——— |
16.2 | 0 | 0.56 |
mean (2.4, 3.1, 2.8, 2.9, 2.2, 2.8)
population variance (2.4, 3.1, 2.8, 2.9, 2.2, 2.8)
[1] 2.7
[1] 0.09333333
Scilab 2023.1.0 (May 23 2023, 09:23:00)
x =
2.4 3.1 2.8 2.9 2.2 2.8
ans =
2.7000000
ans =
0.0933333
ans =
0.0933333
Prefixos para Unidades de Medida
Símbolo | Prefixo | Fator | Potência de 10 |
---|---|---|---|
G | giga- | 1000000000 | 109 |
M | mega- | 1000000 | 106 |
k | kilo- | 1000 | 103 |
m | mili- | 0.001 | 10-3 |
μ | micro- | 0.000001 | 10-6 |
n | nano- | 0.000000001 | 10-9 |
Exemplos são μg (micrograma), μm (micrômetro, anteriormente denotado apenas por μ), nm (nanômetro), MHz (megaHertz = 106 ciclos por segundo), mHz (miliHertz = 10-3 ciclos por segundo).
udunits database from C:/Users/User/AppData/Local/R/win-library/4.5/units/share/udunits/udunits2.xml
# A tibble: 20 × 4
symbol symbol_aliases name value
<chr> <chr> <chr> <dbl>
1 Y "" yotta 1e+24
2 Z "" zetta 1e+21
3 E "" exa 1e+18
4 P "" peta 1e+15
5 T "" tera 1e+12
6 G "" giga 1e+ 9
7 M "" mega 1e+ 6
8 k "" kilo 1e+ 3
9 h "" hecto 1e+ 2
10 da "" deka 1e+ 1
11 d "" deci 1e- 1
12 c "" centi 1e- 2
13 m "" milli 1e- 3
14 µ "μ, u" micro 1e- 6
15 n "" nano 1e- 9
16 p "" pico 1e-12
17 f "" femto 1e-15
18 a "" atto 1e-18
19 z "" zepto 1e-21
20 y "" yocto 1e-24
A unidade ppm indica quantas “partes por milhão” estão envolvidas. Assim, 1 mg significa 1 ppm em relação a 1 kg. Da mesma forma, 1 cm3 é 1 ppm em relação a 1 m3.
Portanto, recíprocos como 1/A também são escritos como A-1. Da mesma forma, encontramos m seg-1 em vez de m/s para a unidade de velocidade.
Em relação às potências de dez, mencionamos a frase “ordem de magnitude”. Quando se diz que duas quantidades são de diferentes ordens de magnitude, isso pode significar que elas não são comparáveis em tamanho ou que uma quantidade é pelo menos dez vezes maior que a outra. “Duas ordens de grandeza” significaria então um fator de cerca de 102 = 100.
Problema 1.10.2. A capacidade de oxigênio do sangue dos mamíferos é de cerca de 200 ml por litro de sangue. Se totalmente utilizada, esta quantidade de oxigênio produzirá uma energia de 4.2×103 J (Joule).
Solução:
O sangue se comporta como a água, quando aquecido: Um litro precisa da energia de 4.2×103 J ou mil calorias (kcal ou C) para um aumento de temperatura de 1o C. E esta é exatamente a energia que o oxigênio no sangue pode fornecer. Portanto, a resposta é 1o C.
A energia necessária para erguer uma massa de 1 kg por 1 m é 9.81 Nm (Newtonmetro) = 9.81 J. Portanto, para cada metro para subir, um homem de 70 kg requer uma energia de 70×9.81 J m-1. A energia contida em 3.5 litros de sangue é 3.5×4.2×103 J = 14.7×103 J. Essa energia é suficiente para subir (14.7×103 J)/(70×9.81 J m-1) = 21 m.
Assim, ao subir, o corpo tem que renovar seu conteúdo de oxigênio pelo menos a cada 21 metros.
\[ x^{1/2}=\sqrt{x}, \; x \ge 0 \]
\[ x^{2/3}=\sqrt[3]{x^2}, \; x > 0 \]
\[ \sqrt{x^2}=|x| \]
Os pesquisadores estão frequentemente preocupados com a imprecisão dos números.
Uma fonte são erros na contagem ou incertezas nos instrumentos de leitura.
Outra fonte são as flutuações aleatórias na amostragem.
Finalmente, os inevitáveis erros de arredondamento também causam algumas dificuldades.
Suponha que um número como 14.07 tenha um erro não superior a 0.005, ou seja, um erro não maior que a metade do último dígito. Então o último decimal 7 é exato e dizemos que 14.07 tem quatro dígitos significativos (ou algarismos).
Problema. Quantos dígitos significativos tem o número 380?
Solução:
3.8×102 tem dois dígitos significativos.
3.80×102 tem três dígitos significativos.
O erro é no máximo 0.05×102 para o primeiro número e no máximo 0.005×102 para o segundo número. Sem potências, ambos os números seriam 380, não indicando, portanto, a precisão.
Exemplo. Arredondar para uma casa decimal, arredondar para o menor e maior inteiro, e truncar os números 4.65 e 4.75.
Solução:
Pode ser aplicado pela regra: 5 é arredondado para baixo sempre que o algarismo precedente é par e é arredondado para cima sempre que o algarismo anterior é ímpar. Assim, 4.65 e 4.75 são arredondados para 4.6 e 4.8, respectivamente.
Arredondar para uma casa decimal 4.65 = 4.6
Arredondar para uma casa decimal 4.75 = 4.8
Arredondar para o menor inteiro 4.65 = 4
Arredondar para o menor inteiro 4.75 = 4
Arredondar para o maior inteiro 4.65 = 5
Arredondar para o maior inteiro 4.75 = 5
Truncar 4.65 = 4
Truncar 4.75 = 4
Comando | Aparência | Resultado |
---|---|---|
round to 2 digits 4.05 | 4.1 | 4.0 |
round to 2 digits 4.15 | 4.2 | 4.2 |
round to 2 digits 4.25 | 4.3 | 4.3 |
round to 2 digits 4.35 | 4.4 | 4.4 |
round to 2 digits 4.45 | 4.5 | 4.4 |
round to 2 digits 4.55 | 4.6 | 4.5 |
round to 2 digits 4.65 | 4.7 | 4.6 |
round to 2 digits 4.75 | 4.8 | 4.8 |
round to 2 digits 4.85 | 4.9 | 4.9 |
round to 2 digits 4.95 | 5.0 | 5.0 |
Comando | Aparência | Resultado |
---|---|---|
round to 3 digits 14.05 | 14.1 | 14.0 |
round to 3 digits 14.15 | 14.2 | 14.2 |
round to 3 digits 14.25 | 14.3 | 14.2 |
round to 3 digits 14.35 | 14.4 | 14.4 |
round to 3 digits 14.45 | 14.5 | 14.4 |
round to 3 digits 14.55 | 14.6 | 14.5 |
round to 3 digits 14.65 | 14.7 | 14.7 |
round to 3 digits 14.75 | 14.8 | 14.7 |
round to 3 digits 14.85 | 14.9 | 14.9 |
round to 3 digits 14.95 | 15.0 | 15.0 |
Comando | Aparência | Resultado |
---|---|---|
round to 1 digits 0.05 | 0.05 | 0.05 |
round to 1 digits 0.15 | 0.2 | 0.1 |
round to 1 digits 0.25 | 0.3 | 0.2 |
round to 1 digits 0.35 | 0.4 | 0.4 |
round to 1 digits 0.45 | 0.5 | 0.4 |
round to 1 digits 0.55 | 0.6 | 0.6 |
round to 1 digits 0.65 | 0.7 | 0.6 |
round to 1 digits 0.75 | 0.8 | 0.8 |
round to 1 digits 0.85 | 0.9 | 0.9 |
round to 1 digits 0.95 | 1.0 | 0.9 |
[1] 4.7
[1] 4.8
[1] 4
[1] 4
[1] 5
[1] 5
[1] 4
[1] 4
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
5.
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
5.
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
4.
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
4.
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
5.
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
5.
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
4.
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
4.
O resultado de uma multiplicação ou divisão tem aproximadamente o mesmo número de dígitos significativos que o termo com o menor número de dígitos significativos.
Assim, em 14.04×2.3/39.7 = 0.813, o termo com menos dígitos significativos é 2.3. Tem um, no máximo dois dígitos significativos. Portanto, 0.813 não tem mais dígitos significativos. O resultado deve ser arredondado para 0.81 caso o fator 2.3 tenha apenas um dígito significativo.
[1] 0.8134005
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
0.8134005
Ocasionalmente, o número de dígitos significativos é aumentado. Isso pode acontecer com a média aritmética de dez ou mais medições se a dispersão for pequena o suficiente. Por razões que não podem ser explicadas aqui, a precisão da média aritmética é maior do que a das medições individuais. Por exemplo, suponha que dez folhas de uma árvore sejam selecionadas aleatoriamente e seus comprimentos medidos em cm sejam:
5.8 6.1 5.7 5.6 6.2 5.8 5.9 6.2 6.0 5.9.
Cada medição contém dois dígitos significativos. A média aritmética deve ser escrita 5.92 e tem uma precisão maior que dois dígitos significativos.
Para ilustrar o uso de potências fracionárias em biologia, consideramos a forma de quadrúpedes (Fig. 1.3). \(l\) denota o comprimento de um quadrúpede medido do quadril ao ombro e \(h\) denota a largura que é a espessura média do corpo medida na direção vertical. Então o tronco é comparado com uma barra uniforme de comprimento \(l\) e largura \(h\) apoiada em suas extremidades. A gravidade causa encurvamento da barra. A física mostra que a razão é limitada por algum valor. Se a proporção exceder esse valor, a barra cede.
\[ l/\sqrt[3]{h^2} \]
Embora o torso de um animal seja um sistema complicado que consiste em ossos, músculos e tendões e, portanto, bastante diferente de uma barra uniforme, a aplicação da razão \(l/\sqrt[3]{h^2}\) indica aproximadamente a limitação do comprimento dos quadrúpedes.
A maioria dos outros quadrúpedes tem uma proporção consideravelmente menor que 7. Desta forma, seus troncos são menos ameaçados pela gravidade. Animal com razão maior que 7 dificilmente poderia manter-se em suas patas. O tronco provavelmente tocaria o chão.
Alguns dos valores mais altos alcançados pelos quadrúpedes são:
Mamífero Quadrúpede | \(l\) cm | \(h\) cm | \(l/\sqrt[3]{h^2}\) |
---|---|---|---|
Arminho (Mustela erminea) | 12 | 4 | 4.8 |
Bassê | 35 | 12 | 6.7 |
Tigre indiano (Panthera tigres) | 90 | 45 | 7.1 |
Lhama (Lama glama) | 122 | 73 | 7.0 |
Elefante indiano (Elephas maximus) | 153 | 135 | 5.8 |
[1] 4.762203
Scilab 2023.1.0 (May 23 2023, 09:23:00)
ans =
4.7622032
2 * (a + b)
[1] 0
a + b
a + b
2 * (a + b)
[1] 0
a + b
exp(log(a + b))
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] 3.141593
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] 8
[1] TRUE
[1] TRUE
[1] 1
[1] 3
[1] 3.162278
[1] 1.249046
[1] 1-3i
[1] 3.141593
[1] 3
[1] 3
[1] 3.14
[1] 3.141593
[1] 3
[1] 3.1
[1] 3.14
[1] 3
[1] 4
[1] 3
[1] 3.14159265358979
[1] 3.141592653589793116
[1] 3.141593
[1] 3.14
chr "3.14"
[1] 3.14
[1] 3.14
num 3.14
[1] "3.14159265358979"
[1] 3.14159265358979
[1] "3.141593"
[1] "3.1415926535897931"
[1] "3.14e-01"
[1] " 6" "13"
[1] " 6.0" "13.1"
[1] "2.0000"
[1] "2.00"
[1] "2,1"
[1] " Running"
[1] " Running "
[1] "3.141593"
[1] "3.142"
[1] "3"
[1] " 3.1"
[1] "003.1"
[1] "+3.141593"
[1] " 3.141593"
[1] "3.141593 "
[1] "3.141593e+00"
[1] "3.141593E+00"
[1] "3.14159"
[1] "3.14159e+06"
[1] "3141592.65"
[1] "3.14159E-06"
[1] "3.141592653589793115997963468544185161590576171875000000"
# "3.141592653589793115997963468544185161590576171875000000"
sprintf(paste0("e with %2d digits = %.",
1:18, "g"),
1:18, exp(1))
[1] "e with 1 digits = 3"
[2] "e with 2 digits = 2.7"
[3] "e with 3 digits = 2.72"
[4] "e with 4 digits = 2.718"
[5] "e with 5 digits = 2.7183"
[6] "e with 6 digits = 2.71828"
[7] "e with 7 digits = 2.718282"
[8] "e with 8 digits = 2.7182818"
[9] "e with 9 digits = 2.71828183"
[10] "e with 10 digits = 2.718281828"
[11] "e with 11 digits = 2.7182818285"
[12] "e with 12 digits = 2.71828182846"
[13] "e with 13 digits = 2.718281828459"
[14] "e with 14 digits = 2.718281828459"
[15] "e with 15 digits = 2.71828182845905"
[16] "e with 16 digits = 2.718281828459045"
[17] "e with 17 digits = 2.7182818284590451"
[18] "e with 18 digits = 2.71828182845904509"
[1] " January" " February" " March" " April" " May" " June"
[7] " July" " August" "September" " October" " November" " December"
# [1] " January" " February" " March" " April"
# [5] " May" " June" " July" " August"
# [9] "September" " October" " November" " December"
xx <- pi * 10^(-5:4)
cbind(format(xx, digits = 4), formatC(xx))
[,1] [,2]
[1,] "3.142e-05" "3.142e-05"
[2,] "3.142e-04" "0.0003142"
[3,] "3.142e-03" "0.003142"
[4,] "3.142e-02" "0.03142"
[5,] "3.142e-01" "0.3142"
[6,] "3.142e+00" "3.142"
[7,] "3.142e+01" "31.42"
[8,] "3.142e+02" "314.2"
[9,] "3.142e+03" "3142"
[10,] "3.142e+04" "3.142e+04"
[,1]
[1,] "3.142e-05"
[2,] "0.0003142"
[3,] "0.003142 "
[4,] "0.03142 "
[5,] "0.3142 "
[6,] "3.142 "
[7,] "31.42 "
[8,] "314.2 "
[9,] "3142 "
[10,] "3.142e+04"
[,1]
[1,] "00.00003"
[2,] "00.00031"
[3,] "00.00314"
[4,] "00.03142"
[5,] "00.31416"
[6,] "03.14159"
[7,] "31.41593"
[8,] "314.15927"
[9,] "3141.59265"
[10,] "31415.92654"
[,1] [,2]
[1,] "3.142e-05" "0.00003142"
[2,] "3.142e-04" "0.0003142"
[3,] "3.142e-03" "0.003142"
[4,] "3.142e-02" "0.03142"
[5,] "3.142e-01" "0.3142"
[6,] "3.142e+00" "3.142"
[7,] "3.142e+01" "31.42"
[8,] "3.142e+02" "314.2"
[9,] "3.142e+03" " 3142"
[10,] "3.142e+04" "31416"
## individual formatting to common width:
fc <- formatC(1.234 + 10^(0:8), format = "fg",
width = 11, big.mark = ",")
cbind(fc)
fc
[1,] " 2.234"
[2,] " 11.23"
[3,] " 101.2"
[4,] " 1,001"
[5,] " 10,001"
[6,] " 100,001"
[7,] " 1,000,001"
[8,] " 10,000,001"
[9,] "100,000,001"
[1] "(w-1):xyz" "(w-1):NA" "(w-1):abc"
# crfsuite::txt_sprintf("(w-1):%s", c("xyz", NA, "abc"))
sprintf("(w-1):%s_%s", c("xyz", NA, "abc"), c(NA, "xyz", "abc"))
[1] "(w-1):xyz_NA" "(w-1):NA_xyz" "(w-1):abc_abc"
[1] 3
[1] 3
[1] 7
[1] TRUE
num 1
[1] TRUE
num 2
[1] 3
[1] TRUE
[1] TRUE
num [1:4] 10 0 2 3
[1] 41
[1] 41
[1] 41
[1] 34
[1] 39
[1] 39
[1] FALSE TRUE FALSE FALSE
[1] 1
[1] 2
[1] TRUE FALSE TRUE TRUE
[1] 3
[1] 1 3 4
[1] 3
num [1:3] 2 4 NA
[1] 2
[1] 1
[1] 0
[1] 0
[1] NA
[1] 6
[1] 6
[1] 6
[1] 3
num [1:3] 2 4 NA
[1] 1
[1] 0
[1] 0
[1] NA
[1] 6
[1] 4
num [1:4] 2 4 NA 1
[1] 1
[1] 0
[1] 0
[1] NA
[1] 7
[1] 5
num [1:5] 2 4 NA 1 Inf
[1] 1
[1] 0
[1] 1
[1] NA
[1] Inf
[1] 6
chr [1:6] "2" "4" NA "TRUE" "Inf" "a"
[1] 1
[1] 0
[1] 0
[1] 1
[1] Inf
List of 6
$ : num 2
$ : num 4
$ : logi NA
$ : NULL
$ : logi TRUE
$ : num Inf
[1] 6
[1] 1
# sum(is.nan(x)) # Error
# sum(is.infinite(x)) # Error
# sum(x) # Error
# sum(x, na.rm=TRUE) # Error
turner::sumlist(x, na.rm=TRUE)
[1] Inf
# Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
# Program to display the Fibonacci sequence up to n-th term using recursive functions
recursive_fibonacci <- function(n) {
if(n <= 1) {
return(n)
} else {
return(recursive_fibonacci(n-1) + recursive_fibonacci(n-2))
}
}
k <- 8
fs <- NULL
for(i in 0:k){
fs <- c(fs,recursive_fibonacci(i))
}
print(fs)
[1] 0 1 1 2 3 5 8 13 21
[1] TRUE
[1] TRUE FALSE TRUE TRUE
[1] 3
[1] 1 3 4
[1] 4
[1] 0.75
[1] 5.33
[1] 4
w <- c(1, 2)
x <- c(7, 9)
xw <- weighted.mean(x, w) # (1*7 + 2*9)/3
xa <- mean(x) # (7 + 9)/2
x <- c(1:9, 20)
x # 1 2 3 4 5 6 7 8 9 20
[1] 1 2 3 4 5 6 7 8 9 20
[1] 6.5
[1] 6.5
[1] 5.5
[1] 5.5
count <- function(x,n){length((which(x==n)))}
perc <- function(x,n){
format(round(100*length((which(x==n)))/length(x),2),2)
}
x <- c(7, 2, 4, 3, -1, -2, 3, 3, 6, 8, 12, 7, 3)
sort(x)
[1] -2 -1 2 3 3 3 3 4 6 7 7 8 12
[1] 13
[1] 4
[1] 30.8
[1] 3.5
[1] 3.46
[1] 3.46
[1] 3.43
[1] 3.43
x <- 2
y <- 3
p <- x*y # 6
x <- 2
y <- c(3, 4)
p <- x*y # 6 8
x <- c(2, 5)
y <- c(3, 4)
p <- x*y # 6 20
x <- c(2, 5)
p <- x**2 # 4 25
p <- x^2 # 4 25
p <- x^0.5 # 1.41 2.24
x <- 2
y <- 10
'+'(x,y)
[1] 12
[1] 20
[1] 1024
[1] 6
[1] NA
[1] 6
# Recursive function to find factorial
recursive.factorial <- function(x) {
if (x == 0) return (1)
else return (x*recursive.factorial(x-1))
}
recursive.factorial(0) # 1
[1] 1
[1] 6
[1] 3628800
[,1]
[1,] 20
[1] 20
# 1*2 + 2*3 + 3*4 = 20
# [1] 20
# h = sqrt(a^2 + b^2)
c <- c(3, 4)
cd <- sum(c^2, na.rm=TRUE)
cs <- crossprod(c) # 3^2 + 4^2 = 25
identical(cd, cs) # FALSE
[1] FALSE
[1] TRUE
1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 2 4 6 8 10 12 14 16 18
3 3 6 9 12 15 18 21 24 27
4 4 8 12 16 20 24 28 32 36
5 5 10 15 20 25 30 35 40 45
6 6 12 18 24 30 36 42 48 54
7 7 14 21 28 35 42 49 56 63
8 8 16 24 32 40 48 56 64 72
9 9 18 27 36 45 54 63 72 81
1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
2 2 4 6 8 10 12 14 16 18
3 3 6 9 12 15 18 21 24 27
4 4 8 12 16 20 24 28 32 36
5 5 10 15 20 25 30 35 40 45
6 6 12 18 24 30 36 42 48 54
7 7 14 21 28 35 42 49 56 63
8 8 16 24 32 40 48 56 64 72
9 9 18 27 36 45 54 63 72 81
1 2 3 4 5 6 7 8 9
2: 2 4 8 16 32 64 128 256 5.12e+02
3: 3 9 27 81 243 729 2187 6561 1.97e+04
4: 4 16 64 256 1024 4096 16384 65536 2.62e+05
5: 5 25 125 625 3125 15625 78125 390625 1.95e+06
6: 6 36 216 1296 7776 46656 279936 1679616 1.01e+07
7: 7 49 343 2401 16807 117649 823543 5764801 4.04e+07
8: 8 64 512 4096 32768 262144 2097152 16777216 1.34e+08
[1] 3 6 9 12 15 18 21 24 27 30