Este documento discute o uso de módulos Python para computação científica, como Numpy e Scipy. Numpy permite trabalhar com vetores e matrizes multidimensionais, enquanto Scipy fornece rotinas numéricas e de matemática avançada para integração, otimização e processamento de sinais. Exemplos demonstram como realizar cálculos estatísticos e gerar gráficos com esses módulos.
O documento discute as bibliotecas NumPy e SciPy para computação científica em Python. NumPy fornece vetores e matrizes multidimensionais, enquanto SciPy contém ferramentas para álgebra linear, estatística, clusterização e outras aplicações científicas. Exemplos demonstram como gerar e manipular arrays com NumPy e utilizar funções de clusterização no SciPy.
Numpy é uma biblioteca fundamental do Python para computação científica.
Fornece funcionalidades relacionadas com arrays
Tem nível mais elevado de desempenho
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
O documento apresenta uma introdução ao workshop de Python realizado na IEEE Week '17. Apresenta brevemente conceitos fundamentais da linguagem como variáveis, funções, listas, dicionários e operações com strings. Explica também como ler e processar dados de ficheiros e da internet usando bibliotecas como urllib e json.
Apresentação trilha python do The Developers Conference 2016 em Florianópolis.
Uma introdução à biblioteca Numba (http://numba.pydata.org/) mostrando os prós e contras da biblioteca.
O documento resume três pontos principais sobre o Numba: (1) Ele fornece um compilador JIT para Python que equilibra produtividade e desempenho; (2) Permite compilar funções para execução em CPU ou GPU de forma paralela; (3) Testes mostraram que o Numba pode acelerar código em até 200 vezes em relação a Python puro.
O documento descreve a inteligência de enxames e o algoritmo de otimização ABC (Artificial Bee Colony), inspirado no comportamento das abelhas. O ABC simula uma colônia artificial de abelhas e usa estratégias como exploração aleatória de fontes de alimento e compartilhamento de informações para iterativamente melhorar soluções a problemas de otimização. O algoritmo consiste em fases de abelhas empregadas, observadoras e exploradoras para modelar a comunicação e cooperação entre abelhas.
1. O documento discute vetores (arrays unidimensionais) e multidimensionais em Java, incluindo sua declaração, definição e manipulação.
2. Apresenta exemplos de uso de vetores de tipos primitivos e de referências a objetos, incluindo arrays irregulares.
3. Discutem conceitos como length, índices de vetor e exceções de array index out of bounds.
O documento discute coleções em Java, abordando tópicos como vetores, listas, conjuntos, mapas, iteradores e classes relacionadas. É apresentada a interface Collection e suas subclasses principais (List e Set), com exemplos de implementações como ArrayList, LinkedList, HashSet e HashMap.
O documento discute as bibliotecas NumPy e SciPy para computação científica em Python. NumPy fornece vetores e matrizes multidimensionais, enquanto SciPy contém ferramentas para álgebra linear, estatística, clusterização e outras aplicações científicas. Exemplos demonstram como gerar e manipular arrays com NumPy e utilizar funções de clusterização no SciPy.
Numpy é uma biblioteca fundamental do Python para computação científica.
Fornece funcionalidades relacionadas com arrays
Tem nível mais elevado de desempenho
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
O documento apresenta uma introdução ao workshop de Python realizado na IEEE Week '17. Apresenta brevemente conceitos fundamentais da linguagem como variáveis, funções, listas, dicionários e operações com strings. Explica também como ler e processar dados de ficheiros e da internet usando bibliotecas como urllib e json.
Apresentação trilha python do The Developers Conference 2016 em Florianópolis.
Uma introdução à biblioteca Numba (http://numba.pydata.org/) mostrando os prós e contras da biblioteca.
O documento resume três pontos principais sobre o Numba: (1) Ele fornece um compilador JIT para Python que equilibra produtividade e desempenho; (2) Permite compilar funções para execução em CPU ou GPU de forma paralela; (3) Testes mostraram que o Numba pode acelerar código em até 200 vezes em relação a Python puro.
O documento descreve a inteligência de enxames e o algoritmo de otimização ABC (Artificial Bee Colony), inspirado no comportamento das abelhas. O ABC simula uma colônia artificial de abelhas e usa estratégias como exploração aleatória de fontes de alimento e compartilhamento de informações para iterativamente melhorar soluções a problemas de otimização. O algoritmo consiste em fases de abelhas empregadas, observadoras e exploradoras para modelar a comunicação e cooperação entre abelhas.
1. O documento discute vetores (arrays unidimensionais) e multidimensionais em Java, incluindo sua declaração, definição e manipulação.
2. Apresenta exemplos de uso de vetores de tipos primitivos e de referências a objetos, incluindo arrays irregulares.
3. Discutem conceitos como length, índices de vetor e exceções de array index out of bounds.
O documento discute coleções em Java, abordando tópicos como vetores, listas, conjuntos, mapas, iteradores e classes relacionadas. É apresentada a interface Collection e suas subclasses principais (List e Set), com exemplos de implementações como ArrayList, LinkedList, HashSet e HashMap.
1. Introdução a estruturas de dados, incluindo Tipos de Dados Abstractos (TDA), ponteiros, funções e estruturas definidas pelo programador.
2. Listas lineares como listas sequenciais, ligadas, circulares e duplamente ligadas e implementações de pilhas e filas.
3. Árvores, incluindo representação, terminologia e tipos como binárias e balanceadas.
4. Ordenação com métodos como seleção, inserção, shellsort e quicksort.
5. Pesquisa com métodos sequencial, binária e em
1 - Apresenta GANs como modelos gerativos baseados em redes neurais que treinam um gerador e um discriminador de forma adversária para gerar novos dados semelhantes aos reais.
2 - Explica que o gerador gera amostras e o discriminador identifica se as amostras são reais ou geradas, com o treinamento buscando enganar um ao outro de forma adversária.
3 - Demonstra uma implementação básica de GAN com PyTorch, apresentando o conjunto de dados, redes neural do gerador e discriminador, função custo, ot
Este documento apresenta um curso de MATLAB Avançado e Simulink dividido em duas partes. A primeira parte aborda conceitos básicos de MATLAB, criação e manipulação de matrizes, gráficos e processamento de imagens. A segunda parte tratará de variáveis simbólicas, programas em interface gráfica e Simulink.
O documento apresenta os conceitos e implementação de pilhas como estrutura de dados. Aborda o funcionamento básico de pilhas com LIFO, exemplos de aplicações, implementação com vetor e lista encadeada em Java. Inclui exercícios sobre criação de pilha para armazenar contatos e conversão de notações matemáticas usando pilhas.
O documento discute matrizes, definindo-as como uma coleção de variáveis do mesmo tipo armazenadas de forma contígua na memória e acessadas através de índices. Detalha como declarar e acessar elementos de matrizes unidimensionais e multidimensionais, incluindo como preencher, copiar e mostrar os dados de uma matriz.
Este documento apresenta um exemplo sobre tanques acoplados e fornece as equações que descrevem o fluxo entre os tanques. É mostrado como linearizar as equações para definir a função de transferência e como calcular a variação no nível do tanque 2 quando o nível do tanque 1 é alterado linearmente. O documento também apresenta os principais objetos e propriedades para desenvolvimento de interfaces gráficas no MATLAB.
O documento discute conceitos fundamentais de programação orientada a objetos como herança, polimorfismo e sobrecarga. A herança permite que classes compartilhem propriedades e métodos de classes ancestrais, enquanto o polimorfismo possibilita tratar objetos de subclasses de forma genérica através de suas classes ancestrais. A sobrecarga permite métodos com mesmo nome mas parâmetros diferentes.
1) O documento descreve um curso sobre o programa R para aplicações em melhoramento de plantas. 2) O curso aborda tópicos como instalação do R, entrada e análise de dados, estatística descritiva, testes de hipóteses e análises de regressão. 3) O objetivo é servir como introdução ao uso do R e suas ferramentas estatísticas para análises em melhoramento de plantas.
[1] O documento discute métodos numéricos para aproximar o valor de integrais definidas, como o Método dos Trapézios e o Método de Simpson. [2] Estes métodos aproximam a função f por uma função mais simples p cuja primitiva é mais fácil de calcular. [3] O Método dos Trapézios aproxima a área sob a curva f(x) pela soma das áreas de trapézios formados pelos pontos da função em intervalos igualmente espaçados entre o limite inferior e superior da integral.
O documento descreve a origem e usos da linguagem de programação Lua, destacando sua rapidez, portabilidade e capacidade de ser embutida em outros sistemas. Lua foi criada no Tecgraf da PUC-Rio e é amplamente usada em jogos, sistemas embarcados e como linguagem de extensão. Sua sintaxe simples e tipagem dinâmica tornam a linguagem flexível e fácil de aprender.
Tutorial aed iii 009 - algoritmo de ordenação heapsortFlávio Freitas
Este documento discute o algoritmo de ordenação heapsort, abordando situações especiais como ordenação por índices ou ponteiros em vez de mover os objetos, e fornece três exercícios resolvidos como exemplos.
Tutorial aed iii 007 - algoritmo de ordenação heapsortFlávio Freitas
Este documento apresenta o algoritmo de ordenação heapsort em 3 partes. A primeira parte introduz o algoritmo heapsort e explica como ele funciona usando uma estrutura de dados chamada heap. A segunda parte descreve a função chave "peneira" que mantém a propriedade de heap. A terceira parte integra a função peneira ao algoritmo heapsort para ordenar um vetor.
1) O documento discute o uso dos softwares GeoGebra e Winplot no ensino de cálculo diferencial e integral, descrevendo suas interfaces e ferramentas.
2) Inclui exemplos de como calcular a inclinação da reta tangente em um ponto de uma curva e derivar funções usando o GeoGebra.
3) Também apresenta conceitos-chave de cálculo como função, limite, derivada e integral que podem ser trabalhados com os softwares.
Tutorial aed iii 008 - algoritmo de ordenação heapsortFlávio Freitas
Este documento resume parte 2 de 3 sobre o algoritmo de ordenação heapsort. Explica como refazer o heap, construir o heap inicialmente e o algoritmo heapsort propriamente dito, além de analisar sua complexidade de tempo no pior, melhor e caso médio.
Este documento apresenta um curso básico de MATLAB, abordando conceitos como tipos de variáveis, criação e manipulação de matrizes, operações básicas, criação e manipulação de gráficos, funções, equações diferenciais, loops e condicionais. O curso inclui exemplos de código e exercícios para fixar os conceitos apresentados.
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: ...Tiago Oliveira Weber
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: "Curso de GNU Octave / Matlab e Aplicações para Engenheiros"). This material was initially presented at the II Computer Engineering Academic Week in March 2018 at UFSC - Campus Araranguá - Presentation in Portuguese.
Slide completo sobre a Linguagem de Programação Lua.
Conteúdo:
- Definição.
- Mercado.
- Quem a utiliza.
- Características.
- Sintaxe da Linguagem.
- Códigos de Exemplos.
1) O documento descreve como usar o programa Winplot para criar gráficos 2D e 3D, incluindo como instalá-lo e suas principais funções. 2) Ele fornece detalhes sobre como criar diferentes tipos de gráficos 2D como explícitas, paramétricas e polares, além de explicar as operações e funções matemáticas suportadas. 3) O documento também aborda a criação de gráficos 3D e os recursos adicionais do Winplot.
O documento discute conceitos de programação como variáveis dinâmicas, abstração e recursividade. Ele introduz tópicos como sistemas analógicos versus digitais, computadores, software, linguagens de programação e compiladores. Também explica variáveis dinâmicas versus estáticas, alocação dinâmica de memória, estruturas de dados dinâmicas e ponteiros. Por fim, aborda abstração, tipos abstratos de dados, interfaces, classes e métodos abstratos.
Aulas de estrutura de dados por Ayrton YagamiAyrton Yagami
Este documento resume vários conceitos e implementações relacionadas a árvores e ordenação de dados, incluindo bubble sort, insertion sort, selection sort, recursividade, árvores binárias e AVL em Java. Há explicações teóricas e exemplos de código para cada tópico.
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
O documento descreve a biblioteca SciPy, que fornece funções para computação científica em Python. SciPy utiliza as extensões NumPy e Matplotlib e permite realizar tarefas como matemática avançada, processamento de sinais, otimização e estatística. O documento também apresenta exemplos de uso de SciPy para processamento de imagens e simulação de sistemas lineares invariantes no tempo.
Este documento apresenta um tutorial introdutório sobre o software SciLab, focando em:
1) Conceitos básicos como operações numéricas, variáveis, vetores e matrizes;
2) Comandos básicos como who, whos, pwd e ls;
3) Sintaxe para criação e manipulação de vetores e matrizes numéricas.
1. Introdução a estruturas de dados, incluindo Tipos de Dados Abstractos (TDA), ponteiros, funções e estruturas definidas pelo programador.
2. Listas lineares como listas sequenciais, ligadas, circulares e duplamente ligadas e implementações de pilhas e filas.
3. Árvores, incluindo representação, terminologia e tipos como binárias e balanceadas.
4. Ordenação com métodos como seleção, inserção, shellsort e quicksort.
5. Pesquisa com métodos sequencial, binária e em
1 - Apresenta GANs como modelos gerativos baseados em redes neurais que treinam um gerador e um discriminador de forma adversária para gerar novos dados semelhantes aos reais.
2 - Explica que o gerador gera amostras e o discriminador identifica se as amostras são reais ou geradas, com o treinamento buscando enganar um ao outro de forma adversária.
3 - Demonstra uma implementação básica de GAN com PyTorch, apresentando o conjunto de dados, redes neural do gerador e discriminador, função custo, ot
Este documento apresenta um curso de MATLAB Avançado e Simulink dividido em duas partes. A primeira parte aborda conceitos básicos de MATLAB, criação e manipulação de matrizes, gráficos e processamento de imagens. A segunda parte tratará de variáveis simbólicas, programas em interface gráfica e Simulink.
O documento apresenta os conceitos e implementação de pilhas como estrutura de dados. Aborda o funcionamento básico de pilhas com LIFO, exemplos de aplicações, implementação com vetor e lista encadeada em Java. Inclui exercícios sobre criação de pilha para armazenar contatos e conversão de notações matemáticas usando pilhas.
O documento discute matrizes, definindo-as como uma coleção de variáveis do mesmo tipo armazenadas de forma contígua na memória e acessadas através de índices. Detalha como declarar e acessar elementos de matrizes unidimensionais e multidimensionais, incluindo como preencher, copiar e mostrar os dados de uma matriz.
Este documento apresenta um exemplo sobre tanques acoplados e fornece as equações que descrevem o fluxo entre os tanques. É mostrado como linearizar as equações para definir a função de transferência e como calcular a variação no nível do tanque 2 quando o nível do tanque 1 é alterado linearmente. O documento também apresenta os principais objetos e propriedades para desenvolvimento de interfaces gráficas no MATLAB.
O documento discute conceitos fundamentais de programação orientada a objetos como herança, polimorfismo e sobrecarga. A herança permite que classes compartilhem propriedades e métodos de classes ancestrais, enquanto o polimorfismo possibilita tratar objetos de subclasses de forma genérica através de suas classes ancestrais. A sobrecarga permite métodos com mesmo nome mas parâmetros diferentes.
1) O documento descreve um curso sobre o programa R para aplicações em melhoramento de plantas. 2) O curso aborda tópicos como instalação do R, entrada e análise de dados, estatística descritiva, testes de hipóteses e análises de regressão. 3) O objetivo é servir como introdução ao uso do R e suas ferramentas estatísticas para análises em melhoramento de plantas.
[1] O documento discute métodos numéricos para aproximar o valor de integrais definidas, como o Método dos Trapézios e o Método de Simpson. [2] Estes métodos aproximam a função f por uma função mais simples p cuja primitiva é mais fácil de calcular. [3] O Método dos Trapézios aproxima a área sob a curva f(x) pela soma das áreas de trapézios formados pelos pontos da função em intervalos igualmente espaçados entre o limite inferior e superior da integral.
O documento descreve a origem e usos da linguagem de programação Lua, destacando sua rapidez, portabilidade e capacidade de ser embutida em outros sistemas. Lua foi criada no Tecgraf da PUC-Rio e é amplamente usada em jogos, sistemas embarcados e como linguagem de extensão. Sua sintaxe simples e tipagem dinâmica tornam a linguagem flexível e fácil de aprender.
Tutorial aed iii 009 - algoritmo de ordenação heapsortFlávio Freitas
Este documento discute o algoritmo de ordenação heapsort, abordando situações especiais como ordenação por índices ou ponteiros em vez de mover os objetos, e fornece três exercícios resolvidos como exemplos.
Tutorial aed iii 007 - algoritmo de ordenação heapsortFlávio Freitas
Este documento apresenta o algoritmo de ordenação heapsort em 3 partes. A primeira parte introduz o algoritmo heapsort e explica como ele funciona usando uma estrutura de dados chamada heap. A segunda parte descreve a função chave "peneira" que mantém a propriedade de heap. A terceira parte integra a função peneira ao algoritmo heapsort para ordenar um vetor.
1) O documento discute o uso dos softwares GeoGebra e Winplot no ensino de cálculo diferencial e integral, descrevendo suas interfaces e ferramentas.
2) Inclui exemplos de como calcular a inclinação da reta tangente em um ponto de uma curva e derivar funções usando o GeoGebra.
3) Também apresenta conceitos-chave de cálculo como função, limite, derivada e integral que podem ser trabalhados com os softwares.
Tutorial aed iii 008 - algoritmo de ordenação heapsortFlávio Freitas
Este documento resume parte 2 de 3 sobre o algoritmo de ordenação heapsort. Explica como refazer o heap, construir o heap inicialmente e o algoritmo heapsort propriamente dito, além de analisar sua complexidade de tempo no pior, melhor e caso médio.
Este documento apresenta um curso básico de MATLAB, abordando conceitos como tipos de variáveis, criação e manipulação de matrizes, operações básicas, criação e manipulação de gráficos, funções, equações diferenciais, loops e condicionais. O curso inclui exemplos de código e exercícios para fixar os conceitos apresentados.
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: ...Tiago Oliveira Weber
Course in GNU Octave / Matlab and Applications for Engineers (in Portuguese: "Curso de GNU Octave / Matlab e Aplicações para Engenheiros"). This material was initially presented at the II Computer Engineering Academic Week in March 2018 at UFSC - Campus Araranguá - Presentation in Portuguese.
Slide completo sobre a Linguagem de Programação Lua.
Conteúdo:
- Definição.
- Mercado.
- Quem a utiliza.
- Características.
- Sintaxe da Linguagem.
- Códigos de Exemplos.
1) O documento descreve como usar o programa Winplot para criar gráficos 2D e 3D, incluindo como instalá-lo e suas principais funções. 2) Ele fornece detalhes sobre como criar diferentes tipos de gráficos 2D como explícitas, paramétricas e polares, além de explicar as operações e funções matemáticas suportadas. 3) O documento também aborda a criação de gráficos 3D e os recursos adicionais do Winplot.
O documento discute conceitos de programação como variáveis dinâmicas, abstração e recursividade. Ele introduz tópicos como sistemas analógicos versus digitais, computadores, software, linguagens de programação e compiladores. Também explica variáveis dinâmicas versus estáticas, alocação dinâmica de memória, estruturas de dados dinâmicas e ponteiros. Por fim, aborda abstração, tipos abstratos de dados, interfaces, classes e métodos abstratos.
Aulas de estrutura de dados por Ayrton YagamiAyrton Yagami
Este documento resume vários conceitos e implementações relacionadas a árvores e ordenação de dados, incluindo bubble sort, insertion sort, selection sort, recursividade, árvores binárias e AVL em Java. Há explicações teóricas e exemplos de código para cada tópico.
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
O documento descreve a biblioteca SciPy, que fornece funções para computação científica em Python. SciPy utiliza as extensões NumPy e Matplotlib e permite realizar tarefas como matemática avançada, processamento de sinais, otimização e estatística. O documento também apresenta exemplos de uso de SciPy para processamento de imagens e simulação de sistemas lineares invariantes no tempo.
Este documento apresenta um tutorial introdutório sobre o software SciLab, focando em:
1) Conceitos básicos como operações numéricas, variáveis, vetores e matrizes;
2) Comandos básicos como who, whos, pwd e ls;
3) Sintaxe para criação e manipulação de vetores e matrizes numéricas.
1) O R é um programa estatístico de código aberto que permite análise de dados através de pacotes. 2) Os usuários podem criar e compartilhar pacotes e funções no site do R. 3) O R usa objetos como vetores, matrizes e data frames para armazenar e manipular dados.
Cartilha de Octave para Matematica Computacional.pdfEdkallenn Lima
Este documento apresenta uma introdução ao software livre GNU Octave, que possui funcionalidades similares ao Matlab para computação científica e numérica. O documento descreve como instalar e usar o Octave, incluindo operações matemáticas básicas, vetores, matrizes, strings e estruturas de dados.
1) O documento apresenta um minicurso de introdução à linguagem de programação Python, abordando tópicos como história, tipos de dados, estruturas de controle, funções, orientação a objetos.
2) São apresentados os principais tipos de dados em Python como números, strings, listas, tuplas e dicionários, assim como estruturas de controle como if/else, for e while.
3) O documento também introduz conceitos como classes, métodos, herança e exceções no paradigma de programação orientada a objetos em Python.
Programando para web com python - Introdução a PythonAlvaro Oliveira
O documento apresenta uma palestra sobre a linguagem de programação Python. Resume os principais pontos da seguinte forma:
1) Apresenta breve histórico da linguagem Python, criada em 1990 por Guido van Rossum com foco em usuários como físicos e engenheiros.
2) Discutem as principais características da linguagem como interpretação, tipagem dinâmica, controle de fluxo por indentação, orientação a objetos e biblioteca padrão rica.
3) Explicam porque Python é uma boa opção para
O documento descreve uma série de aulas sobre lógica de programação. A primeira aula apresenta introduções e jogos lógicos. A segunda aula define algoritmos e apresenta exemplos. As aulas subsequentes discutem estruturas de algoritmos, variáveis, operadores, estruturas de decisão e repetição.
O documento resume os principais tópicos de uma aula sobre Matlab, incluindo o que é Matlab, suas janelas, variáveis, operadores, estruturas de controle de fluxo e funções.
Introdução a Python resume os principais pontos sobre a linguagem Python, incluindo sua criação, tipagem dinâmica, uso em diferentes áreas e bibliotecas, conceitos básicos como variáveis e tipos de dados, estruturas de repetição e condicionais, manipulação de strings e arquivos.
O documento discute registros e arrays no Pascal, definindo-os como estruturas de dados para armazenar coleções de dados similares. Registros armazenam variáveis sequencialmente na memória, permitindo acesso aos campos por índice. Arrays podem ter múltiplas dimensões e são úteis para repetições. O comando With no Pascal simplifica o acesso aos campos dos registros.
Este documento fornece uma introdução aos principais recursos e funcionalidades do programa MATLAB, incluindo: (1) MATLAB como um ambiente de computação técnico-científica para desenvolvimento de sistemas sofisticados, (2) suas principais ferramentas como janelas, manipulação de matrizes e gráficos, e (3) exemplos básicos de uso de funções matemáticas e manipulação de vetores e matrizes.
O documento descreve um curso básico de MATLAB ministrado por Carlos Alberto Alves Varella e Keilla Boehler na Universidade Federal Rural do Rio de Janeiro. O curso apresenta os principais recursos e ferramentas do MATLAB, incluindo janelas, manipulação de matrizes e vetores, funções matemáticas, gráficos e plotagens.
O documento apresenta uma introdução ao Python, descrevendo suas principais características como linguagem de programação de alto nível, interpretada e multiplataforma. Apresenta exemplos de uso, tipos de dados, estruturas como listas e dicionários, e ferramentas como IDEs. Por fim, sugere exercícios e referências para aprofundamento no tema.
Oficina: construção de modelos descritivos e preditivos utilizando RFabrício Barth
- O documento apresenta uma oficina sobre construção de modelos descritivos e preditivos utilizando a linguagem R.
- Serão abordados conceitos de aprendizagem de máquina, análise de mensagens do Twitter usando agrupamento e desenvolvimento de algoritmos anti-spam.
- O objetivo é apresentar exemplos práticos de construção de modelos utilizando a linguagem R.
Empresa: PUC-RIO
Tema: Estudo de Caso - Cálculos Estruturais
Resumo: Desenvolvendo um software para cálculos estruturais em MATLAB. Experiências na PUC-RIO no desenvolvimento de Software Educacional em MATALB.
Eu investi algum tempo fazendo um material de apoio para o livro Python para Desenvolvedores</a>, do Luis Eduardo Borges. É um conjunto de slides para o capitulo I.
Este documento apresenta um mini-curso de MATLAB com os seguintes tópicos: 1) Introdução ao MATLAB, 2) Matlab Básico, 3) Programação em Matlab, 4) Matemática Simbólica, 5) Interfaces gráficas e Toolbox, 6) Simulink. O documento inclui referências bibliográficas e informações sobre os professores.
O documento apresenta uma introdução às principais estruturas de dados em Python, incluindo listas, tuplas, dicionários, pilhas, filas e árvores. Explica os conceitos básicos por trás de cada estrutura de dados e como implementá-las usando Python.
O documento apresenta os objetivos e conteúdos de uma disciplina de Algoritmos e Estrutura de Dados II. Os tópicos incluem listas lineares, pilhas, filas, classificação de dados e listas ligadas, com foco em definir formalmente estruturas de dados e selecioná-las para aplicações.
O documento apresenta os objetivos e conteúdos de uma disciplina sobre algoritmos e estruturas de dados. Os tópicos incluem listas lineares, pilhas, filas, classificação de dados, recursividade e tipos abstratos de dados.
1. Computação Científica com Numpy e Scipy
Silas Santiago Lopes Pereira1
1
Departamento de Estatística e Computação – Universidade Estadual do Ceará (UECE)
Av. Paranjana, 1700 – 60740903 – Fortaleza, CE – Brasil
silas@larces.uece.br
Abstract. This paper goal to show some modules of Python Programming
language.
Resumo. Este artigo tem o objetivo de apresentar alguns módulos da
linguagem de programação Python que dispõem de um amplo conjunto de
recursos para facilitar o desenvolvimento de aplicações científicas. São
apresentadas as extensões Numpy e Scipy, entre outras, as quais fornecem
diversas funcionalidades para trabalhar com valores numéricos e rotinas com
matemática avançada.
1. Introdução
Numpy (Numeric Python) é um módulo da linguagem Python que permite trabalhar com
vetores e matrizes multidimensionais. Este módulo define os tipos matriz array
numérico e também operações básicas sobre estes. Possui diversas ferramentas
sofisticadas, tais como funções de álgebra Linear básicas, transformação de Fourier,
geração sofisticada de números aleatórios e ferramentas para integração com código
Fortran/C/C++.
SciPy (pronuncia-se “Sigh Pie”) é um software open-source para matemática,
ciência e engenharia desenvolvido por Eric Jones, Travis Oliphant,Pearu Peterson e
outros. É também o nome de uma conferência muito popular sobre programação
científica com Python, que é patrocinada pela Enthought e outras. Tal biblioteca é
projetada para trabalhar juntamente com o módulo Numpy, e provê diversas rotinas
numéricas eficientes e de fácil entendimento tais como rotinas para integração numérica
e otimização. Scipy é open source e patrocinado por Enthought
(http://www.enthought.com). Eric Jones e Travis Oliphant foram dois dos autores
originais do SciPy, o qual é agora mantido por uma próspera comunidade de usuários e
desenvolvedores.
Figura 1. Eric Jones (á esquerda) e Travis Oliphant (á direita)
2. Scipy engloba uma coleção de algoritmos matemáticos e funções apropriadas,
embasada na extensão Numérica para Python. Tal módulo é capaz de tornar
significativamente poderosa uma sessão interativa do Python, fornecendo ao usuário
comandos de alto nível e classes para manipulação e visualização de dados. Em outras
palavras, uma sessão interativa com Scipy transforma-se em uma ambiente de
processamento de dados e prototipação de sistemas capaz de competir com outros
softwares matemáticos, tais como Matlab, IDL, Octave, R-Lab e Scilab. No entanto, o
grande poder de se usar o módulo Scipy no Python é ter-se uma linguagem de
programação poderosa e de rápida prototipação e também eficaz no desenvolvimento de
programas sofisticados e aplicações especializadas, como aplicações científicas. A
figura 1 ilustra o uso do Python no modo interativo com o módulo Scipy:
Figura 1. Scipy como Ambiente Científico
2. Instalação dos Módulos
Scipy está disponível para diferentes plataformas: Mac OS X, Linux, Windows e
Solaris. O procedimento de instalação dos pacotes é bastante simples: Os binários
podem ser baixados em http://new.scipy.org/download.html ou
apt-get install python-numpy
apt-get install python-scipy
3. Funcionalidades do Scipy
Scipy é organizado em subpacotes abrangendo diferentes domínios da computação
científica. Scipy provê diversos algoritmos para cálculo científico. Os módulos contidos
3. no Scipy podem ser utilizados para realizar diversos cálculos avançados. A título de
exemplificação, alguns módulos interessantes são:
Interpolate: Funções de Interpolação
Linalg: Rotinas para Álgebra Linear
Linsolve Resolução de sistemas de equações lineares
Optimize: Rotinas de Otimização
Signal: Rotinas para Processamento de sinais
Stats: funções Estatísticas, distribuições discretas e contínuas
Io: Entrada/saída de dados
Special: Definições de muitas funções matemáticas
Weave: Integração C/C++
4. Exemplo Introdutório
Para matar a curiosidade, vamos fazer um exemplo simples antes de falar sobre as
características e funcionalidades de cada módulo.
Considere que desejamos realizar um teste de correlação linear entre duas
variáveis. Um dos procedimentos usados em estatística para comparação de duas
amostras é o teste T-student. Veja como é simples com Scipy:
1. >>> from numpy import array
2. >>> from scipy import stats
3. >>> a = array([1,2,3,4,5]) # amostra a
4. >>> b = array([1,6,5,3,5]) # amostra b
5. >>> print stats.ttest_ind(a,b)
Saída: (-0.8770580193070292, 0.40602146154521057)
4. Comparação com Matlab
Python + NumPy + SciPy = Programming Power
Definição de Função em Matlab com muitas restrições
Programação com Matlab não orientada a objetos
NumPy/SciPy é gratuito mas ainda amplamente usado
Há muitos pacotes para geração de gráficos em Python tão bons quanto Matlab
5. Explorando o Numpy
5.1. Arrays
A principal vantagem do Numpy é a entidade Array (ndarrays – Vetores homogêneos
(arrays) n-dimensionais). Arrays são semelhantes a listas do Python, exceto que cada
elemento de um array deve ser do mesmo tipo, tipicamente um valor numérico como
4. float ou int. Arrays fazem operações sobre grande quantidade de dados mais rápido e
são geralmente muito mais eficientes que listas. Observe o exemplo a seguir:
1. >>> import numpy
2. >>> print numpy.array([1,2,3,4,5])
Saída: [1 2 3 4 5]
3. >>> print numpy.arange(0.,4.5,.5)
Saída: [ 0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. ]
5.2. Matrizes
Com Numpy, torna-se possível definir matrizes e efetuar várias operações sobre elas.
Uma matriz é um tipo específico de array bidimensional a qual possui um conjunto
operações relacionadas. Veja o seguinte exemplo:
1. >>> import numpy
2. >>> l = [[1,2,3],[4,5,6],[7,8,9]]
3. >>> m = numpy.matrix(l)
4. >>> m_t = m.transpose()
5. >>> r = numpy.matrix([[1, 2, 3]])
6. >>> n = r*m
5.3. Operações com Arrays e Matrizes
numpy.zeros((M,N)) Vetor MxN de zeros
numpy.ones((M,N)) Vetor MxN de ums
numpy.empty((M,N)) Vetor MxN vazio (qualquer valor)
numpy.zeros_like(m) Vetor de zeros com formato de m
numpy.ones_like(m) Vetor de ums com formato de m
numpy.empty_like(m) Vetor de vazio com formato de m
numpy.random.random((M,N)) Vetor com valores aleatórios
numpy.identity(N) Matriz Identidade, N x N
numpy.array([(1,2,3),(4,5,6)]) Especifica os valores da matriz
numpy.matrix([[1,2,3],[4,5,6]]) Especifica os valores da matriz
numpy.arange(0.,1.,.3) Vetor com Inicio I, fim F, passo P
numpy.linspace(0.1, 1, 10) Vetor com N valores de I à F
Tabela 1. Criação de Vetores
5. a.sum() Somatório dos items
a.min() Valor mínimo
a.max() Valor máximo
a.mean() Média aritmética
a.std() Desvio Padrão
a.var() Variância
a.median() Mediana
a.trace() Traço
a.size() N° de elementos
a.shape() Formato (dimensões)
a.transpose() Matriz transposta
a.copy() Retorna cópia
a.fill(valor) Preenche com valor
Tabela 1. Métodos de um vetor a (numpy.ndarray)
A-B, A+B, A*B, A/B,A**2 Operações elemento à elemento
numpy.dot(A,B) ou mat(A)*mat(B) Produto matricial
numpy.concatenate((A,B), axis=0) Concatena vetores
A[0] 1° elemento
A[i][j] ou A[i,j] (linha i, coluna j)
x[2:5] Subvetor [x[2],x[3],x[4]]
x[:5] Subvetor [x[0],...,x[4]]
x[2:] Subvetor [x[2],...x[N]]
x[numpy.where(x>7)] Elementos em x maiores que 7
Tabela 1. Operações entre vetores
6. 6. Explorando o Scipy
6.1. Estatísticas com Scipy
Scipy possui um vasto número de rotinas básicas de estatística. Todas as funções
estatísticas estão situadas no subpcote scipy.stats e uma lista completa das funções
disponíveis pode ser obtida usando-se info(stats).
6. Outros módulos interessantes
6.1. iPython
Shell melhorado para Python com diversos recursos para programação interativa,
incluindo também interação fácil com PyLab.
6.1. PyLab
O PyLab é um módulo da linguagem Python que possibilita a geração de gráficos de
duas dimensões de excelente qualidade, permitindo edição interativa, animações,
inúmeros tipos de gráficos diferentes, anotações em sintaxe Latex e salvamento das
imagens geradas em diversos formatos diferentes. A sintaxe de criação e manipulação
das imagens será familiar para quem já trabalhou com o software comercial Matlab, mas
provendo muito mais capacidades, além de uma interface baseada em objetos, para
quem conhece a técnica.
O PyLab permite trabalhar com diversos tipos de gráficos diferentes, entre eles:
gráficos de funções, múltiplos gráficos, histogramas, funções discretas, disco, barra, etc.
Fornece funções para a customização dos gráficos, podendo trabalhar com diversas
fontes diferentes, cores, tamanhos de página, e muito mais. Além disso, existem funções
para a manipulação e análise de imagens e sinais. Enfim, um módulo bastante útil para
visualização de resultados de problemas matemáticos com Python. A seguir, um simples
exemplo de utilização do PyLab:
7. Figura 1. Exemplo de uso do PyLab
7. Matplotlib
Matplotlib é uma biblioteca para Python de gráficos 2D que permite fazer figuras com
qualidade de publicação de uma forma simples. http://matplotlib.sourceforge.net.
7.1. matplotlib.pyplot
Matplotlib.pyplot é uma coleção de comandos de funções de estilo eu fazem o
matplotlib se comportar como MATLAB. Veja um exemplo muito simples:
Figura 1. Exemplo de uso do matplotlib