Prévia do material em texto
21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 1/15 Página inicial / Meus cursos / SALA88IMEMAT / Listas de Exercícios (valendo nota) / Lista 3 Iniciado em domingo, 13 Mar 2022, 09:42 Estado Finalizada Concluída em domingo, 13 Mar 2022, 10:20 Tempo empregado 37 minutos 19 segundos Avaliar 8,50 de um máximo de 10,00(85%) https://ava.pr1.uerj.br/course/view.php?id=4516 https://ava.pr1.uerj.br/ https://ava.pr1.uerj.br/course/view.php?id=4516 https://ava.pr1.uerj.br/course/view.php?id=4516#section-8 https://ava.pr1.uerj.br/mod/quiz/view.php?id=187929 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 2/15 Questão 1 Parcialmente correto Atingiu 0,50 de 1,00 A função solver1 recebe uma matriz a e um lado direito b. 1. function [x infor res] = solver1(a,b) 2. [m n] = size(a); 3. x = zeros(n,1); 4. x(m) = b(m)/a(m,m); 5. for k = m-1:-1:1 6. x(k) = (b(k) - a(k,k+1:m)*x(k+1:m))/a(k,k); 7. endfor 8. res=norm(a*x-b) 9. infor = 1; 10. endfunction Este código não funcionará se os parâmetros de entrada tiverem algumas características. Para evitar esses problemas, podemos colocar os seguintes pedaços de código. Escolha uma ou mais: a. Não sei. b. O código está correto, independente dos parâmetros de entrada, ele vai funcionar. c. Colocar entre as linhas 2 e 3 if (m != n) infor = 0; return; endif d. Colocar em algum lugar entre as linhas 2 e 4, exclusive if (size(b,1)!= m) infor = 0; return; endif Correto, pois se o vetor b tiver um número de linhas menor do que o número de linhas da matriz a, ocorrerá um erro na linha 6. Caso b tenha um número de linhas maior do que o número de linhas de a, ocorrerá um erro na linha 8. e. Colocar em algum lugar entre as linhas 2 e 4, exclusive for i = 1:size(b,1) if(b(i) == 0) infor = 0; return; endif endfor Sua resposta está parcialmente correta. 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 3/15 Questão 2 Correto Atingiu 1,00 de 1,00 Você selecionou corretamente 1. Este código implementa a substituição para trás (retrosubstituição), no entanto, não tem proteção alguma para dados errados nos parâmetros de entrada a e b. Caso o det(a) seja muito próximo de 0, o programa não vai funcionar corretamente, caso a não seja uma matriz quadrada também dará erro, caso b não tenha o mesmo número de linhas de a, também ocorrerá erro. Há ainda outros erros possíveis, mas os mais importantes são estes. As respostas corretas são: Colocar entre as linhas 2 e 3 if (m != n) infor = 0; return; endif, Colocar em algum lugar entre as linhas 2 e 4, exclusive if (size(b,1)!= m) infor = 0; return; endif Seja um sistema linear Ax=b, com , e . O que podemos afirmar sobre este sistema? Utilize todos as casas decimais em seu computador ou calculadora para realizar as operações, mas apresente o resultado final arredondando para duas casas decimais. a. Há infinitas soluções. b. Não há solução c. Há apenas uma solução. A soma das coordenadas do vetor solução é igual 4,00 e o produto das coordenadas do vetor solução é igual a -432,00 Correto. d. Não sei (0). e. Há apenas uma solução. A soma das coordenadas do vetor solução é igual 39,00 e o produto das coordenadas do vetor solução é igual a 333,00 A = ⎛ ⎝ ⎜⎜⎜ −5, 5 0 0 0 3, 1 2, 6 0 0 −3, 3 −7, 6 9, 2 0 9, 3 4, 7 9, 5 5, 3 ⎞ ⎠ ⎟⎟⎟ x = ⎛ ⎝ ⎜⎜⎜ x1 x2 x3 x4 ⎞ ⎠ ⎟⎟⎟ b = ⎛ ⎝ ⎜⎜⎜ −108 −52, 6 −48, 4 −42, 4 ⎞ ⎠ ⎟⎟⎟ Sua resposta está correta. Observe que o determinante da matriz dos coeficientes é diferente de zero, logo o sistema terá apenas uma solução. Faça a substituição para trás. A resposta correta é: Há apenas uma solução. A soma das coordenadas do vetor solução é igual 4,00 e o produto das coordenadas do vetor solução é igual a -432,00 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 4/15 Questão 3 Correto Atingiu 1,00 de 1,00 Seja um sistema linear Ax=b, com , e . O que podemos afirmar sobre este sistema? Utilize todos as casas decimais em seu computador ou calculadora para realizar as operações, mas apresente o resultado final arredondando para duas casas decimais. a. Há apenas uma solução. A soma das coordenadas do vetor solução é igual 66,00 e o produto das coordenadas do vetor solução é igual a 2590,00 b. Há apenas uma solução. A soma das coordenadas do vetor solução é igual 25,00 e o produto das coordenadas do vetor solução é igual a 1120,00 c. Não sei (0). d. Há infinitas soluções. Correto. Quando da solução da incógnita vai aparecer , levando a que possa ser qualquer valor. e. Não há solução A = ⎛ ⎝ ⎜⎜⎜ −5, 2 0 0 0 1, 4 0 0 0 −4, 4 −2, 2 7, 3 0 1, 8 2, 1 7 4, 6 ⎞ ⎠ ⎟⎟⎟ x = ⎛ ⎝ ⎜⎜⎜ x1 x2 x3 x4 ⎞ ⎠ ⎟⎟⎟ b = ⎛ ⎝ ⎜⎜⎜ −30, 4 −7 79, 1 18, 4 ⎞ ⎠ ⎟⎟⎟ x2 0 = 0x2 x2 Sua resposta está correta. Observe que a posição e a matriz é triangular superior, logo a solução depende do valor do lado direito quando for a hora de resolver a incógnita . Utilizando a álgebra linear, como a matriz tem determinante igual a zero, você tem que analisar se o posto da matriz dos coeficientes é igual ou não ao posto da matriz aumentada. Caso seja igual, o sistema terá infinitas soluções, caso o posto da matriz aumentada seja maior, o sistema é impossível e não tem solução. A resposta correta é: Há infinitas soluções. = 0a22 x2 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 5/15 Questão 4 Parcialmente correto Atingiu 0,67 de 1,00 Um sistema linear cuja matriz de coeficientes é triangular superior e quadrada, podemos afirmar que: (Selecione todas as respostas que considerar corretas) a. Não sei. b. Se a ordem de A é igual a n, tem um custo computacional de solução de no máximo operações. É verdade, conferir a aula sobre quantidade de operações aritméticas para a solução de sistemas triangulares. c. Pode ser resolvido em paralelo. d. Tem solução única caso todos os elementos da diagonal principal de sejam diferentes de zero. e. Caso tenha alguma entrada na diagonal principal igual a zero, pode ter nenhuma solução ou infinitas soluções É verdade. Usando a álgebra linear isso pode ser explicado pelo posto da matriz dos coeficientes ter o mesmo posto da matriz aumentada. Caso isso seja verdade, vão haver infinitas soluções. Caso o posto da matriz aumentada seja maior, o sistema será impossível. Sem usar a álgebra linear, a situação que pode se chegar é a seguinte: suponha que a diagonal igual a zero ocorre na linha . Quando da solução da substituição para trás depois de resolver as incógnitas teremos que resolver . Podem ocorrer dois casos: 1. , neste caso haverá infinitas soluções; 2. , neste caso não haverá soluções, o sistema é impossível. Ax = b n2 A j , …xj+1 xn 0 + + ⋯ + =xj aj,(j+1)xj+1 aj,nxn bj 0 = − − ⋯ − = 0xj bj aj,(j+1)xj+1 aj,nxn 0 = − − ⋯ − ≠ 0xj bj aj,(j+1)xj+1 aj,nxn Sua resposta está parcialmente correta. Você selecionou corretamente 2. As respostas corretas são: Caso tenha alguma entrada na diagonal principal igual a zero, pode ter nenhuma solução ou infinitas soluções, Se a ordem de A é igual a n, tem um custo computacional de solução de no máximo operações. , Tem solução única caso todos os elementos da diagonal principal de sejam diferentes de zero.A https://ava.pr1.uerj.br/filter/tex/displaytex.php?texexp=n%5E2 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 6/15 Questão 5 Parcialmente correto Atingiu 0,33 de 1,00 A função solver1 recebe uma matriz a e um lado direito b. Analiseo código e marque todas as alternativas corretas. 1. function [x infor] = solver1(a,b) 2. [m n] = size(a); 3. x = zeros( m , 1); 4. x(1) = b(1)/a(1,1); 5. for k = 2:m 6. soma = 0; 7. for j = 1:(k-1) 8. soma = soma + a( k , j ) * x( j ); 9. endfor 10. x( k ) = ( b(k) - soma)/a( k , k); 11. endfor 12. infor = 1; 13. endfunction Escolha uma ou mais: a. O código está supondo que a matriz é triangular superior e está tentando resolver o sistema ax=b através da substituição para trás (ou retrosubstituição). b. Não sei. c. Caso o determinante de a seja igual a zero, o código não vai funcionar. d. O código está supondo que a matriz é triangular inferior e está tentando resolver o sistema ax=b através da substituição para frente. e. Caso a matriz a seja uma matriz diagonal e sem nenhum zero em sua diagonal principal, o código vai funcionar e resolver o sistema corretamente. Sua resposta está parcialmente correta. Você selecionou corretamente 1. As respostas corretas são: O código está supondo que a matriz é triangular inferior e está tentando resolver o sistema ax=b através da substituição para frente., Caso o determinante de a seja igual a zero, o código não vai funcionar., Caso a matriz a seja uma matriz diagonal e sem nenhum zero em sua diagonal principal, o código vai funcionar e resolver o sistema corretamente. 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 7/15 Questão 6 Correto Atingiu 1,00 de 1,00 Seja um sistema linear Ax=b, com , e . O que podemos afirmar sobre este sistema? Utilize todos as casas decimais em seu computador ou calculadora para realizar as operações, mas apresente o resultado final arredondando para duas casas decimais. a. Não sei (0). b. Há apenas uma solução. A soma das coordenadas do vetor solução é igual 4,00 e o produto das coordenadas do vetor solução é igual a -432,00 c. Não há solução Correto. Quando da solução da incógnita vai aparecer , com , mostrando que o sistema é impossível. d. Há infinitas soluções. e. Há apenas uma solução. A soma das coordenadas do vetor solução é igual 39,00 e o produto das coordenadas do vetor solução é igual a 333,00 A = ⎛ ⎝ ⎜⎜⎜ −5, 5 0 0 0 3, 1 0 0 0 −3, 3 −7, 6 9, 2 0 9, 3 4, 7 9, 5 5, 3 ⎞ ⎠ ⎟⎟⎟ x = ⎛ ⎝ ⎜⎜⎜ x1 x2 x3 x4 ⎞ ⎠ ⎟⎟⎟ b = ⎛ ⎝ ⎜⎜⎜ −108 −2, 9 −5 −42, 4 ⎞ ⎠ ⎟⎟⎟ x2 0 = cx2 c ≠ 0 Sua resposta está correta. Observe que a posição e a matriz é triangular superior, logo a solução depende do valor do lado direito quando for a hora de resolver a incógnita . Utilizando a álgebra linear, como a matriz tem determinante igual a zero, você tem que analisar se o posto da matriz dos coeficientes é igual ou não ao posto da matriz aumentada. Caso seja igual, o sistema terá infinitas soluções, caso o posto da matriz aumentada seja maior, o sistema é impossível e não tem solução. A resposta correta é: Não há solução = 0a22 x2 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 8/15 Questão 7 Correto Atingiu 1,00 de 1,00 A função solver2 recebe uma matriz a e um lado direito b. 1. function [x infor res] = solver2(a,b) 2. [m n] = size(a); 3. x = zeros(n,1); 4. x(1) = b(1)/a(1,1); 5. for k = 2:m 6. x(k) = (b(k) - a(k,1:k-1)*x(1:k-1))/a(k,k); 7. endfor 8. res=norm(a*x-b) 9. infor = 1; 10. endfunction Este código não funcionará se os parâmetros de entrada tiverem algumas características. Para evitar esses problemas, podemos colocar os seguintes pedaços de código. Escolha uma ou mais: a. Colocar em algum lugar entre as linhas 2 e 4, exclusive for i = 1: m if (a(i , i) < 10^(-14)) infor = 0; res = Inf; return endif endfor Correto, caso haja uma entrada muito próxima ou igual a zero na diagonal principal a solução não deverá correta. As entradas da diagonal principal de uma matriz triangular aparecem nos dividendos nas linhas 4 e 6 do código, podendo acarretar soluções erradas. b. O código está correto, independente dos parâmetros de entrada, ele vai funcionar. c. Não sei. d. Colocar em algum lugar entre as linhas 1 e 5, exclusive cont = 0; for i = 1:size(b,1) if(b(i) == 0) cont=cont+1; endif endfor if( size(b,1) == cont) infor = 0; return; endif e. Colocar entre as linhas 2 e 4, exclusive if (deta <= 0) infor = 0; return; 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 9/15 endif Sua resposta está correta. Este código implementa a substituição para frente, no entanto, não tem proteção alguma para dados errados nos parâmetros de entrada a e b. Caso o det(a) seja muito próximo de 0, o programa não vai funcionar corretamente, caso a não seja uma matriz quadrada também dará erro, caso b não tenha o mesmo número de linhas de a, também ocorrerá erro. Há ainda outros erros possíveis, mas os mais importantes são estes. A resposta correta é: Colocar em algum lugar entre as linhas 2 e 4, exclusive for i = 1: m if (a(i , i) < 10^(-14)) infor = 0; res = Inf; return endif endfor 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 10/15 Questão 8 Correto Atingiu 1,00 de 1,00 A função solver1 recebe uma matriz a e um lado direito b. 1. function [x infor res] = solver1(a,b) 2. [m n] = size(a); 3. x = zeros(n,1); 4. x(m) = b(m)/a(m,m); 5. for k = m-1:-1:1 6. x(k) = (b(k) - a(k,k+1:m)*x(k+1:m))/a(k,k); 7. endfor 8. res=norm(a*x-b) 9. infor = 1; 10. endfunction Este código não funcionará se os parâmetros de entrada tiverem algumas características. Para evitar esses problemas, podemos colocar os seguintes pedaços de código. Escolha uma ou mais: a. Colocar em algum lugar entre as linhas 2 e 4, exclusive if (size(b,1)!= m) infor = 0; return; endif Correto, pois se o vetor b tiver um número de linhas menor do que o número de linhas da matriz a, ocorrerá um erro na linha 6. Caso b tenha um número de linhas maior do que o número de linhas de a, ocorrerá um erro na linha 8. b. O código está correto, independente dos parâmetros de entrada, ele vai funcionar. c. Colocar entre as linha 2 e 4, exclusive for i = 1 : m for j = 1 : n if( a(i,j) == 0) infor = 0; return; endif endfor endfor d. Colocar em algum lugar entre as linhas 2 e 4, exclusive for i = 1: m if (a(i , i) < 10^(-14)) infor = 0; res = Inf; return endif endfor Correto, caso haja uma entrada muito próxima ou igual a zero na diagonal principal a solução não deverá correta. As entradas da diagonal principal de uma matriz triangular aparecem nos dividendos nas linhas 4 e 6 do código, podendo acarretar soluções erradas. 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 11/15 e. Não sei. Sua resposta está correta. Este código implementa a substituição para trás (retrosubstituição), no entanto, não tem proteção alguma para dados errados nos parâmetros de entrada a e b. Caso o det(a) seja muito próximo de 0, o programa não vai funcionar corretamente, caso a não seja uma matriz quadrada também dará erro, caso b não tenha o mesmo número de linhas de a, também ocorrerá erro. Há ainda outros erros possíveis, mas os mais importantes são estes. As respostas corretas são: Colocar em algum lugar entre as linhas 2 e 4, exclusive for i = 1: m if (a(i , i) < 10^(-14)) infor = 0; res = Inf; return endif endfor, Colocar em algum lugar entre as linhas 2 e 4, exclusive if (size(b,1)!= m) infor = 0; return; endif 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 12/15 Questão 9 Correto Atingiu1,00 de 1,00 A função solver2 recebe uma matriz a e um lado direito b. 1. function [x infor res] = solver2(a,b) 2. [m n] = size(a); 3. x = zeros(n,1); 4. x(1) = b(1)/a(1,1); 5. for k = 2:m 6. x(k) = (b(k) - a(k,1:k-1)*x(1:k-1))/a(k,k); 7. endfor 8. res=norm(a*x-b) 9. infor = 1; 10. endfunction Este código não funcionará se os parâmetros de entrada tiverem algumas características. Para evitar esses problemas, podemos colocar os seguintes pedaços de código. Escolha uma ou mais: a. Colocar em algum lugar entre as linhas 2 e 4, exclusive for i = 1:size(b,1) if(b(i) == 0) infor = 0; return; endif endfor b. Colocar em algum lugar entre as linhas 1 e 5, exclusive cont = 0; for i = 1:size(b,1) if(b(i) == 0) cont=cont+1; endif endfor if( size(b,1) == cont) infor = 0; return; endif c. Não sei. d. O código está correto, independente dos parâmetros de entrada, ele vai funcionar. e. Colocar em algum lugar entre as linhas 2 e 4, exclusive if (size(b,1)!= m) infor = 0; return; endif Correto, pois se o vetor b tiver um número de linhas menor do que o número de linhas da matriz a, ocorrerá um erro na linha 6. Caso b tenha um número de linhas maior do que o número de linhas de a, ocorrerá um erro na linha 8. 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 13/15 Sua resposta está correta. Este código implementa a substituição para frente, no entanto, não tem proteção alguma para dados errados nos parâmetros de entrada a e b. Caso o det(a) seja muito próximo de 0, o programa não vai funcionar corretamente, caso a não seja uma matriz quadrada também dará erro, caso b não tenha o mesmo número de linhas de a, também ocorrerá erro. Há ainda outros erros possíveis, mas os mais importantes são estes. A resposta correta é: Colocar em algum lugar entre as linhas 2 e 4, exclusive if (size(b,1)!= m) infor = 0; return; endif 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 14/15 Questão 10 Correto Atingiu 1,00 de 1,00 A função solver1 recebe uma matriz a e um lado direito b. 1. function [x infor res] = solver1(a,b) 2. [m n] = size(a); 3. x = zeros(n,1); 4. x(m) = b(m)/a(m,m); 5. for k = m-1:-1:1 6. x(k) = (b(k) - a(k,k+1:m)*x(k+1:m))/a(k,k); 7. endfor 8. res=norm(a*x-b) 9. infor = 1; 10. endfunction Este código não funcionará se os parâmetros de entrada tiverem algumas características. Para evitar esses problemas, podemos colocar os seguintes pedaços de código. Escolha uma ou mais: a. O código está correto, independente dos parâmetros de entrada, ele vai funcionar. b. Colocar em algum lugar entre as linhas 2 e 4, exclusive for i = 1:size(b,1) if(b(i) == 0) infor = 0; return; endif endfor c. Colocar entre as linhas 2 e 3 if (m != n) infor = 0; return; endif Correto, pois aqui está testando se a matriz é quadrada. O código só tem garantia de funcionar corretamente, resolvendo um sistema triangular, se a matriz for quadrada. d. Colocar entre as linhas 2 e 4, exclusive if (deta <= 0) infor = 0; return; endif e. Não sei. Sua resposta está correta. 21/03/2022 10:59 Lista 3: Revisão da tentativa https://ava.pr1.uerj.br/mod/quiz/review.php?attempt=266390&cmid=187929 15/15 Este código implementa a substituição para trás (retrosubstituição), no entanto, não tem proteção alguma para dados errados nos parâmetros de entrada a e b. Caso o det(a) seja muito próximo de 0, o programa não vai funcionar corretamente, caso a não seja uma matriz quadrada também dará erro, caso b não tenha o mesmo número de linhas de a, também ocorrerá erro. Há ainda outros erros possíveis, mas os mais importantes são estes. A resposta correta é: Colocar entre as linhas 2 e 3 if (m != n) infor = 0; return; endif ◄ Apoio à programação da Lista 2 Seguir para... Apoio à programação da Lista 3 https://ava.pr1.uerj.br/mod/vpl/view.php?id=187928&forceview=1 https://ava.pr1.uerj.br/mod/vpl/view.php?id=187930&forceview=1