From 6798e113dae1dbab4f554b3c37e40c6c349035bd Mon Sep 17 00:00:00 2001 From: Abreu Date: Sat, 18 Sep 2021 12:48:53 -0300 Subject: [PATCH] Added current files --- .gitignore | 2 + .../Semana 01/Semana 01.md | 70 ++++ .../Semana 01/e2.md | 12 + .../Semana 01/nusp.c | 15 + .../Semana 01/nusp.md | 30 ++ .../Semana 02/e01.c | 19 ++ .../Semana 03/Semana 03.md | 101 ++++++ .../Semana 03/bubbleSort.c | 16 + .../Semana 03/selection_sort.c | 22 ++ .../Semana 03/sort.c | 90 +++++ .../Semana 04/Semana 04.md | 142 ++++++++ .../Semana 04/doubly_linked_list.c | 135 ++++++++ .../Semana 04/dynamicList.c | 99 ++++++ .../Semana 04/staticList.c | 98 ++++++ BxComp | 1 + Cálculo II/Atividade 1/Atividade 1.md | 69 ++++ .../Importantes tabelas de Cálculo.md | 56 ++++ ...ropriedades dos integrais e somatórios.md | 46 +++ Cálculo II/Atividade 2/Atividade 2.md | 124 +++++++ .../Imagens/2021-09-06-22-15-00-image.png | Bin 0 -> 36820 bytes Cálculo II/Atividade 3/Atividade 3.md | 102 ++++++ .../Imagens/2021-08-31-19-16-21-image.png | Bin 0 -> 5178 bytes .../Correção.md | 61 ++++ .../apostila-iaa | 1 + Matemática Discreta I/Argumentos.md | 67 ++++ ...69ea5b86b01fc8aeb895c8cb044b3f13f05215.png | Bin 0 -> 26886 bytes Matemática Discreta I/Lógica elementar.md | 310 ++++++++++++++++++ .../01 - Definição de Espaço Vetorial.md | 62 ++++ .../02 - Propriedades do Espaço Vetorial.md | 115 +++++++ ...3 - Definição de sub-espaço vetorial.md | 31 ++ .../04 - Dependência linear.md | 5 + 31 files changed, 1901 insertions(+) create mode 100644 .gitignore create mode 100644 Algoritmos e Estruturas de Dados I/Semana 01/Semana 01.md create mode 100644 Algoritmos e Estruturas de Dados I/Semana 01/e2.md create mode 100644 Algoritmos e Estruturas de Dados I/Semana 01/nusp.c create mode 100644 Algoritmos e Estruturas de Dados I/Semana 01/nusp.md create mode 100644 Algoritmos e Estruturas de Dados I/Semana 02/e01.c create mode 100644 Algoritmos e Estruturas de Dados I/Semana 03/Semana 03.md create mode 100644 Algoritmos e Estruturas de Dados I/Semana 03/bubbleSort.c create mode 100644 Algoritmos e Estruturas de Dados I/Semana 03/selection_sort.c create mode 100644 Algoritmos e Estruturas de Dados I/Semana 03/sort.c create mode 100644 Algoritmos e Estruturas de Dados I/Semana 04/Semana 04.md create mode 100644 Algoritmos e Estruturas de Dados I/Semana 04/doubly_linked_list.c create mode 100644 Algoritmos e Estruturas de Dados I/Semana 04/dynamicList.c create mode 100644 Algoritmos e Estruturas de Dados I/Semana 04/staticList.c create mode 160000 BxComp create mode 100644 Cálculo II/Atividade 1/Atividade 1.md create mode 100644 Cálculo II/Atividade 1/Importantes tabelas de Cálculo.md create mode 100644 Cálculo II/Atividade 1/Propriedades dos integrais e somatórios.md create mode 100644 Cálculo II/Atividade 2/Atividade 2.md create mode 100644 Cálculo II/Atividade 2/Imagens/2021-09-06-22-15-00-image.png create mode 100644 Cálculo II/Atividade 3/Atividade 3.md create mode 100644 Cálculo II/Imagens/2021-08-31-19-16-21-image.png create mode 100644 Introdução à Análise de Algoritmos/Correção.md create mode 160000 Introdução à Análise de Algoritmos/apostila-iaa create mode 100644 Matemática Discreta I/Argumentos.md create mode 100644 Matemática Discreta I/Imagens/0369ea5b86b01fc8aeb895c8cb044b3f13f05215.png create mode 100644 Matemática Discreta I/Lógica elementar.md create mode 100644 Matrizes, Vetores e Geometria Analítica/01 - Definição de Espaço Vetorial.md create mode 100644 Matrizes, Vetores e Geometria Analítica/02 - Propriedades do Espaço Vetorial.md create mode 100644 Matrizes, Vetores e Geometria Analítica/03 - Definição de sub-espaço vetorial.md create mode 100644 Matrizes, Vetores e Geometria Analítica/04 - Dependência linear.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0156aed --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.out +*.pdf diff --git a/Algoritmos e Estruturas de Dados I/Semana 01/Semana 01.md b/Algoritmos e Estruturas de Dados I/Semana 01/Semana 01.md new file mode 100644 index 0000000..3e295a2 --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 01/Semana 01.md @@ -0,0 +1,70 @@ +# Semana 01 + +> 16/08/21 a 21/08. Por Guilherme de Abreu Barreto, nUSP: 12543033. + +Respostas aos exercícios propostos. + +## Exercício 01 + +Output com variável `nusp` do tipo `int`: + +``` +Imprimindo inteiro: 12543033 +Imprimindo numero: 12543033 +Imprimindo float (com cast): 12543033.000000 +Imprimindo quociente: 6271516 +Imprimindo resto: 1 +Imprimindo quadrado: -1270180687 +``` + +Notei que o resultado do quadrado é incorreto, imaginei ser uma questão de insuficiência da capacidade do tipo `int` para o armazenamento do resultado. Então repeti o procedimento designando à variável `nusp` o tipo `long long int`[^1] e assim obtive a resposta esperada: + +``` +Digite seu número USP: Imprimindo inteiro: 12543033 +Imprimindo numero: 12543033 +Imprimindo float (com cast): 12543033.000000 +Imprimindo quociente: 6271516 +Imprimindo resto: 1 +Imprimindo quadrado: 157327676839089 +``` + +## Exercício 02 + +Output: + +``` +x: 7 y: 13 z: 0x7fffdd1a03f8 +&x: 0x7fffdd1a03f8 &y: 0x7fffdd1a03fc &z: 0x7fffdd1a0400 +Novo valor de x: 20 +``` + +Não obstante, o código, ao ser compilado, produziu os seguintes alertas: + +``` +e2.c: In function ‘main’: +e2.c:7:33: warning: format ‘%p’ expects argument of type ‘void *’, but argument 4 has type ‘int *’ [-Wformat=] + 7 | printf("x: %i y: %i z: %p\n", x, y, z); + | ~^ ~ + | | | + | void * int * + | %ls +e2.c:8:22: warning: format ‘%p’ expects argument of type ‘void *’, but argument 2 has type ‘int *’ [-Wformat=] + 8 | printf("&x: %p &y: %p &z: %p\n", &x, &y, &z); + | ~^ ~~ + | | | + | void * int * + | %ls +e2.c:8:29: warning: format ‘%p’ expects argument of type ‘void *’, but argument 3 has type ‘int *’ [-Wformat=] + 8 | printf("&x: %p &y: %p &z: %p\n", &x, &y, &z); + | ~^ ~~ + | | | + | void * int * + | %ls +e2.c:8:36: warning: format ‘%p’ expects argument of type ‘void *’, but argument 4 has type ‘int **’ [-Wformat=] + 8 | printf("&x: %p &y: %p &z: %p\n", &x, &y, &z); + | ~^ ~~ + | | | + | void * int ** +``` + +[^1]: Foi necessário o uso da *flag* `-std=c99` para que o `gcc` compilase o código sem emitir alertas. \ No newline at end of file diff --git a/Algoritmos e Estruturas de Dados I/Semana 01/e2.md b/Algoritmos e Estruturas de Dados I/Semana 01/e2.md new file mode 100644 index 0000000..f3ced5b --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 01/e2.md @@ -0,0 +1,12 @@ +## O especificador de formato %p + +Este é utilizado para imprimir o endereço na memória de uma dada variável. + +``` +#include +main() { + int x = 50; + int *ptr = &x; + printf("The address is: %p, the value is %d", ptr, *ptr); +} +``` \ No newline at end of file diff --git a/Algoritmos e Estruturas de Dados I/Semana 01/nusp.c b/Algoritmos e Estruturas de Dados I/Semana 01/nusp.c new file mode 100644 index 0000000..4e97d18 --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 01/nusp.c @@ -0,0 +1,15 @@ +#include + +int main() { + long long int nusp; + printf("Digite seu número USP: "); + scanf("%lld", &nusp); + + printf("Imprimindo inteiro: %lli\n", nusp); + printf("Imprimindo numero: %lld\n", nusp); + printf("Imprimindo float (com cast): %f\n", (float) nusp); + printf("Imprimindo quociente: %lli\n", nusp/2); + printf("Imprimindo resto: %lld\n", nusp%2); + printf("Imprimindo quadrado: %lld\n", nusp*nusp); + return 0; +} diff --git a/Algoritmos e Estruturas de Dados I/Semana 01/nusp.md b/Algoritmos e Estruturas de Dados I/Semana 01/nusp.md new file mode 100644 index 0000000..def948f --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 01/nusp.md @@ -0,0 +1,30 @@ +# Notas quanto ao exercício + +1. Como jogar o prompt para o terminal e o output para o arquivo? +2. Como passar um argumento para o executável? + +## Output com variável int: + +``` +Digite seu número USP: Imprimindo inteiro: 12543033 +Imprimindo numero: 12543033 +Imprimindo float (com cast): 12543033.000000 +Imprimindo quociente: 6271516 +Imprimindo resto: 1 +Imprimindo quadrado: -1270180687 +``` + +## Output com variável long long int + +``` +Digite seu número USP: Imprimindo inteiro: 12543033 +Imprimindo numero: 12543033 +Imprimindo float (com cast): 12543033.000000 +Imprimindo quociente: 6271516 +Imprimindo resto: 1 +Imprimindo quadrado: 157327676839089 +``` + +--- + +[Diferença entre os especificadores de formato %d e %i](https://www.geeksforgeeks.org/difference-d-format-specifier-c-language/) \ No newline at end of file diff --git a/Algoritmos e Estruturas de Dados I/Semana 02/e01.c b/Algoritmos e Estruturas de Dados I/Semana 02/e01.c new file mode 100644 index 0000000..1359e9e --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 02/e01.c @@ -0,0 +1,19 @@ +#include +#include + +typedef struct pessoa { + int id; + struct pessoa * mae, * pai; +} Pessoa; + +Pessoa * inicializar (int id) { + Pessoa * init = malloc(sizeof(*init)); + init->id = id; + init->mae = init->pai = NULL; + return init; +} + +void registrar(Pessoa * filho, Pessoa * mae, Pessoa * pai) { + filho->mae = mae; + filho->pai = pai; +} diff --git a/Algoritmos e Estruturas de Dados I/Semana 03/Semana 03.md b/Algoritmos e Estruturas de Dados I/Semana 03/Semana 03.md new file mode 100644 index 0000000..b6fee09 --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 03/Semana 03.md @@ -0,0 +1,101 @@ +# Semana 03: respostas ao [exercício proposto](http://www.each.usp.br/digiampietri/ACH2023/ACH2023_AtividadeSemanal03.pdf) + +> Por Guilherme de Abreu Barreto, nUSP: 12543033. + +```c +#include +#include +#include + +typedef struct { + int size, * value; +} Array; + +Array * initializeArray () { + Array * init = malloc(sizeof(*init)); + init->size = 1; + init->value = malloc(sizeof(init->value)); + + return init; +} + +int readSequence(Array * sequence) { + bool end = false; + int num, i = 0; + char c; + + do { + switch (scanf("%d%c", &num, &c)) { + case 0: + return EOF; + case EOF: + end = true; + } + if (end == true) + break; + if (i == sequence->size - 1) { + sequence->size *= 2; + sequence->value = realloc(sequence->value, sequence->size * sizeof(sequence->value)); + } + sequence->value[i] = num; + i++; + } while(c != '\n'); + + sequence->size = i; + return i; +} + +bool isSorted (Array * sequence) { + int i; + + for (i = 0; i < sequence->size - 1; i++) + if (sequence->value[i] > sequence->value[i + 1]) + return false; + return true; +} + +void selectionSort(Array * sequence) { + int i, j, pos, aux; + + if (isSorted(sequence) == true) + return; + for (i = 0; i < sequence->size - 1; i++) { + pos = i; + + for (j = i + 1; j < sequence->size; j++) + if (sequence->value[j] < sequence->value[pos]) + pos = j; + if (pos == i) + continue; + aux = sequence->value[i]; + sequence->value[i] = sequence->value[pos]; + sequence->value[pos] = aux; + } +} + +int main () { + int i; + Array * sequence = initializeArray(); + + printf("Este programa lê uma sequência de números inteiros e os ordena em ordem crescente. Digite uma sequência de números qualquer e pressione ENTER:\n"); + + switch (readSequence(sequence)) { + case EOF: + printf("Detectado valor inválido na sequência\n"); + case 0: + return 1; + } + selectionSort(sequence); + + printf("\n"); + for (i = 0; i < sequence->size; i++) + printf("%d ", sequence->value[i]); + printf("\n"); + return 0; +} +->size; i++) + printf("%d ", sequence->value[i]); + printf("\n"); + return 0; +} +``` \ No newline at end of file diff --git a/Algoritmos e Estruturas de Dados I/Semana 03/bubbleSort.c b/Algoritmos e Estruturas de Dados I/Semana 03/bubbleSort.c new file mode 100644 index 0000000..45dd6da --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 03/bubbleSort.c @@ -0,0 +1,16 @@ +void swap(int * a, int * b) { + int temp = *a; + *a = *b; + *b = temp; +} + +void bubbleSort(int * v, int n){ + if (n < 1) + return; + + int i; + for (i=0; i v[i+1]) + swap(&v[i], &v[i+1]); + bubbleSort(v, n-1); +} diff --git a/Algoritmos e Estruturas de Dados I/Semana 03/selection_sort.c b/Algoritmos e Estruturas de Dados I/Semana 03/selection_sort.c new file mode 100644 index 0000000..8b4bcaa --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 03/selection_sort.c @@ -0,0 +1,22 @@ +int posMenorEl(int v[], int tam, int inicio) { + int i, posMenor; + posMenor = -1; + if (inicio >= 0 && inicio < tam) { + posMenor = inicio; + for (i = inicio + 1; i < tam; i++) { + if (v[i] < v[posMenor]) + posMenor = i; + } + } + return posMenor; +} + +void selecao (int v[, int tam) { + int i, posMenor, aux; + for (i = 0; i < tam - 1; i++) { + posMenor = posMenorEl(v, tam, i); + aux = v[i]; + v[i] = v[posMenor]; + v[posMenor] = aux; + } +} diff --git a/Algoritmos e Estruturas de Dados I/Semana 03/sort.c b/Algoritmos e Estruturas de Dados I/Semana 03/sort.c new file mode 100644 index 0000000..2b3880b --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 03/sort.c @@ -0,0 +1,90 @@ +#include +#include +#include + +typedef struct { + int size, * value; +} Array; + +Array * initializeArray () { + Array * init = malloc(sizeof(*init)); + init->size = 1; + init->value = malloc(sizeof(init->value)); + + return init; +} + +int readSequence(Array * sequence) { + bool end = false; + int num, i = 0; + char c; + + do { + switch (scanf("%d%c", &num, &c)) { + case 0: + return EOF; + case EOF: + end = true; + } + if (end == true) + break; + if (i == sequence->size - 1) { + sequence->size *= 2; + sequence->value = realloc(sequence->value, sequence->size * sizeof(sequence->value)); + } + sequence->value[i] = num; + i++; + } while(c != '\n'); + + sequence->size = i; + return i; +} + +bool isSorted (Array * sequence) { + int i; + + for (i = 0; i < sequence->size - 1; i++) + if (sequence->value[i] > sequence->value[i + 1]) + return false; + return true; +} + +void selectionSort(Array * sequence) { + int i, j, pos, aux; + + if (isSorted(sequence) == true) + return; + for (i = 0; i < sequence->size - 1; i++) { + pos = i; + + for (j = i + 1; j < sequence->size; j++) + if (sequence->value[j] < sequence->value[pos]) + pos = j; + if (pos == i) + continue; + aux = sequence->value[i]; + sequence->value[i] = sequence->value[pos]; + sequence->value[pos] = aux; + } +} + +int main () { + int i; + Array * sequence = initializeArray(); + + printf("Este programa lê uma sequência de números inteiros e os ordena em ordem crescente. Digite uma sequência de números qualquer e pressione ENTER:\n"); + + switch (readSequence(sequence)) { + case EOF: + printf("Detectado valor inválido na sequência\n"); + case 0: + return 1; + } + selectionSort(sequence); + + printf("\n"); + for (i = 0; i < sequence->size; i++) + printf("%d ", sequence->value[i]); + printf("\n"); + return 0; +} diff --git a/Algoritmos e Estruturas de Dados I/Semana 04/Semana 04.md b/Algoritmos e Estruturas de Dados I/Semana 04/Semana 04.md new file mode 100644 index 0000000..8431ab0 --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 04/Semana 04.md @@ -0,0 +1,142 @@ +# Semana 04: resposta ao [exercício proposto](http://www.each.usp.br/digiampietri/ACH2023/ACH2023_AtividadeSemanal04.pdf) + +> Por Guilherme de Abreu Barreto, nUSP: 12543033. + + + +```c +#include +#include + +typedef struct node { + int value; + struct node *prev; + struct node *next; +} Node; + +typedef struct { + Node *start; + Node *end; +} List; + +void insertIn (List *l, int value) { + Node *prev, *current, *next; + prev = next = NULL; + + if (l->start != NULL) { + if (abs(value - l->start->value) < abs(value - l->end->value)) { + next = l->start; + while (next != NULL && next->value < value) { + prev = next; + next = next->next; + } + if (next != NULL && next->value == value) + return; + } + else { + prev = l->end; + while (prev != NULL && prev->value > value) { + next = prev; + prev = prev->prev; + } + if (prev != NULL && prev->value == value) + return; + } + } + + current = malloc(sizeof(*current)); + current->value = value; + + if (prev == NULL) { + current->next = l->start; + l->start = current; + } + else { + current->next = prev->next; + prev->next = current; + } + + if (next == NULL) { + current->prev = l->end; + l->end = current; + } + else { + current->prev = next->prev; + next->prev = current; + } +} + +void removeFrom (List *l, int value) { + Node *current; + + if (l->start == NULL) + return; + if (abs(value - l->start->value) < abs(value - l->end->value)) { + current = l->start; + while (current != NULL && current->value < value) + current = current->next; + } + else { + current = l->end; + while (current != NULL && current->value > value) + current = current->prev; + } + + if (current == NULL) + return; + if (current->prev != NULL && current->next != NULL) { + current->prev->next = current->next; + current->next->prev = current->prev; + } + else { + if (current->prev == NULL) { + l->start = current->next; + if (current->next != NULL) + current->next->prev = NULL; + } + if (current->next == NULL) { + l->end = current->prev; + if (current->prev != NULL) + current->prev->next = NULL; + } + } + free(current); +} + +void printList (List l) { + int i; + Node *current = l.start; + for (i = 0; current != NULL; i++) { + printf("\nÍndice: %-6d Valor: %-6d (Endereços) Anterior: %p Atual: %p Próximo: %p\n", i, current->value, current->prev, current, current->next); + current = current->next; + } +} + +int main () { + int i; + char c; + List l = {0}; + + printf("Este programa adiciona valores inteiros à uma lista duplamente ligada, e depois permite excluí-los da mesma.\nDigite uma sequência de valores e pressione ENTER: "); + do { + if(!scanf("%d%c", &i, &c)) { + printf("Valor inválido detectado."); + return 1; + } + insertIn(&l, i); + } while (c != '\n'); + printList(l); + + printf("\nDigite uma sequência de valores a serem apagados e pressione ENTER: "); + do { + if(!scanf("%d%c", &i, &c)) { + printf("Valor inválido detectado."); + return 1; + } + removeFrom(&l, i); + } while (c != '\n'); + printList(l); + + return 0; +} +``` \ No newline at end of file diff --git a/Algoritmos e Estruturas de Dados I/Semana 04/doubly_linked_list.c b/Algoritmos e Estruturas de Dados I/Semana 04/doubly_linked_list.c new file mode 100644 index 0000000..20e5e03 --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 04/doubly_linked_list.c @@ -0,0 +1,135 @@ +#include +#include + +typedef struct node { + int value; + struct node *prev; + struct node *next; +} Node; + +typedef struct { + Node *start; + Node *end; +} List; + +void insertIn (List *l, int value) { + Node *prev, *current, *next; + prev = next = NULL; + + if (l->start != NULL) { + if (abs(value - l->start->value) < abs(value - l->end->value)) { + next = l->start; + while (next != NULL && next->value < value) { + prev = next; + next = next->next; + } + if (next != NULL && next->value == value) + return; + } + else { + prev = l->end; + while (prev != NULL && prev->value > value) { + next = prev; + prev = prev->prev; + } + if (prev != NULL && prev->value == value) + return; + } + } + + current = malloc(sizeof(*current)); + current->value = value; + + if (prev == NULL) { + current->next = l->start; + l->start = current; + } + else { + current->next = prev->next; + prev->next = current; + } + + if (next == NULL) { + current->prev = l->end; + l->end = current; + } + else { + current->prev = next->prev; + next->prev = current; + } +} + +void removeFrom (List *l, int value) { + Node *current; + + if (l->start == NULL) + return; + if (abs(value - l->start->value) < abs(value - l->end->value)) { + current = l->start; + while (current != NULL && current->value < value) + current = current->next; + } + else { + current = l->end; + while (current != NULL && current->value > value) + current = current->prev; + } + + if (current == NULL) + return; + if (current->prev != NULL && current->next != NULL) { + current->prev->next = current->next; + current->next->prev = current->prev; + } + else { + if (current->prev == NULL) { + l->start = current->next; + if (current->next != NULL) + current->next->prev = NULL; + } + if (current->next == NULL) { + l->end = current->prev; + if (current->prev != NULL) + current->prev->next = NULL; + } + } + free(current); +} + +void printList (List l) { + int i; + Node *current = l.start; + + for (i = 0; current != NULL; i++) { + printf("\nÍndice: %-6d Valor: %-6d (Endereços) Anterior: %p Atual: %p Próximo: %p\n", i, current->value, current->prev, current, current->next); + current = current->next; + } +} + +int main () { + int i; + char c; + List l = {0}; + + printf("Este programa adiciona valores inteiros à uma lista duplamente ligada, e depois permite excluí-los da mesma.\nDigite uma sequência de valores e pressione ENTER: "); + do { + if(!scanf("%d%c", &i, &c)) { + printf("Valor inválido detectado."); + return 1; + } + insertIn(&l, i); + } while (c != '\n'); + printList(l); + + printf("\nDigite uma sequência de valores a serem apagados e pressione ENTER: "); + do { + if(!scanf("%d%c", &i, &c)) { + printf("Valor inválido detectado."); + return 1; + } + removeFrom(&l, i); + } while (c != '\n'); + printList(l); + + return 0; +} diff --git a/Algoritmos e Estruturas de Dados I/Semana 04/dynamicList.c b/Algoritmos e Estruturas de Dados I/Semana 04/dynamicList.c new file mode 100644 index 0000000..4ee5b70 --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 04/dynamicList.c @@ -0,0 +1,99 @@ +#include +#include +#include + +typedef struct item { + int value; + struct item * next; +} Item; + +typedef struct { + Item * start; +} List; + +int listSize (List * l) { + int size; + Item * index = l->start; + + for (size = 0; index != NULL; size++) + index = index->next; + + return size; +} + +Item * findInOrderedList(int value, List * l) { + Item * index = l->start; + while (index != NULL && index->value < value) + index = index->next; + + if (index == NULL || index->value != value) + return NULL; + return index; +} + +Item * findInOrderedListAux(int value, List * l, Item * prev) { + prev = NULL; + Item * index = l->start; + while (index != NULL && index->value < value){ + prev = index; + index = index->next; + } + + if (index == NULL || index->value != value) + return NULL; + return index; +} + +bool insertInOrderedList (int value, List * l) { + Item * prev = NULL, * i; + i = findInOrderedListAux(value, l, prev); + if (i != NULL) + return false; + i = malloc(sizeof(*i)); + i->value = value; + + if (prev == NULL) { + i->next = l->start; + l->start = i; + } + else { + i->next = prev->next; + prev->next = i; + } + return true; +} + +bool removeFromOrderedList (int value, List * l) { + Item * prev = NULL, * i; + i = findInOrderedListAux(value, l, prev); + if (i != NULL) + return false; + if (prev == NULL) + l->start = i->next; + else + prev->next = i->next; + free(i); + return true; +} + +void reinitializeList (List * l) { + Item * prev, * i = l->start; + while (i != NULL) { + prev = i; + i = i->next; + free(prev); + } + l->start = NULL; +} + +int main () { + List l = {0}; + Item * index = l.start; + + printf("Lista: \""); + while (index != NULL) { + printf("$i ", index->value); + index = index->next; + } + printf("\"\n"); +} diff --git a/Algoritmos e Estruturas de Dados I/Semana 04/staticList.c b/Algoritmos e Estruturas de Dados I/Semana 04/staticList.c new file mode 100644 index 0000000..2e1fac2 --- /dev/null +++ b/Algoritmos e Estruturas de Dados I/Semana 04/staticList.c @@ -0,0 +1,98 @@ +#include +#include +#define MAX 50 + +typedef struct { + int index, next; +} Item; + +typedef struct { + Item a[MAX]; + int start, open; +} List; + +void init (List * l) { + int i; + + for (i = 0; i < MAX - 1; i++) + l->a[i].next = i + 1; + + l->a[MAX -1].next = EOF; + l->start = EOF; + l->open = 0; +} + +int listSize (List * l) { + int i = l->start, size; + + for (size = 0; i != EOF; size++) + i = l->a[i].next; + + return size; +} + +int findInOrderedList (int k, List * l) { + int i = l->start; + + while (i != EOF && l->a[i].index < k) + i = l->a[i].next; + + if (i == EOF || l->a[i].index != k) + return EOF; + return i; +} + +int openIndex (List * l) { + int result = l->open; + if (l->open != EOF) + l->open = l->a[l->open].next; + return result; +} + +void returnIndex(int i, List * l) { + l->a[i].next = l->open; + l->open = i; +} + +bool insertInSortedList (Item insert, List * l) { + if (l->open == EOF) + return false; + + int prev, i = l->start, k = insert.index; + + for (prev = EOF; i != EOF && l->a[i].index < k; prev = i) + i = l->a[i].next; + + if (i != EOF || l->a[i].index == k) + return false; + + i = openIndex(l); + l->a[i].index = k; + + if (prev == EOF) { + l->a[i].next = l->start; + l->start = i; + } + else { + l->a[i].next = l->a[prev].next; + l->a[prev].next = i; + } + return true; +} + +bool removefromSortedList (List * l, int k) { + int prev, i = l->start; + + for (prev = EOF; i != EOF && l->a[i].index < k; prev = i) + i = l->a[i].next; + + if (i == EOF || l->a[i].index != k) + return false; + if (prev == EOF) + l->start = l->a[i].next; + else + l->a[prev].next = l->a[i].next; + + returnIndex(i, l); + return true; +} diff --git a/BxComp b/BxComp new file mode 160000 index 0000000..c1df340 --- /dev/null +++ b/BxComp @@ -0,0 +1 @@ +Subproject commit c1df3404964c1ab41cfad7618e7ef8d7b1e85668 diff --git a/Cálculo II/Atividade 1/Atividade 1.md b/Cálculo II/Atividade 1/Atividade 1.md new file mode 100644 index 0000000..2204a53 --- /dev/null +++ b/Cálculo II/Atividade 1/Atividade 1.md @@ -0,0 +1,69 @@ +# Atividade 1 + +## Capítulo 4.9 + +### Exercício 29 + +Encontre $f$, onde $f'''(t) = \cos t$. + +#### Resolução + +Conforme a tabela dos integrais, + +$f'''(t) = \cos t \\ +f'' (t) = \sin t + C_1 \\ +f' (t) = - \cos t + C_1x + C_2 \\ +f(t) = - \sin t + \dfrac{C_1x^2}2 + C_2x + C_3 +$ + +### Exercício 67 + +Um objeto é lançado para cima com velocidade inicial $v_0$ metros por segundo a partir de um ponto $s_0$ metros acima do solo. Mostre que + +$$ +[v(t)]^2 = v_0^2 - 19,6[s(t) - s_0] +$$ + +#### Resolução + +$a(t) = v'(t) \approx -9,8 \\ +v(t) = a(t)t + C_1 = a(t)t + v_0 = s'(t)\implies t = \dfrac{v(t) - v_0}{a(t)} \\ +s(t) = \dfrac{a(t)t^2}2 + v_0t + C_2 = \dfrac{a(t)t^2}2 + v_0t + s_0 \\ +s(t) - s_0 = t \left[ \dfrac{a(t)t}2 + v_0 \right] \\\ \\ +s(t) - s_0 = \left[ \dfrac{v(t) - v_0}{a(t)} \right] \left[ \dfrac{\cancel{a(t)}}2 \cdot \dfrac{v(t) - v_0}{\cancel{a(t)}} + v_0 \right] \\\ \\ +s(t) - s_0 = \dfrac{[v(t) - v_0][v(t) - \cancel{v_0} + \cancel 2v_0]}{2a(t)} \\\ \\ +2a(t)[s(t) - s_0] = [v(t)]^2 - v_0^2 \\\ \\ +\bm{[v(t)]^2 = v_0^2 -19,6 [s(t) - s_0]} +$ + +## Capítulo 5.2 + +### Exercício 37 + +Calcule a integral de $\int_{-3}^0 (1 + \sqrt{9 - x^2})\ dx$, interpretando-a em termos das áreas. + +#### Resolução + +$\int_{-3}^0 (1 + \sqrt{9 - x^2})\ dx =\\ \int_{-3}^0 1 \ dx + \int_{-3}^0 \sqrt{9 - x^2}\ dx =\\ 1 \cdot (0 - (-3)) + \int_{-3}^0 \sqrt{9 - x^2}\ dx = 3 + \int_{-3}^0 \sqrt{9 - x^2}\ dx$ + +Considerando $y = \sqrt{9 - x^2}$ temos que o segundo termo da equação anterior refere-se à uma área posicionada no segundo quadrante ($[-3,0]$) e estritamente positiva ($0 \le y \le 3$). Também percebemos que esta possui forma circular pois a equação se assemelha à aquela do círculo ($y^2 + x^2 = r^2$): + +$y = \sqrt{9 - x^2} \implies y^2 + x^2 = 9$ + +Onde $r^2 = 9$. Assim, substituindo $\int_{-3}^0 \sqrt{9 - x^2}\ dx$ pela área de um quadrante de um círculo de raio $3$, temos: + +$\int_{-3}^0 (1 + \sqrt{9 - x^2})\ dx = 3 + \dfrac{9\pi}4$ + +### Exercício 53 + +Cada uma das regiões $A$, $B$ e $C$ delimitadas pelo gráfico de $f$ e o eixo $x$ tem área $3$. Encontre o valor de + +$$ +\int_{-4}^2 [f(x) + 2x +5]\ dx +$$ + + + +#### Resolução + +$\int_{-4}^2 [f(x) + 2x +5]\ dx = \int_{-4}^2 f(x)\ dx + \underbrace{\int_{-4}^2 2x \ dx}_{\text{função linear}} + \underbrace{\int_{-4}^2 5\ dx}_{\text{função constante}} =\\\ \\ (-3 + 3 - 3) + \left(\dfrac{2 \cdot 4}2 - \dfrac{4 \cdot 8}2 \right) + 5 (2 - (-4)) = \bm{15}$ \ No newline at end of file diff --git a/Cálculo II/Atividade 1/Importantes tabelas de Cálculo.md b/Cálculo II/Atividade 1/Importantes tabelas de Cálculo.md new file mode 100644 index 0000000..5b61618 --- /dev/null +++ b/Cálculo II/Atividade 1/Importantes tabelas de Cálculo.md @@ -0,0 +1,56 @@ +# Importantes tabelas de Cálculo + +## Tabela das derivadas + +| Primitiva | Derivada | +| --------------------------- | ---------------------------------------------------------- | +| $f(x) = c$ | $f'(x) = 0$ | +| $f(x) = x^n$ | $f'(x) = nx^{n - 1}$ | +| $f(x) = c x^n$ | $f'(x) = cnx^{n - 1}$ | +| $f(x) = g(x) h(x)$ | $f'(x) = g(x) h'(x) + g'(x) h(x)$ | +| $f(x) = \dfrac{g(x)}{h(x)}$ | $f'(x) = \dfrac{h(x)g'(x) + g(x) h'(x)}{\big(h(x)\big)^2}$ | +| $f(x) = a^x$ | $f'(x) = a^x\ln a $ | +| $f(x) = log_ax$ | $f'(x) = \dfrac1{x\ln a}$ | + +### Derivadas trigonométricas + +| Primitiva | Derivada | +| ------------------------- | ------------------------------------ | +| $f(x) = \sin x$ | $f'(x) = \cos x$ | +| $f(x) = \cos x$ | $f'(x) = - \sin x$ | +| $f(x) = \tan x$ | $f'(x) = \sec^2x$ | +| $f(x) = \cot x$ | $f'(x) = -\csc^2x$ | +| $f(x) = \sec x$ | $f'(x) = \sec x \tan x$ | +| $f(x) = \csc x$ | $f'(x) = - \csc x \cot x$ | +| $f(x) = \arcsin x$ | $f'(x) = \dfrac 1{\sqrt{1 - x^2}}$ | +| $f(x) = \arccos x$ | $f'(x) = - \dfrac 1{\sqrt{1 - x^2}}$ | +| $f(x) = \arctan x$ | $f'(x) = \dfrac 1{1 + x^2}$ | +| $f(x) = \text{arccot } x$ | $f'(x) = - \dfrac 1{1 + x^2}$ | + +### Regra da cadeia + +Se $y$ é uma função derivável de $u$ e $u$ é uma função derivável de $x$, então $y$ é uma função derivável de $x$ e + +$$ +\dfrac{dy}{dx} = \dfrac{dy}{du} \cdot \dfrac{du}{dx} +$$ + +## Tabela das integrais + +| Derivada | Primitiva | +| -------------------------- | ------------------------------ | +| $cf'(x)$ | $cf(x) + C$ | +| $f'(x) + g'(x)$ | $f(x) + g(x) + C$ | +| $x^n, n \not = -1$ | $\dfrac{x^{n + 1}}{n + 1} + C$ | +| $\dfrac 1x$ | $\ln \|x\| + C$ | +| $e^x$ | $e^x + C$ | +| $a^x$ | $\dfrac{a^x}{\ln \|x\|}$ | +| $\cos x$ | $\sin x + C$ | +| $\sin x$ | $- \cos x + C$ | +| $\sec^2x$ | $\tan x + C$ | +| $\csc^2 x$ | $- \cot x + C$ | +| $\cosh x$ | $\sinh x + C$ | +| $\csc x \cot x$ | $- \csc x + C$ | +| $\sec x \tan x$ | $\sec x + C$ | +| $\dfrac 1{\sqrt{1 - x^2}}$ | $\sin^{-1} + C$ | +| $\dfrac 1{1 + x^2}$ | $\tan^{-1} + C$ | \ No newline at end of file diff --git a/Cálculo II/Atividade 1/Propriedades dos integrais e somatórios.md b/Cálculo II/Atividade 1/Propriedades dos integrais e somatórios.md new file mode 100644 index 0000000..027c9af --- /dev/null +++ b/Cálculo II/Atividade 1/Propriedades dos integrais e somatórios.md @@ -0,0 +1,46 @@ +# Propriedades dos integrais e somatórios + +## Definição geral dos integrais + +$$ +\int_a^b f(x)\ dx = \lim_{n \to \infty} +\underbrace{\sum^n_{i = 1} f(x_i) \Delta x} +_{\text{Soma de Reimann}} = \lim_{n \to \infty} \dfrac{b - a}n \sum^n_{i = 1} +f\left(i \cdot \dfrac{b - a}n \right) +$$ + +## Propriedades dos integrais + +1. $\displaystyle \int_a^b f(x)\ dx = - \int_b^a f(x)\ dx$ + +2. $\displaystyle \int_a^a f(x)\ dx = 0$ + +3. $\displaystyle \int_a^b c\ dx = c\ (b - a)$ + +4. $\displaystyle \int_a^b c f(x)\ dx = c \int_a^b f(x)\ dx$ + +5. $\displaystyle \int_a^b [f(x) \pm g(x)]\ dx = \int_a^b f(x)\ dx \pm \int_a^b g(x)\ dx$ + +6. $\displaystyle \int_a^b f(x)\ dx + \int_b^c f(x)\ dx = \int_a^c f(x)\ dx$ + +7. $\displaystyle \int dx = x$ + +## Propriedades da somatória + +1. $\displaystyle \sum^n_{i = 1} i = \dfrac{n (n + 1)}2$[^1] + +2. $\displaystyle \sum^n_{i = 1} i^2 = \dfrac{n (n + 1)(2n + 1)}6$ + +3. $\displaystyle \sum^n_{i = 1} i^3 = \left[\dfrac{n (n + 1)}2\right]^2$ + +4. $\displaystyle \sum^n_{i = 1} c = nc$ + +5. $\displaystyle \sum^n_{i = 1} c\ a_i = \displaystyle c \sum^n_{i = 1} a_i$ + +6. $\displaystyle \sum^n_{i = 1} (a_i \pm b_i) = \sum^n_{i = 1} a_i \pm \sum^n_{i = 1} b_i$ + +7. $\displaystyle \sum^n_{i = 1} a^i = \dfrac{a(a^n - 1)}{a - 1}$[^2] + +[^1]: Fórmula da somatória de uma progressão aritmética + +[^2]: Fórmula da somatória de uma progressão geométrica \ No newline at end of file diff --git a/Cálculo II/Atividade 2/Atividade 2.md b/Cálculo II/Atividade 2/Atividade 2.md new file mode 100644 index 0000000..55fc95d --- /dev/null +++ b/Cálculo II/Atividade 2/Atividade 2.md @@ -0,0 +1,124 @@ +# Atividade 2 + +Resolução dos exercícios obrigatórios, feita por Guilherme de Abreu Barreto[^1]. + +## Capítulo 5.3 + +### Exercício 45 + +O que está errado com a seguinte equação? + +$$ +\displaystyle \int^1_{-2} x^{-4}\ dx = \dfrac{x^{-3}}{-3} \Bigg ]^1_{-2} = - \dfrac 38 +$$ + +#### Resolução + +A equação em questão faz uso do Teorema Fundamental do Cálculo (TFC) para calcular o valor da integral da função $f(x) = x^{-4}$ no intervalo $[1, -2]$. Entretanto, o TFC, conforme sua definição, aplica-se somente às integrais de **funções contínuas**. Este não é o caso aqui, pois nota-se que $f(x) = x^{-4}$ apresenta descontinuidade no ponto $x = 0$. + +### Exercício 65 + +A função de Fresnel $S$ foi definida no Exemplo 3, e seus gráficos estão nas Figuras 7 e 8. + + + +**(a)** Em que valores de x essa função tem valores máximos locais? + +**(b)** Em que intervalos a função é côncava para cima? + +**(c)** Use um gráfico para resolver a seguinte equação, com precisão de duas casas decimais: + +$$ +\displaystyle \int^x_0 \sin \left(\dfrac{\pi t^2}2\right)\ dt = \dfrac 15 +$$ + +#### Resolução + +**(a)** Conforme se observa pela figura 7, a função de Fresnel apresenta valores máximos e mínimos para os valores de $x$ aqueles em que sua função derivada $S'(x) = \sin (\pi x^2/2)$ tem valor 0. O que ocorre sempre que o valor de $x$ é diferente de 0 e múltiplo de √2: + +$$ +S'(x) = \sin \left(\dfrac{\pi (n \sqrt 2)^2}2\right) = 0 \implies +\begin{cases} +\text{Máximo local, se \textit k for} \begin{cases} +\text{ímpar e positivo} \\ +\text{par e negativo} +\end{cases} \\\ \\ +\text{Mínimo local, se k for} \begin{cases} +\text{par e positivo} \\ +\text{ímpar e negativo} +\end{cases} \\ +\end{cases} +$$ + +Onde $n$ é um número inteiro e positivo. Ou seja, para $x > 0$ tem-se um máximo local quando: + +$$ +\dfrac{\pi x^2}2 = (2n + 1)\pi \implies x = \sqrt{2(2n + 1)} +$$ + +Enquanto, para $x < 0$, isso ocorre quando: + +$$ +\dfrac{\pi x^2}2 = 2n\pi \implies x = -2\sqrt x +$$ + +**(b)** Conforme as propriedades das funções derivadas, enquanto a função derivada descreve a localização dos pontos máximos e mínimos da função da qual foi derivada, por vez, a função derivada desta primeira descreve a concavidade desta última: para cima quando $S''(x) > 0$ e para baixo quando $S''(x) < 0$. Onde $S'''(x)$ é: + +$$ +S'(x) = \sin \left(\dfrac{\pi x^2}2\right) \implies S''(x) = \cos \left(\dfrac{\pi x^2}2\right) \cdot \pi x +$$ + +Logo, para $x > 0$: + +$$ +\cos \left(\dfrac{\pi x^2}2\right) \cdot \pi x > 0 \implies \cos \left(\dfrac{\pi x^2}2\right) > 0 \implies 0 < \dfrac{\pi x^2}2 < \dfrac \pi 2 +$$ + +Generalizando: + +$$ +\left(2n - \dfrac 32 \right)\pi < \dfrac{\pi x^2}2 < \left(2n - \dfrac 12 \right)\pi \\\ \\ +\sqrt{4n - 3} < x < \sqrt{4n - 1} +$$ + +Para qualquer número inteiro e positivo $n$. + +De maneira análoga, para $x < 0$: + +$$ +\cos \left(\dfrac{\pi x^2}2\right) \cdot \pi x > 0 \implies \cos \left(\dfrac{\pi x^2}2\right) < 0 \implies \dfrac \pi 2 < \dfrac{\pi x^2}2 < \dfrac{3\pi} 2 +$$ + +Generalizando: + +$$ +\left(2n - \dfrac 12 \right)\pi < \dfrac{\pi x^2}2 < \left(2n - \dfrac 32 \right)\pi\\\ \\ +\sqrt{4n - 1} < |x| < \sqrt{4n - 3} +$$ + +**(c)** O gráfico à seguir foi gerado aplicando a fórmula da integral em uma calculadora gráfica e experimentando-se valores para x menores que √2 até ser encontrado o valor aquele que corresponde à área descrita pelo enunciado em **x = 0.74**. + + + +## Capítulo 5.4 + +### Exercício 45 + +Calcule a integral de $\int^2_{-1} (x - 2 |x|)\ dx$ + +### Resolução + +$\text{(I) } \int^2_{-1} (x - 2 |x|)\ dx = \int_{-1}^0 (x + 2x)\ dx + \int_0^2 (x - 2x)\ dx =\\\ \\ 3 \int_{-1}^0 x\ dx - \int_0^2 x\ dx = 3[F(0) - F(-1)] - [F(2) - F(0)] \\\ \\ +\text{(II) } f(x) = x \implies F(x) = \dfrac{x^2}2 \\\ \\ +\text{(I) e (II) } 3 \cdot - \dfrac 12 - \dfrac 42 = - \dfrac 72 +$ + +### Exercício 67 + +O custo marginal de fabricação de x metros de um certo tecido é C'(x) = 3 - 0,01x + 0,000006x^2^ US$/m (em dólares por metro). Ache o aumento do custo (A) se o nível de produção for elevado de 2 000 para 4 000 metros. + +#### Resolução + +$ C'(x) = 3 - 10^{-2}x + 6 \cdot 10^{-6}x \implies C(x) = 3x - \dfrac{10^{-2}}2x^2 + 2 \cdot 10^{-6}x^3\\\ \\A = \displaystyle \int_{2 \cdot 10^3}^{4 \cdot 10^3} C'(x) dx = C(4 \cdot 10^3) - C(2 \cdot 10^3) = \\\ \\4 \cdot 10^3 \left[3 - \dfrac{10^{-2} \cdot 4 \cdot 10^3}2 + 2 \cdot 10^{-6} \cdot 16 \cdot 10^6\right] - 2 \cdot 10^3 (3 - 10 + 8)\\\ \\ = \bm{58 \cdot 10^3 \textbf{ dollares/m}}$ + +[^1]: nUSP 12543033 \ No newline at end of file diff --git a/Cálculo II/Atividade 2/Imagens/2021-09-06-22-15-00-image.png b/Cálculo II/Atividade 2/Imagens/2021-09-06-22-15-00-image.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ef583ae7dc369605497ef5e31cd01d015a5a62 GIT binary patch literal 36820 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 D<^!1I literal 0 HcmV?d00001 diff --git a/Cálculo II/Atividade 3/Atividade 3.md b/Cálculo II/Atividade 3/Atividade 3.md new file mode 100644 index 0000000..1e67d24 --- /dev/null +++ b/Cálculo II/Atividade 3/Atividade 3.md @@ -0,0 +1,102 @@ +# Atividade 3 + +Resolução dos exercícios obrigatórios, feita por Guilherme de Abreu Barreto[^1]. + +## Capítulo 5.5 + +### Exercício 73 + +Avalie a integral definida: + +$$ +\int^1_0 \dfrac 1{(1 + \sqrt x)^4}\ dx +$$ + +#### Resolução + +$ +\displaystyle \int^1_0 \dfrac 1{(1 + \sqrt x)^4}\ dx \begin{cases} +u = \sqrt x \\ +du = \dfrac{x^{-\frac 12}}{2}\ dx = \dfrac{dx}{2\sqrt x} = \dfrac{dx}{2u} \implies 2u\ du = dx +\end{cases}\\\ \\ +2 \int^{\sqrt 1 = 1}_{\sqrt 0 = 0} \dfrac{u}{(1 + u)^4}\ du +\begin{cases} +v = 1 + u \implies u = v - 1 \\ +dv = du +\end{cases}\\\ \\ +2 \int^{1 + 1 = 2}_{0 + 1 = 1} \dfrac{v - 1}{v^4}\ dv = +2 \left[\int^2_1 \dfrac v{v^4}\ dv - \int^2_1 \dfrac 1{v^4}\ dv \right] = 2 \left[ - \dfrac{v^{-2}}2 \Bigg |^2_1 + \dfrac{v^{-3}}3 \Bigg |^2_1 \right] = \\\ \\ +2 \left[\dfrac 1{3 \cdot 8} - \dfrac 13 - \dfrac 1{2 \cdot 4} + \dfrac 12\right] = \dfrac 16 +$ + +### Exercício 83 + +A respiração é cíclica e o ciclo completo respiratório desde o início da inalação até o fim da expiração demora cerca de $5\ s$. A taxa máxima de fluxo de ar nos pulmões é de cerca de $0,5\ L/s$. Isso explica, em partes, porque a função $f(x) = \frac 12 \sin \left(\frac{2\pi t}5\right)$ tem sido frequentemente utilizada para modelar a taxa de fluxo de ar nos pulmões. Use esse modelo para encontrar o volume da ar inalado no instante $t$. + +#### Resolução + +O volume de ar inalado desde o início do ciclo respiratório (0) até o instante t pode ser aferido pela integral da taxa de fluxo de ar, aferida entre estes dois momentos: + +$\displaystyle \int^t_0 \dfrac 12 \sin \left(\dfrac{2\pi x}5\right)\ dx = \dfrac 12 \int^t_0 \sin \left(\dfrac{2\pi x}5\right)\ dx +\begin{cases} +u = \dfrac{2\pi x}5 \\\ \\ +du = \dfrac{2 \pi}5\ dx \implies dx = \dfrac 5{2\pi}\ du +\end{cases}\\\ \\ +\dfrac 12 \cdot \dfrac 5{2\pi}\int^{\frac{2\pi t}5}_0 \sin u\ du = \dfrac 5{4\pi} \cdot -\cos u \Bigg |^{\frac{2\pi t}5}_0 = \dfrac 5{4\pi} \left[1 - \cos\left(\dfrac{2\pi t}5\right)\right] +$ + +## Capítulo 7.1 + +### Exercício 51 + +Use integração por partes para demonstrar a seguinte redução: + +$$ +\int (\ln x)^n\ dx = x(\ln x)^n - n\int (\ln x)^{n - 1}\ dx +$$ + +#### Resolução + +Conforme a definição, a fórmula da integração por partes para integrais indefinidas pode ser expressa nos seguintes termos: + +$$ +\int u \ dv = uv - \int v\ du +$$ + +Assim o sendo, + +$\displaystyle \int (\ln x)^n\ dx +\begin{cases} +u = (\ln x)^n \implies du = n (\ln x)^{n - 1}\ dx\\ +dv = dx \implies v = x +\end{cases}\\\ \\ +\displaystyle \int (\ln x)^n\ dx = x(\ln x)^n - \int n(\ln x)^{n - 1}\ dx = \bm{x(\ln x)^n - n\int (\ln x)^{n - 1}\ dx } +$ + +### Exercício 67 + +Uma partícula que se move ao longo de uma reta tem velocidade igual a $v(t) = t^2e^{-t}$ metros por segundo após t segundos. Qual a distância que essa partícula percorrerá durante os primeiros t segundos? + +#### Resolução + +A função velocidade trata-se da função derivada da função espaço. Assim o sendo, para obtermos a variação $\Delta S$ entre a posição inicial $S(0)$ e final $S(t)$, temos: + +$S(t) = \displaystyle \int \dfrac{t^2}{e^t}\ dt +\begin{cases} +u = t^2 \implies du = 2t\ dt\\ +dv = \dfrac{dt}{e^t} \implies v = \int e^{-t}dt +\begin{cases} +w = -t\\ dw = -dt +\end{cases} +\therefore v = - \int e^w\ dw = -e^{-t} +\end{cases}\\\ \\ +S(t) = - \dfrac{t^2}{e^t} + 2 \int \dfrac t{e^t}\ dt +\begin{cases} +u = t \implies du = dt \\ +dv = \dfrac{dt}{e^t} \implies v = -e^{-t} +\end{cases}\\\ \\ +S(t) = - \dfrac{t^2}{e^t} + 2 \left(- \dfrac t{e^t} + \int e^{-t}dt\right) = \dfrac{t^2}{e^t} + 2 \left(-\dfrac{t}{e^t} + \dfrac 1{e^t}\right) + \underbrace C_{=\ S(0)} \\\ \\ +\implies \Delta S = \dfrac{-t^2 - 2t + 2}{e^t} +$ + +[^1]: nUSP 12543033 \ No newline at end of file diff --git a/Cálculo II/Imagens/2021-08-31-19-16-21-image.png b/Cálculo II/Imagens/2021-08-31-19-16-21-image.png new file mode 100644 index 0000000000000000000000000000000000000000..a733b95699f5c1f1db04a4ea55eef7db7645368e GIT binary patch literal 5178 zcmcgw^-~<}(p@wJC$LCx54K2f0&H-X5G1fj&=+?P7J|D3mk=DXiv(Dl#RD54Sa4WK zfZz~Z7Vh4v_xlI#4`0>v%v4RynSM^s)2F-R^mJ572%i!H000toHKkXW>mQ7H5nyA^ zKg9_#52&!zm0rFMz&a=l44|A{9X@(EI+dFU=7~klD&c%K6u121G71!s`)on}#;_9t z+yB&NYtEnx<6!%r@M-b6kI-Ti*A#8 zW6!1jygG(^qCa=7;JNqK?d|Wg?{7k{alj9$*c4R=X14nAs!=tpaD+0sQW-YEa;y)1 zjVQJRHf{aV0fip&9?FId4?Dl`k%;U~t^Rg(J;ezCD=J2c2&NPw{}C#Z3ru%?=?Ktc zHfEsm@%PmZ5RR_c>F(~x+93_`@IiQQdJjR8Y&{jdKtD)6z=kWW5x-7^5sp@6PSTQ$27Yl2FPb26<0i(## zQ4P)MI>?C;kh^tt{9f*WVEOnK?XpY9JkxHvd~Ez$OAO=p2))JbdsB!BEiULw+#h}d z$UG+j#DsG44S8$5CdRlve`WD_n~gDTC5M-&J`l$8V#nVjqRcTSMp1|tLDYd8LFCLP zO@vM3_ZXYzr;-mfE@=PB{|313&@lfpsPgDJ9mM?$|^dxi`yP;8i2L6sVoX`{)fr9A}h z5B$GH+?nkYtNl|?Y-Hu#98Dx(1TDI_N`vc%2|g#)7#5$)8xvoL3jVv0ft2!vf5O_r zX|q)e+%Mw!^M9R*^R}cWj`!Aj<`-)QOC=$qqW;UrRby4~pAy1%=Oh^wOWu4)m8`;h z2WY8*XT!?w-mb+stH;~7|K-v`fMy9AxjBCc7jR)~t2B68ttxWd1rLl-1^>%zKnvus zUakzGyHe7cLAc$ytRb5g$31guL-Q}q8@=hX+GJTa!(k+`rrg8w@K-4g8*xc5=9T|N zXf=cF>^zh5YZ4}yxzAsr-qod>FOkW-E$n1q|JRL&x7B?v7&l7rAJB_LgAyr_5g9Me zqbh}ux6Xpgx>jaWc~CM3RJ@MPkrTo4gU1LO2NTQ@98JN&7lFVB4F~(@+XB!-p%iBM z9dwFu1#nj2p2KZ+OR#IxXYt{@mQy2nmg0W+8+j`k8>m4SXpvkUEK9wNt{DpZ%0&6_MVJKHCsbS9_81rRo8g{f1bO4qtng@R zeJNp~v3=^y3u`2#^FpoNYoLDpTD#RqH!S$>?jbpNB=;ir3sMq3FKKR5f2-tg6&gNUc7TA6Z}n|I=WK5D0CI!$5CGz~d`QfY>&g^o z=x=SWoZ6~?`gZC;W_81!|2ytFx7ENuXSEIP_G>?HQ6EEiOIM^{NAMlV#U}1m{00F0 z!y@ep(m!FFyPbh)Sy9$T!+gk1QXTgJGB+SAPac-AhF3^=+*sC{kG*-m7MrZG$>w*d zw;MyASo< zio3Q=%f_<=%`87zW0IG*KO<6JNroxE?eLuWHfh!)gUTAdTxWp3HEQTBC7>XIEes`& za_Wdbg8J`es;MRH@waI^BpYUQukpTUfB9X-kPMxQoee)JayB`JZ@PD)VHF9Z)jhX! zz~Zq2xKK~jv3AYU8$$_MwtUI;kzNXt!@u+uZJb3tsS&9x3=n!8E?{cMwIJQ&vUXMh z%^%-?AX^wNHk9BadAONsJmtB1P*$V=mRwuOKF}^+hX9V!z1=q-YY7`rEx5DmCfay|? z>L@$u^5Eu>;m49)4#_qG(pEowEf7n_6@T)fAU}FJ#vV}xu?`mK*@@Oe?D~zBCe4sb zRlp@pBfnuw80%`nHhSZE*2ltnv1kAu2|hlws1gQu3F4+I`yztb+%;Fnw``xCINQ7JWCd87de?X0A~iE**ZK0nbK zwmv1mzRcjA{wz|e+8jb#2kE{;LM`9fhU?-{Lh`U|PGe`XSac72Ka$1|j)!Mw{?2-; zpU4q#%f<22jARzk8B#jd@W-?GM-?5KB`B?ksgC19WxOm-i!I~@<-{JKFMH^O@>Kqt-^j@B>lgt8`rk9ckOI z3*xS^e0&0S!8%-N7kc0I@IrI?L4o40&>6|K;)Bm_gCm@)5M7$Wn1ufFG5QJQoO?S% z#vRXfo07f`JcS?m_RM?2Akzk1QPvu8Um&$#E2RpYTKv*j+Zyjs--W7qWO=Y{#H$gp zBk9uUAg_&CESkoPw!{yy-x1DkR5O`{(rjab)a++1$)_)y4)$RE@| zDNc3*wwoOa$i1m&W{ze{`o@O- zz8xBH%&j`W2rXLm2cZiuxB3^}nH3a%a6fck7RlB6DB&hq+rGDSWF%nOyP3BBLVjPq z9z#g|N-5_Rii?vgFHwaC0~*LVM5gh92s%5hI`vT`PW041#$Bwduq#Nu37U1vly1zW z(>Q4nOvU6&{No?^5_d}Rr@1{Wz-VV@(w;=U;2(Uqj7cWW;c>CYZ>-Y{>Wc6F7W-F1 ztel(C2+s@FY#+!+VHNd0ceqtifjQ{hdouF9NrpWgqWKDq)VYedtNQENh2L0Ai@4rc z;))WR%67Fa3a2B4qX}PNJ2J&&0|83!6V z-mH8qB|8?Y>V56>j+}Yd&^4We-~Q() zW^?4Yr=hiH?g=Bw(Z{-6Usp>GhM&7T%6xMIZ#r`8emLYaOp`Dz;TsP^9_Ll0FiBZA z9LE9=dFiJx1-(XHHgyf5Vhzsi zMlWu5h`FC}ucO3#4u#Y}cJo~p1<0Z+RPpW*+VR9;9F2nJeqA8E(XMUZaqvE7U&anw za%m~F9L%PonR{()Daa!g@|WY*voHUG00dxpfU&=Oe5tKk`B%g4$##_DCw!n;=4@UbpLugtaeAYK^Pq#Yc22EY7%C|#9+%dm{_|H6x zbq1lD`W0HVi)hDi`OfF@8eZ9&NAzD8p((4D^M^*>=^WXDZ+6o`ZYx1>;u1+>VC(8` z-poIN(h1WF+}f3!{pHS(BN9ht-%fn$?k~^fKSr&b(mY= zU9S%(p8VqGG#_nyHQOY!*;nzfl)V%{W>3}fPdj6VExiIYcSIcuO@a}Nqs^geUU~h^ z8OANK;xIAq)xKJ|baRmDto=NBj~Q2*7jZ<+lp0Bv&3J=ncYLf+519uRK$eQVEq>5D z;j(Ua`fpyA>+OBBr$e896e0dh{$}Zu{#srU+=fitT}FHl0YCCm4s1GwOD@O{8temLw&RLR7(eAh4d^Pr z&oH^Ur0fW=7QsUuJr#;6n#x)vLvJumhk_cTQ$2CkrJ*%in*EpY=5aU?plZlf@i%SV zBtwsDWKBZREATjv@YTY_x-l@#4uug&D`)8Sf=lT716m_*@%JB}O`jMJ4|5ig7!n8| zye5W;|A^>k-bx=Rs3yLkM9d^mP=`ou*Hvu9{g~|F+FLg(yW7I+FyZ z;$pEyQ)1rjoNh4Y;Xy^Acip60Qr~IXpd=N!z|}(3>!ctYM2*IDjab{`_P`RQv=tUqrJ~rr3phaw1>~7>aB|sU~(4tIZJig(;9^32)F;52o0D| zbJKOEUBkeKR1PGVZi+P-v4>lBRpe?{zQc+KLb6#Hr+tlQV8<8M_}eqxFxfV6Ns`r# z)j$yO3(iXJQ3w}W$oXyWWG#1MncW~f7b`Iv{YLqB{!>LC(tG)xc~!fieYcbETVAh} z%TUsLZZ=>}``d=Gpes_}nyB`Q%11+=>2!+T+7U89<_3wyRb~~79m`4AO2(UBm0!A0 zNK>&pd6;`Wj8neE^+!C5LnHx=**xBIV_N(FpTWrgG-=t_R3kSp>@#P@b!(LkKNM8M z!iBLc=#_Zzg(FDdkA9%>c)}4t4ticHH$3vz^$S3I4-4kzy{%$Y9~6KsvCIU%q$vYn z8>hNd>9qpEsOTk}Klkscz$n6W5+ETQ`+-dBh9a!#`uH_wCJ0bh)=`2fSiS!b73cmQ literal 0 HcmV?d00001 diff --git a/Introdução à Análise de Algoritmos/Correção.md b/Introdução à Análise de Algoritmos/Correção.md new file mode 100644 index 0000000..c7a34ea --- /dev/null +++ b/Introdução à Análise de Algoritmos/Correção.md @@ -0,0 +1,61 @@ +# Correção + +- Identificar invariáveis + +- Inicialização + +- Manutenção + +- Término + +## Anotações GDB + +- Compilar um programa com a flag `-g` faz com que este programa armazene seu código fonte, permitindo-o ser debugado em sua execução. + +- Para se debugar um programa, chama-se este com o comando `gdb` no terminal. + +- `run` roda o programa. + +- `layout next` muda a forma de exibição da interface. + +- `refresh` atualiza a interface. + +- `next`, ou `n`, avança o programa em uma linha de comando *no escopo atual*. + +- `print`, ou apenas `p`, pode ser utilizado para realizar calculos aritméticos com o valor de variáveis. + +- `print var` apresenta o valor da variável var. + +- `print vector@x` apresenta os primeiros `x` valores de um vetor `vector`. + +- `print *vector@x` apresenta os valores apontados por um vetor de ponteiros `vector`. + +- `step` avança o programa em uma linha de comando *no escopo global*, entrando em funções, etc. + +- `break x` coloca um ponto de interrupção da execução na linha `x`. + +- `break function` coloca um ponto de interrupção da execução no início de uma função `function`. + +- `info break` lista todos os pontos de interrupção; + +- `del x` apaga o breakpoint de número `x`, tal qual descrito por `info break`. + +- `clear function` retira os pontos de interrupção colocados na função `function`. + +- `display i` para cada comando seguinte, mostrar o valor de `i`. `undisplay n` cessa este comportamento para a variável de índice `n`. + +- `watch [expressão]` (*watchpoint*) interrompe a execução do programa toda vez que o valor de uma expressão se altera. + +- `whatis i`, ou `what i`, mostra o tipo da variável `i`. + +- `backtrace` (`bt`) no caso de um Segmentation Fault, aponta-se a linha em que este ocorreu e os valores das variáveis à este ponto. + +- `finish` executa a função atual e interrompe a execução quando esta termina, indicando onde no código esta retorna e com qual valor. + +- `quit` sai do debugger. + +## Comandos avançados + +- `target record-full` grava a execução e permite voltar para passos anteriores com `reverse-next`, `reverse-step`, `reverse-continue` (`rn`, `rs`). + +- `set var i = x` altera o valor da variável `i` para `x` e permite a continuidade da execução do código. \ No newline at end of file diff --git a/Introdução à Análise de Algoritmos/apostila-iaa b/Introdução à Análise de Algoritmos/apostila-iaa new file mode 160000 index 0000000..66fe50f --- /dev/null +++ b/Introdução à Análise de Algoritmos/apostila-iaa @@ -0,0 +1 @@ +Subproject commit 66fe50f7094e682862b1e86ce4aee4571725b7d6 diff --git a/Matemática Discreta I/Argumentos.md b/Matemática Discreta I/Argumentos.md new file mode 100644 index 0000000..491cf02 --- /dev/null +++ b/Matemática Discreta I/Argumentos.md @@ -0,0 +1,67 @@ +# Argumentos + +## 1. + +**(a)** "*Pode-se vir ao trabalho de ônibus ou carro. Fulano veio ao trabalho de ônibus, logo, não usou seu carro*". Este argumento é falacioso pois as alternativas não são mutuamente exclusivas: fulano pode ter percorrido diferentes partes do trajeto com cada um dos modos de transporte. + +**(b)** "Se estiver chovendo, fulano virá com um guarda-chuva. Fulano veio com um guarda-chuva, logo, choveu". Este argumento é falacioso pois o pressuposto e o consequente não se implicam mutuamente. Embora a ocorrência de chuva leve fulano a carregar seu guarda-chuva consigo, por outro lado a não ocorrência de chuva não é proibitiva para que fulano carregue seu guarda-chuva. + +**(c)** "Se estiver chovendo, fulano virá com um guarda-chuva. Não choveu, então fulano não virá com um guarda-chuva." A mesma falácia do argumento anterior, mas na sua forma negativa. + +## 2. + +**(a)** isLower(7, 4) ⟶ ¬ isPrime(7) ∴ ¬ isLower(7, 4) ⟶ isPrime(7) + +Se admitimos que ser ou não menor que quatro é condição para não ser ou ser, respectivamente, um número primo, então sim, a proposta é válida. Não obstante, essa condição não é coerente com a definição de número primo. + +**(b)** isEqual(l~1~, l~2~) ⟶ isEqual(a~1~, a~2~) ∴ ¬isEqual(l~1~, l~2~) ⟶ ¬ isEqual(a~1~, a~2~) + +A conclusão apresentada é correta (congruente com a definição de triângulo isóceles), mas a argumentação feita é inválida (falácia da negação do antecedente). + +## 3. + +Considerando p ≡ "hoje é terça feira" e q ≡ "João irá trabalhar", a proposição $(p \to q) \land p \to q$ sendo verdadeira equivale à: + +Se hoje é terça-feira então João irá trabalhar. + +Hoje é terça-feira. + +Logo, João irá trabalhar. + +## 4. + +De maneira análoga ao exemplo anterior, temos que: + +Se hoje é terça-feira então João irá trabalhar. + +João não irá trabalhar. + +Hoje não é terça-feira. + +## 5. + +**Modus ponendo tollens:** $\neg (p \land q), p \vdash \neg q$ + +Não é possível Pedro e Quércia ambos ganharem em uma mesma partida de xadrez. + +Pedro venceu a partida de xadrez. + +Logo, Quércia perdeu a partida. + +**Modus tollendo ponens:** $p \lor q, \neg p \vdash q$ + +Por certo, Pedro ou Quércia compareceriam à reunião. + +Pedro não compareceu. + +Então Quércia compareceu. + +| $p$ | V | V | F | F | +| --------------------------- |:---:|:---:|:---:|:---:| +| $q$ | V | F | V | F | +| $p \to q$ | V | F | V | V | +| $\neg p \to \neg q$ | V | V | F | V | +| $q \to p$ | V | V | F | V | +| $\neg q \to \neg p$ | V | F | V | V | +| $(p \to q) \land (q \to p)$ | V | F | F | V | +| $p \iff q$ | V | F | F | V | \ No newline at end of file diff --git a/Matemática Discreta I/Imagens/0369ea5b86b01fc8aeb895c8cb044b3f13f05215.png b/Matemática Discreta I/Imagens/0369ea5b86b01fc8aeb895c8cb044b3f13f05215.png new file mode 100644 index 0000000000000000000000000000000000000000..ada96ec0026ce510edb54ca4b63c571ed063b54d GIT binary patch literal 26886 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 Je5;Gs{|DLoFE0Q9 literal 0 HcmV?d00001 diff --git a/Matemática Discreta I/Lógica elementar.md b/Matemática Discreta I/Lógica elementar.md new file mode 100644 index 0000000..23b7b9f --- /dev/null +++ b/Matemática Discreta I/Lógica elementar.md @@ -0,0 +1,310 @@ +# Lógica elementar + +Respostas à [1ª lista de exercícios](https://classroom.google.com/u/0/c/MzgyMTU0Njc2MjQ1/m/MzgyMTYxMjEwMzg2/details) + +## 1. + +**(a)** $(q \land \lnot r) \to p$ + +"*Se o céu está estrelado e não está fazendo frio então Eva vai sair para uma caminhada*" + +**(b)** $q \to (\lnot r \to p)$ + +A proposição acima equivale à $q \to (r \lor p)$, conforme demonstra a seguinte **tabela verdade**: + +| $r$ | $p$ | $\lnot r \to p$ | $r \lor p $ | +|:---:|:---:|:---------------:|:-----------:| +| F | F | F | F | +| F | V | V | V | +| V | F | V | V | +| V | V | V | V | + +Logo, a oração fica: "*Se o céu está estrelado então está fazendo frio ou Eva vai sair para uma caminhada.*" + +**(c)** $\lnot(p \iff (q \lor r))$ + +Abordemos a proposição em partes: + +- $p \iff (q \lor r)$: Eva vai sair para uma caminhada se, e somente se, o céu está estrelado ou está fazendo frio. + +- $\lnot(p \iff (q \lor r))$ (a negação da proposta anterior): Eva **não** vai sair para uma caminhada se, e somente se, o céu está estrelado ou está fazendo frio. + +**(d)** $p \iff q$ + +**(e)** $(r \land \lnot q) \to \lnot p$ + +**(f)** $r \land p$ + +## 2. + +| $p$ | $q$ | $p \to q$ | $\lnot p \lor q $ | +|:---:|:---:|:---------:|:-----------------:| +| F | F | V | V | +| F | V | V | V | +| V | F | F | F | +| V | V | V | V | + +## 3. + +Se q é uma tautologia, $q \equiv V$ sempre. Enquanto, se r é uma contradição, $r \equiv F$ sempre. Logo, + +| $p$ | $q$ | $r$ | $p \lor q$ | $p \land r$ | +|:---:|:---:|:---:|:----------:|:-----------:| +| V | V | F | V | F | +| F | V | F | V | F | + +## 4. + +**(a)** Nota-se que o valor verdade de tais proposições são equivalentes na tabela verdade: + +| $p$ | $q$ | $r$ | $p \land (q \lor r)$ | $(p \land q) \lor (p \land r)$ | +|:---:|:---:|:---:|:--------------------:|:------------------------------:| +| F | F | F | F | F | +| F | V | F | F | F | +| F | F | V | F | F | +| F | V | V | F | F | +| V | V | V | V | V | +| V | V | F | V | V | +| V | F | V | V | V | +| V | F | F | F | F | + +**(b)** Tal qual anterioremente, + +| $p$ | $q$ | $r$ | $p \lor (q \land r)$ | $(p\lor q) \land (p \lor r)$ | +|:---:|:---:|:---:|:--------------------:|:----------------------------:| +| F | F | F | F | F | +| F | V | F | F | F | +| F | F | V | F | F | +| F | V | V | V | V | +| V | V | V | V | V | +| V | V | F | V | V | +| V | F | V | V | V | +| V | F | F | V | V | + +## 5. + +Demonstração da segunda lei de Morgan: + +| $p$ | $q$ | $\lnot (p \lor q)$ | $\lnot p \land \lnot q$ | +|:---:|:---:|:------------------:|:-----------------------:| +| V | V | F | F | +| V | F | F | F | +| F | V | F | F | +| F | F | V | V | + +## 6. + +A Lei de Morgan aplica-se de maneira equivalente na teoria dos conjuntos e na lógica proposicional. Veja que o complemento à intercessão entre dois conjuntos $A$ e $B$ é a união dos complementos de $A$ e $B$: + +![](/home/user/Public/USP/Sistemas%20de%20Informação/2º%20semestre/Matemática%20Discreta%20I/Imagens/0369ea5b86b01fc8aeb895c8cb044b3f13f05215.png) + +Assim o sendo, para $n$ conjuntos $P$ tem-se que: + +$$ +\left(\bigcap^n_{i = 1}P_i\right)^c = \bigcup^n_{i = 1} P_i^{\ c} +$$ + +e também: + +$$ +\left(\bigcup^n_{i = 1} P_i\right)^c = \bigcap^n_{i = 1} P_i^{\ c} +$$ + +## 7. + +**(a)** Tautologia + +| $p$ | $q$ | $(p \to q) \lor p$ | +|:---:|:---:|:------------------:| +| V | V | V | +| V | F | V | +| F | V | V | +| F | F | V | + +**(b)** Reescrevendo a equação em termos de $\land$ e $\lor$: + +$(p \to (q \to r)) \to ((p \to q) \to (p \to r)) \equiv \\ +\lnot (\lnot p \lor (\lnot q \lor r)) \lor (\lnot(\lnot p \lor q) \lor (\lnot p \lor r)) \equiv \\ +(p \land \lnot (\lnot q \lor r)) \lor ((p\land q) \lor (\lnot p \lor r)) \equiv \\ +(p \land (q \land \lnot r)) \lor ((p \land q) \lor (\lnot p \lor r)) \equiv \\ +((p \land q) \land (p \land \lnot r)) \lor ((p \land q) \lor (\lnot p \lor r)) +$ + +| $p$ | $q$ | $r$ | $((p \land q) \land (p \land \lnot r)) \lor ((p \land q) \lor (\lnot p \lor r))$ | +|:---:|:---:|:---:|:--------------------------------------------------------------------------------:| +| F | F | F | $(F \land F) \lor (F \lor V) \equiv V$ | +| F | V | F | $(F \land F) \lor (F \lor V) \equiv V$ | +| F | F | V | $(F \land F) \lor (F \lor V) \equiv V$ | +| F | V | V | $(F \land F) \lor (F \lor V) \equiv V$ | +| V | V | V | $(V \land F) \lor (V \lor V) \equiv V$ | +| V | V | F | $(V \land V) \lor (V \lor F) \equiv V$ | +| V | F | V | $(F \land F) \lor (F \lor V) \equiv V$ | +| V | F | F | $(F \land V) \lor (F \lor V) \equiv F$ | + +## 8. + +| $p$ | $p \lor \lnot p$ | $p \land \lnot p$ | +|:---:|:-------------------:|:--------------------:| +| F | $F \lor V \equiv V$ | $F \land V \equiv F$ | +| V | $V \lor F \equiv V$ | $V \land F \equiv F$ | + +## 9. + +$p \to (q \to r) \equiv \lnot p \lor (\lnot q \lor r) \equiv \lnot (p \land q) \lor (\lnot p \lor r) \\ +(p \to q)\to r \equiv \lnot(\lnot p \lor q) \lor r \equiv (p \land \lnot q) \lor r \equiv (p \lor r) \land (r \lor \lnot q) +$ + +| $p$ | $q$ | $r$ | $\lnot (p \land q) \lor (\lnot p \lor r)$ | $(p \lor r) \land (r \lor \lnot q)$ | +|:---:|:---:|:---:|:-----------------------------------------:|:-----------------------------------:| +| F | F | F | $V \lor V \equiv V$ | $F \land V \equiv F$ | +| F | V | F | $V \lor V \equiv V$ | $F \land F \equiv F$ | +| F | F | V | $V \lor V \equiv V$ | $V \land V \equiv V$ | +| F | V | V | $V \lor V \equiv V$ | $V \land V \equiv V$ | +| V | V | V | $F \lor V \equiv V$ | $V \land V \equiv V$ | +| V | V | F | $F \lor F \equiv F$ | $V \land F \equiv F$ | +| V | F | V | $V \lor V \equiv V$ | $V \land V \equiv V$ | +| V | F | F | $V \lor F \equiv V$ | $V \land V \equiv V$ | + +## 10. + +Conforme a seguinte tabela verdade, isso pode ser feito de duas formas: reunindo-se apenas com o representante turco ou, senão, apenas com os representantes turco e russo. + +| $a$ | $t$ | $r$ | $(a \land \lnot t) \lor (\lnot a \land t)$ | $(r \lor t)$ | $\lnot (a \land r)$ | +|:---:|:---:|:---:|:------------------------------------------:|:------------:|:-------------------:| +| F | F | F | F | F | V | +| F | V | F | V | V | V | +| F | F | V | F | V | V | +| F | V | V | V | V | V | +| V | V | V | F | V | F | +| V | V | F | F | V | V | +| V | F | V | V | V | F | +| V | F | F | V | F | V | + +## 11. + +O **princípio da equivalência** descreve que para quaisquer proposições $p$ e $q$ equivalentes entre si que contenham os conectivos $\lnot$, $\land$ ou $\lor$, mas não necessariamente todos, as proposições **duais** destas (proposições obtidas pela substituição de cada $\land$ por $\lor$ e vice-versa; e de cada constante $V$ por $F$ e vice versa) também são equivalentes entre si. + +Por exemplo, + +$p \land (p \lor p) \iff p$ + +Como, por hipótese, temos que $p \equiv q$, então + +$p \land (p \lor q) \iff p$ + +Podemos ainda adicionar à formulação anterior o elemento neutro $\lor\ F$: + +$(p \lor F) \land (p \lor q) \iff p$ + +E então simplificá-la: + +$\underbrace{p \lor \underbrace{(F \land q)}_{\text{Identidade}}}_{\text{Distributiva}} \iff p \\\ \\ +p \lor F \iff p \\ +p \iff p +$ + +Consideremos agora a formulação dual deste mesmo teorema: +$p \lor (p \land q) \iff p \\ +(p \land V) \lor (p \land q) \iff p \\ +p \land (V \lor q) \iff p \\ +p \land V \iff p \\ +p \iff p +$ + +Fica demonstrado que realizando as substituições propostas, "duais", alcançamos resultados equivalentes. + +## 12. + +Podemos descrever o XOR em termos de conjunção e disjunção da seguinte forma: + +$$ +p\ \underline \lor\ q \equiv (p \land \lnot q) \lor (\lnot p \land q) +$$ + +Assim, para este temos a seguinte tabela verdade: + +| $p$ | $q$ | $(p \land \lnot q) \lor (\lnot p \land q)$ | +|:---:|:---:|:------------------------------------------:| +| F | V | V | +| F | F | F | +| V | V | F | +| V | F | V | + +## 13. + +**(a)** Vamos simplificar a proposição e admitir que esta seja falsa: + +$$ +(p \iff (\neg q \lor r)) \to (\neg p \to q) \equiv +(p \iff (\neg q \lor r)) \to (p \lor q) \equiv F +$$ + +Analizemos a tabela verdade para identificar os valores de $(p \iff (\neg q \lor r))$ e $(p \lor q)$ que levam a este resultado: + +| $(p \iff (\neg q \lor r))$ | $(p \lor q)$ | $(p \iff (\neg q \lor r)) \to (p \lor q)$ | +|:--------------------------:|:------------:|:-----------------------------------------:| +| V | V | V | +| V | F | F | +| F | V | V | +| F | F | V | + +Apenas quando $(p \iff (\neg q \lor r)) \equiv V$ e $(p \lor q) \equiv F$ obtêm-se tal resultado. Para $(p \lor q) \equiv F$, $p \equiv q \equiv F$. Substituindo estes valores, temos: + +$(F \iff (\neg F \lor r)) \equiv V \\ +(F \iff (V \lor r)) \equiv V \\ +F \iff V \equiv V +$ + +Chegamos a um absurdo. Assim o sendo, não é possível que esta expressão seja falsa: trata-se de uma **tautologia**. + +**(b)** $(p \to (q \lor r)) \lor (p \lor q) \equiv (p \to q) \lor (p \to r)\ \cancel{\lor\ (p \to q)}\ \equiv p \to (q \lor r) \equiv F$ + +Para produzir esse resultado bastaria que $p \equiv V$ e $q \equiv r \equiv F$. Qualquer outra configuração não produziria resultado verdadeiro. Não se reduziu ao absurdo, esta não se trata de uma tautologia ou contradição. + +## 14. + +**(a)** $p \land q \equiv \neg(\neg p \lor \neg q)$ + +**(b)** $p \to q \equiv \neg p \lor q$ + +**(c)** $p \to q \equiv \neg(p \land \neg q)$ + +**(d)** $p \land q \equiv \neg (p \to \neg q)$ + +**(e)** $p \lor q \equiv \neg p \to q$ + +## 15. + +**(a)** + +| $p$ | $q$ | $p \uparrow q$ | $\neg p \uparrow \neg q$ | +|:---:|:---:|:--------------:|:------------------------:| +| V | V | F | V | +| V | F | V | V | +| F | V | V | V | +| F | F | V | F | + +**(b)** + +$\neg p \iff p \uparrow p$ + +$p \land q \iff (p \uparrow q) \uparrow (p \uparrow q)$ + +$p \lor q \iff (p \uparrow p) \uparrow (q \uparrow q)$ + +**(c)** + +$(p \to q) \iff p \uparrow (q \uparrow q) \iff p \uparrow (p \uparrow q)$ + +$(p \iff q) \iff (p \uparrow q) \uparrow ((p \uparrow p) \uparrow (q \uparrow q))$ + +## 16. + +**(a)** $(p \iff (((\neg q) \lor r) \to p)) \equiv \\ +p \iff ((\neg q \lor r) \to p) \equiv \\ +(p \iff \neg q \lor r) \to (p \iff p) \equiv \\ +p \iff \neg q \lor r\ \underbrace{\to p}_{\text{redundante}} \equiv \\ +p \iff \neg q \lor r +$ + +**(b)** Como assim? O próprio enunciado demonstrou. \ No newline at end of file diff --git a/Matrizes, Vetores e Geometria Analítica/01 - Definição de Espaço Vetorial.md b/Matrizes, Vetores e Geometria Analítica/01 - Definição de Espaço Vetorial.md new file mode 100644 index 0000000..ec8c2eb --- /dev/null +++ b/Matrizes, Vetores e Geometria Analítica/01 - Definição de Espaço Vetorial.md @@ -0,0 +1,62 @@ +# Definição de *Espaço Vetorial* + +Todo conjunto $V \not = \empty$ definido sobre um campo qualquer $\mathbb D$[^1] (por exemplo, $\R$ ou $\mathbb C$) em que existe: + +1. adição $(u, v) \in V \mapsto u + v \in V$ + +2. e multiplicação $(a, u), a \in \R, u \in V \mapsto au \in V$ + +com determinados axiomas (8 no total). + +## I. Propriedades da adição + +Para $\forall u, v, w \in V$: + +1. Comutação + +$$ +u + v = v + u +$$ + +2. Associação + +$$ +u + (v + w) = (u + v) + w +$$ + +3. Existe um elemento neutro, aqui indicado por $e$, que não altera o resultado de uma adição ao ser acrescentado nesta + +$$ +\exist\ e \in V \mid u + e = u +$$ + +4. Para todo elemento $u$ existe um *oposto* $(-u)$ tal que: + +$$ +\exist\ (-u) \in V \mid u + (-u) = e +$$ + +## II. Propriedades da multiplicação + +Para $\forall a, b \in \R$ e $\forall u, v \in V$: + +1. $a(bu) = (ab)u$ + +2. $(a + b)u = au + bu$ + +3. $a(u + v) = au + av$ + +4. $1u = u$ + +## O espaço vetorial $\R^n$ + +As propriedades anteriormente descritas se aplicam a qualquer n-upla de números ordenados: + +$ +(x_1, y_1) + (x_2, y_2) = (x_1 + x_2, y_1 + y_2), \forall x, y \in \R^2 \\ +(x_1, y_1, z_1) + (x_2, y_2, z_2) = (x_1 + x_2, y_1 + y_2, z_1 + z_2), \forall x, y, z \in \R^3 \\ +\vdots \\ +(a_1, \dots a_n) + (b_1, \dots, b_n) = (a_1 + b_1, \dots a_n + b_n), \forall a_1, \dots, a_n, b_1, \dots, b_n \in \R^n +$ + +[^1]: Daqui por diante assumiremos $\R$, mas tais propriedades aplicariam-se a qualquer outro campo. \ No newline at end of file diff --git a/Matrizes, Vetores e Geometria Analítica/02 - Propriedades do Espaço Vetorial.md b/Matrizes, Vetores e Geometria Analítica/02 - Propriedades do Espaço Vetorial.md new file mode 100644 index 0000000..d359306 --- /dev/null +++ b/Matrizes, Vetores e Geometria Analítica/02 - Propriedades do Espaço Vetorial.md @@ -0,0 +1,115 @@ +# Propriedades do Espaço Vetorial + +Admitindo $\forall a, b \in \R$ e $\forall u, v \in V$, + +## P1 + +$ae = e$ + +**Prova:** Dados os axiomas I-3, I-4 e II-3 e da definição de espaço vetorial, têm-se: + +$ae = a(e) = \overbrace{a\underbrace{(e + e)}_{\text{I-3}}}^{\text{II-3}} = ae +ae\\ \implies \underbrace{ae + e}_{\text{I-3}} = ae + ae\\ \implies ae + ae + (-ae ) = ae + ae\\ \implies ae + (-ae) = ae + ae + (-ae)\\ \implies \overbrace{e = \underbrace{ae + \cancel e}_{I-3}}^{I-4}$ + +## P2 + +$0u = e$ + +**Prova:** $0u = u(0 + 0) = 0u + 0u \implies 0u + (-0u) = 0u + 0u + (-0u) \implies e = 0u + \cancel e$ + +## P3 + +$au = e \iff a = 0 \lor u = e$. + +**Prova:** Suponhamos que $a \not= 0$, daí existe o número real $a^{-1}$. Assim, temos: + +$$ +au = e \implies \dfrac{au}a = \dfrac ea +$$ + +Aplicando-se os axiomas II-1, II-4 e a propriedade 1: + +$$ +\underbrace{\dfrac{au}a = \left(\dfrac aa\right) u}_{\text{II-1}} = +\underbrace{1u = u}_{\text{II-4}} \\\ \\ +\dfrac ea = \underbrace{a^{-1}e = e}_{\text{P1}}\\\ \\ +\therefore u = e +$$ + +## P4 + +$(-a)u = a(-u) = -(au)$ + +**Prova:** Aplicando-se o axioma I-4 e a propriedade 2, temos: + +$(au) + (-au) = e \\ +\implies au + (-au) = au + (-a)u \\ +\implies au + (-au) + (-au) = au + (-a)u + (-au) \\ +\implies (-au) + e = (-a)u + e \\ +\implies (-au) = (-a)u +$ + +E um raciocínio análogo demonstrará que $a(-u) = -(au)$. + +## P5 + +$(a - b)u = au - bu$ + +**Prova:** $(a - b)u = (a + (-b))u = au + (-bu) = au - bu$ + +## P6 + +$b\left(\displaystyle \sum^n_{i = 1} a_iu_i\right) = \sum^n_{i = 1} (ba_i)u_i$ + +**Prova:** Faz-se por indução a partir dos axiomas II-1 e II-3. + +## P7 + +O vetor nulo ($e$) de qualquer espaço vetorial $V$ é único. + +**Prova:** digamos que, sei lá, existe $g$ que, tal qual $e$, satisfaz a propriedade I-3 + +$$ +\exist\ e \in V \mid u + e = u +$$ + +Assim, $e = e + u = u + g = g \implies e = g + +$. + +## P8 + +Para cada vetor $u$ de um espaço vetorial $V$ existe um único vetor $(-u)$ oposto de $u$. + +**Prova:** Digamos que existe $g$ tal que $u + g = e$. Daí então, + +$$ +-u = -u + e = -u (u + g) = (-u + u) + g = e + g = g +$$ + +## P9 + +Para cada $u \in V$ tem-se $-(-u) = u$. + +**Prova:** $u + (-u) = e \implies u = -(-u) + e \implies u = -(-u)$ + +## P10 + +$u + v = u + w \iff v = w$ + +**Prova:** + +$$ +(-u) + (u + v) = (-u) + (u + w) \implies ((-u) + u) + v = (-u) + (u + w) \\ +e + v = e + w \\ +v = w +$$ + +## P11 + +Existe um único vetor $v$ tal que $u + v = w$. + +**Prova:** + +$(-u) + u + v = (-u) + w \implies e + v = w + (-u) \implies v = w + (-u)$ + + diff --git a/Matrizes, Vetores e Geometria Analítica/03 - Definição de sub-espaço vetorial.md b/Matrizes, Vetores e Geometria Analítica/03 - Definição de sub-espaço vetorial.md new file mode 100644 index 0000000..ef315c7 --- /dev/null +++ b/Matrizes, Vetores e Geometria Analítica/03 - Definição de sub-espaço vetorial.md @@ -0,0 +1,31 @@ +# Definição de sub-espaço vetorial + +Seja $V$ um espaço vetorial sobre $\R$. Um **sub-espaço vetorial** $W$ de $V$ é um subconjunto $W \subset V$ tal que possui as mesmas propriedades de espaço vetorial (possui um elemento neutro, possui adição e multiplicação) restritas a um alguns dos elementos presentes no espaço $V$ (senão todos). + +## Combinações Lineares + +Tomemos um subconjunto $S = {u_1, \dots , u_n} \subset V$. Indiquemos por $[S]$ o seguinte subconjunto: + +$$ +[S] = \{a_1u_1 + \dots + a_nu_n \mid a_1, \dots a_n \in \R\} +$$ + +O sub-espaço $[S]$ recebe o nome de *sub-espaço gerado por $S$*. Cada elemento de $[S]$ é uma combinação linear de $S$. + +Por enquanto um conjunto $S$ seja finito, o conjunto $[S]$, exemplificado acima, abarca o produto de todos os valores de $S$ por todos os valores em $\R$ e é, portanto, **infinito**. + +## Espaços vetoriais finitamente gerados + +Um espaço vetorial $V$ é finitamente gerado se existe $S \subset V$, $S$ finito, tal que $V = [S]$. Por exemplo, observemos, em $\R^3$, o conjunto: + +$$ +S = \{(1,0,0), (0,1,0), (0,0,1)\} +$$ + +Onde + +$$ +a = (1,0,0);\ b = (0,1,0);\ c = (0,0,1) +$$ + +Podemos dizer que os vetores em $S$ correspondem à, ou geram um, espaço $\R^3$, e $[S]$ abarca a todos os valores contidos neste. \ No newline at end of file diff --git a/Matrizes, Vetores e Geometria Analítica/04 - Dependência linear.md b/Matrizes, Vetores e Geometria Analítica/04 - Dependência linear.md new file mode 100644 index 0000000..baab870 --- /dev/null +++ b/Matrizes, Vetores e Geometria Analítica/04 - Dependência linear.md @@ -0,0 +1,5 @@ +# Dependência linear + +Seja $V$ um espaço vetorial sobre $\R$. + +