Open main menu

Changes

no edit summary
Agora, seguimos para um exemplo mais complexo, no qual o leitor pode confirmar a corretude da simplificação, construindo uma tabela verdade.
 
[[File:imagem4.png]]
O próximo exemplo ilustra a simplificação do Modus Ponens. Primeiro afirmamos que p implica q e p é verdadeiro.
 
[[File:imagem5.png]]
Então simplificamos a expressão booleana,
 
[[File:imagem6.png]]
Agora mostramos como usar o maple para compreender algumas provas construtivas. Especificamente, vamos examinar como explorar a construção de uma lista sequencial de números compostos.
 
[[File:imagem8.png]]
Enquanto o maple pode ser usado para gerar uma lista de n inteiros compostos consecutivos, gerados por prova, não é possível derivar a prova em si usando o maple. Devemos observar que este argumento não fornece o menor conjunto de n inteiros compostos consecutivos. Embora dado um inteiro positivo n, é possível usar o maple para encontrar a menor sequencia de n inteiros compostos consecutivos.
Através do maple abordaremos a prova não construtiva da existência de um número infinito de números primos. Por ser uma prova não construtiva, não podemos simplesmente criar um algoritmo para gerar um número primo maior, assumindo a existência de um número primo máximo. Embora a ideia chave da prova seja considerar a primalidade do inteiro $N! +1$, é possível que $N!+1$ seja por si só um número primo, porém mesmo que não seja seu maior fator primo deve ser maior que n. É possível encontrar o menor fator primo fatorando $N!+1$ diretamente, usando a rotina '''ifactor''' da biblioteca maple.
 
[[File:imagem9.png]]
Podemos observar pelo resultado que, enquanto alguns desses números são primos, outros não são, a partir disso, podemos fazer a leitura do menor fator primo.
Para determinar o menor fator primo de cada um desses inteiros, podemos escrever a seguinte rotina:
 
[[File:imagem10.png]]
Ela usa o procedimento {\bf factorset} do pacote {\bf numtheory} para computar o conjunto de fatores do inteiro de entrada, e então simplesmente seleciona seu menor membro.
 
[[File:imagem11.png]]
Podemos usar o procedimento '''subs''' para verificar o passo base da indução; neste caso o passo base é $n=1$
 
[[File:imagem22.png]]
Para somar k+1 termos, computamos:
 
[[File:imagem.png]]
Por fim, a fórmula para n=k+1 é:
 
[[File:imagem24.png]]
==Definições Recursiva e Interativa==
As funções do maple podem ser definidas tanto processualmente (usando a função proc) como explicitamente (usando a notação $->$), cada um desses métodos envolve meios interativos e recursivos de definição. Iniciamos nosso estudo, usando a função $->$ do maple. Se nós quiséssemos definir uma função polinomial $A(n)= 3n^3 + 41n^2- 3n + 101$ nós usaríamos o seguinte comando:
 
[[File:imagem30.png]]
Enquanto a notação “->” para funções é conveniente e intuitiva, ela não oferece todas as facilidades para melhoria da eficiência que estão disponíveis no uso do comando {\bf proc}. Para forçar o maple a calcular esses valores de forma eficiente, usamos a opção {\bf remember} para definições de procedimentos afetados pelo uso do {\bf proc}. Esta opção exige que o maple lembre de qualquer valor para procedimento que já tenha sido computado através do armazenamento destes em uma tabela Fibonacci.
 
[[File:imagem34.png]]
1 - Quantos pares de números primos podem ser encontrados?
Para determinar quantos pares de números primos existem, usaremos o pacote “numtheory” do maple, que contém as funções '''nextprime''', '''prevprime''' e '''ithprime'''
 
[[File:imagem41.png]]