<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>http://wiki.nosdigitais.teia.org.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V1z</id>
	<title>Pontão Nós Digitais - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.nosdigitais.teia.org.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V1z"/>
	<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/Especial:Contribui%C3%A7%C3%B5es/V1z"/>
	<updated>2026-04-24T04:06:08Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41657</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41657"/>
		<updated>2026-03-25T16:55:33Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* As ORGs que recomendo para 2026 = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Imagem:Gsoc-2026.jpg|right|500px]]&lt;br /&gt;
Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
'''Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março'''&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, '''podendo chegar a cerca de US$ 3.000''' no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ==&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41656</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41656"/>
		<updated>2026-03-25T16:52:25Z</updated>

		<summary type="html">&lt;p&gt;V1z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Imagem:Gsoc-2026.jpg|right|500px]]&lt;br /&gt;
Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
'''Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março'''&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, '''podendo chegar a cerca de US$ 3.000''' no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41655</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41655"/>
		<updated>2026-03-25T16:51:46Z</updated>

		<summary type="html">&lt;p&gt;V1z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Imagem:Gsoc-2026.jpg|right|500px]]&lt;br /&gt;
Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
**Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março**&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, podendo chegar a cerca de US$ 3.000 no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41654</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41654"/>
		<updated>2026-03-25T16:51:28Z</updated>

		<summary type="html">&lt;p&gt;V1z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
[[Imagem:Gsoc-2026.jpg|right|500px]]&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
**Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março**&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, podendo chegar a cerca de US$ 3.000 no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41653</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41653"/>
		<updated>2026-03-25T16:51:17Z</updated>

		<summary type="html">&lt;p&gt;V1z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
[[Imagem:Gsoc-2026.jpg|right|500px]]&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
**Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março**&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, podendo chegar a cerca de US$ 3.000 no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41652</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41652"/>
		<updated>2026-03-25T16:51:03Z</updated>

		<summary type="html">&lt;p&gt;V1z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
**Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março**&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, podendo chegar a cerca de US$ 3.000 no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
[[Imagem:Gsoc-2026.jpg|right|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Arquivo:Gsoc-2026.jpg&amp;diff=41651</id>
		<title>Arquivo:Gsoc-2026.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Arquivo:Gsoc-2026.jpg&amp;diff=41651"/>
		<updated>2026-03-25T16:50:42Z</updated>

		<summary type="html">&lt;p&gt;V1z: GSoC logo google summer of code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descrição do arquivo ==&lt;br /&gt;
[[GSoC]] logo google summer of code&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41650</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41650"/>
		<updated>2026-03-25T16:49:11Z</updated>

		<summary type="html">&lt;p&gt;V1z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
**Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março**&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, podendo chegar a cerca de US$ 3.000 no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
[[Imagem:Soc-logo-google-color.jpg|right|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41649</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41649"/>
		<updated>2026-03-25T16:48:25Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Dicas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
**Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março**&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, podendo chegar a cerca de US$ 3.000 no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
* A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
* Trabalhe em algum bug:&lt;br /&gt;
**Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
**Procure reproduzir o bug&lt;br /&gt;
* Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
* Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
&amp;amp; Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
* Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41648</id>
		<title>GSoC</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=GSoC&amp;diff=41648"/>
		<updated>2026-03-25T16:47:49Z</updated>

		<summary type="html">&lt;p&gt;V1z: gsoc dicas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta página reúne dicas e idéias para o Google Summer of Code (GSoC), &lt;br /&gt;
programa internacional promovido pela Google que conecta estudantes e desenvolvedores iniciantes a projetos de software livre em organizações de todo o mundo.&lt;br /&gt;
&lt;br /&gt;
A iniciativa tem como objetivo incentivar a participação em comunidades de código aberto, proporcionando experiência prática em desenvolvimento de software com a orientação de mentores experientes. Os participantes selecionados atuam em projetos reais durante um período de aproximadamente 12 semanas, podendo se estender conforme o escopo da proposta.&lt;br /&gt;
&lt;br /&gt;
As infomações são para qualquer ano, mas foram atualizadas para 2026.&lt;br /&gt;
O foco é na participação individual (contribuutor), sendo que atualmente não entramos como ORG.&lt;br /&gt;
&lt;br /&gt;
**Inscrições abertas para o Google Summer of Code 2026 vão até 31 de março**&lt;br /&gt;
&lt;br /&gt;
Além da experiência técnica, o programa oferece bolsas aos participantes que concluírem seus projetos com sucesso. Os valores variam de acordo com o país de residência do estudante e o tamanho do projeto, podendo chegar a cerca de US$ 3.000 no Brasiil e a US$ 6.000 em alguns países.&lt;br /&gt;
&lt;br /&gt;
Para a edição de 2026, há oportunidades em diversas áreas, com destaque para temas como inteligência artificial, segurança e aprendizado de máquina, acompanhando tendências atuais da tecnologia.&lt;br /&gt;
&lt;br /&gt;
No IPRJ/Uerj, o professor Ricardo Fabbri (rfabbri@iprj.uerj.br) se coloca à disposição para orientar estudantes interessados, oferecendo suporte sobre o processo de candidatura e estratégias para maximizar as chances de aprovação no programa.&lt;br /&gt;
&lt;br /&gt;
Alunos do IPRJ já  conseguiram essas bolsas em anos anteriores! &lt;br /&gt;
&lt;br /&gt;
Participe!! &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Como aplicar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguir passo a passo a secao: Apply and get started! Do seguinte documento:&lt;br /&gt;
https://opensource.googleblog.com/2026/03/open-source-open-doors-apply-now-for-google-summer-of-code.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dicas == &lt;br /&gt;
&lt;br /&gt;
O caminho é trabalhoso.&lt;br /&gt;
&lt;br /&gt;
O principal é se envolver em comunidades de software aberto (softwares&lt;br /&gt;
das ORGs contempladas), e mostrar que você não é apenas uma ferramenta&lt;br /&gt;
de IA. Você precisa primeiro se tornar usuário do software, e escolher&lt;br /&gt;
baseado em alguns indicadores:&lt;br /&gt;
&lt;br /&gt;
- A ORG tem muitas pull requests estagnadas, ou processa as pull&lt;br /&gt;
requests e responde prontamente?&lt;br /&gt;
- Trabalhe em algum bug:&lt;br /&gt;
       - Identifique a Issue que seja de seu interesse real (que voce&lt;br /&gt;
se identifique)&lt;br /&gt;
       - Procure reproduzir o bug&lt;br /&gt;
- Assine a lista de discussao do software de seu interesse, leia e&lt;br /&gt;
tente responder&lt;br /&gt;
- Saiba fazer alteracoes simples no codigo, como colocar seu nome na&lt;br /&gt;
janela de About, recompilar e rodar&lt;br /&gt;
- Saiba fazer busca em codigo, sugiro este tutorial de ferramentas de&lt;br /&gt;
linha de comando:&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Learning_the_Unix_Programming_Environment&lt;br /&gt;
&lt;br /&gt;
- Se fizer algum projeto na área gráfica, listado em &amp;quot;Media&amp;quot;, eu&lt;br /&gt;
consigo ajudar mais.&lt;br /&gt;
&lt;br /&gt;
== As ORGs que recomendo para 2026 ===&lt;br /&gt;
&lt;br /&gt;
Há diversas áreas disponíveis, https://summerofcode.withgoogle.com/programs/2026/organizations&lt;br /&gt;
No entanto, recomendo que seja um aplicativo de médio porte, não grande demais, para uma primeira bolsa.&lt;br /&gt;
&lt;br /&gt;
Os CADs sao um ponto de entrada mais realista,&lt;br /&gt;
funcionam como um degrau para projetos maiores no futuro como Blender.&lt;br /&gt;
&lt;br /&gt;
BRL-CAD&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/brl-cad&lt;br /&gt;
&lt;br /&gt;
FreeCAD - bom para começar, mais facil que blender&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/freecad&lt;br /&gt;
&lt;br /&gt;
CGAL - posso ensinar a matemática necessaria.&lt;br /&gt;
&lt;br /&gt;
GiMP - todas as ideias parecem faceis ou ao menos factiveis&lt;br /&gt;
https://developer.gimp.org/core/internship/ideas/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Secundarios:--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Invesalius - Software de imagens medicas BRASILEIRO&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/invesaliusv&lt;br /&gt;
&lt;br /&gt;
SU2 - Computational Fluid Dynamics and Optimization - me parece que&lt;br /&gt;
as tarefas dele nao sao tao dificeis&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/stichting-su2&lt;br /&gt;
&lt;br /&gt;
VideoLAN - muitos projetos de UI. Alguns interessantes, comunidade parrece boa,&lt;br /&gt;
mas pode ser trabalhoso.&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/videolan&lt;br /&gt;
&lt;br /&gt;
GeomScale&lt;br /&gt;
https://summerofcode.withgoogle.com/programs/2026/organizations/geomscale&lt;br /&gt;
&lt;br /&gt;
Octave - Implement missing ODE capabilities to support Chebfun&lt;br /&gt;
https://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started#Suggested_projects&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
Pages for previous years where LabMacambira applied as a mentor: [[GSoC|2012]], [[SummerOfCode2012 | GSoC 2013]].&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algoritmos_e_Estruturas_de_Dados&amp;diff=41647</id>
		<title>Algoritmos e Estruturas de Dados</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algoritmos_e_Estruturas_de_Dados&amp;diff=41647"/>
		<updated>2025-08-28T12:30:51Z</updated>

		<summary type="html">&lt;p&gt;V1z: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ver: https://github.com/rfabbri/alg-fabbri-IPRJ-UERJ&lt;br /&gt;
&lt;br /&gt;
* Lista 1 sobre ponteiros: [[Arquivo:L1-alg-fabbri-2025.pdf]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Arquivo:L1-alg-fabbri-2025.pdf&amp;diff=41646</id>
		<title>Arquivo:L1-alg-fabbri-2025.pdf</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Arquivo:L1-alg-fabbri-2025.pdf&amp;diff=41646"/>
		<updated>2025-08-28T12:27:49Z</updated>

		<summary type="html">&lt;p&gt;V1z: Lista 1 sobre ponteiros&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descrição do arquivo ==&lt;br /&gt;
Lista 1 sobre ponteiros&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algoritmos_e_Estruturas_de_Dados&amp;diff=41645</id>
		<title>Algoritmos e Estruturas de Dados</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algoritmos_e_Estruturas_de_Dados&amp;diff=41645"/>
		<updated>2025-08-28T11:45:56Z</updated>

		<summary type="html">&lt;p&gt;V1z: link github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ver: https://github.com/rfabbri/alg-fabbri-IPRJ-UERJ&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=ALG&amp;diff=41644</id>
		<title>ALG</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=ALG&amp;diff=41644"/>
		<updated>2025-08-28T11:43:34Z</updated>

		<summary type="html">&lt;p&gt;V1z: Redirecionando para Algoritmos e Estruturas de Dados&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Algoritmos e Estruturas de Dados]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=OpenMVG&amp;diff=41642</id>
		<title>OpenMVG</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=OpenMVG&amp;diff=41642"/>
		<updated>2024-11-06T02:09:12Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Build Summary for Mac (24Oct19) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenMVG is a 3D reconstruction software focusing on automated techniques. This is used in AR and related technologies such as ARKit and Microsoft Hololens, and match-moving in video editing for inserting virtual content.&lt;br /&gt;
It is also known as photogrammetry, structure from motion (SfM), 3D Computer Vision, and uses multiple view geometry heavily.&lt;br /&gt;
In this wiki you will find community notes on OpenMVG, to complement the official docs.&lt;br /&gt;
&lt;br /&gt;
==Building / Compiling==&lt;br /&gt;
* Follow `BUILD.md` closely. For the curious, see [https://github.com/openMVG/openMVG/pull/1579] where I describe some pitfalls.&lt;br /&gt;
* We are using the develop branch for hacking. It compiles well on mac and linux (mar 2022).&lt;br /&gt;
&lt;br /&gt;
=== Build Summary for Linux (24Oct19) ===&lt;br /&gt;
&lt;br /&gt;
* Install the required dependencies (see BUILD.md). Please edit this wiki page if you had to install more things.&lt;br /&gt;
* Checkout OpenMVG, and make it lowecase&lt;br /&gt;
    git clone --recursive https://github.com/openMVG/openMVG.git    &lt;br /&gt;
* Create a binary folder. I prefer the following setup: to have an openMVG-bin folder parallel to openmvg, outside the source&lt;br /&gt;
    mkdir openMVG-bin&lt;br /&gt;
    cd openMVG-bin&lt;br /&gt;
* Configure and build &lt;br /&gt;
    cmake -DCMAKE_BUILD_TYPE=RELEASE ../openMVG/src/&lt;br /&gt;
    cmake --build . --target install&lt;br /&gt;
* You can reduce the build and configure with a single line code&lt;br /&gt;
    mkdir openMVG-bin &amp;amp;&amp;amp; cd openMVG-bin &amp;amp;&amp;amp; cmake -DCMAKE_BUILD_TYPE=RELEASE ../openMVG/src/ &amp;amp;&amp;amp; cmake --build . --target install&lt;br /&gt;
==== Build for development with GCC and interactively ====&lt;br /&gt;
    CC=gcc-5 CXX=g++-5  ccmake../openMVG/src/&lt;br /&gt;
==== Some help with in newer versions of openMVG cmake warnings (10Mar2023)==== &lt;br /&gt;
&lt;br /&gt;
* Install libqt5svg5-dev&lt;br /&gt;
     sudo apt-get install libqt5svg5-dev&lt;br /&gt;
* Install Qt5 tools (Check if your distro has it available)&lt;br /&gt;
     sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools&lt;br /&gt;
&lt;br /&gt;
* Mac OS&lt;br /&gt;
     brew install qt5     # may help, havent double-checked&lt;br /&gt;
&lt;br /&gt;
=== Build Summary for Mac (05Nov24) ===&lt;br /&gt;
&lt;br /&gt;
2024: apple default clang is not compiling shared very easily. I am using gcc 14 and build_shared on Ventura without any issues.&lt;br /&gt;
&lt;br /&gt;
==== Mac OS + GCC ====&lt;br /&gt;
GNU is convenient for certain optimizations, extensions and for closely dev with your Linux team mates and cluster nodes.&lt;br /&gt;
&lt;br /&gt;
    CC=gcc CXX=g++ ccmake ../openMVG/src&lt;br /&gt;
&lt;br /&gt;
With macports you can select to what GCC version the 'gcc' link will point to.&lt;br /&gt;
&lt;br /&gt;
With homebrew, you can use something like gcc-5 to pick the GCC version:&lt;br /&gt;
&lt;br /&gt;
If e.g. gcc 5 is desired:&lt;br /&gt;
    brew gcc@5&lt;br /&gt;
    CC=gcc-5 CXX=g++-5 ccmake ../openMVG/src&lt;br /&gt;
&lt;br /&gt;
* I carried out many tests with GCC 4-8, and GCC 5 is better for the optimizations I use (--fast-math for trifocal solver).&lt;br /&gt;
* For speed, can try '--fast-math' optimization, gcc-5 is very good at that.&lt;br /&gt;
* I use BUILD_SHARED_LIBS on. Faster linking. Faster development cycle&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
* Enable both BUILD_TESTING _and_ OpenMVG_BUILD_TEST&lt;br /&gt;
* ctest or make test should work&lt;br /&gt;
=== Other Tips ===&lt;br /&gt;
* Look into [https://github.com/openMVG/openMVG/blob/master/.travis.yml .travis.yml], specially &amp;lt;tt&amp;gt;before_script:&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;script:&amp;lt;/tt&amp;gt; sections for the build commands that are actually working. Look into the &amp;lt;tt&amp;gt;packages:&amp;lt;/tt&amp;gt; sections for packages that might have to be installed in your system.&lt;br /&gt;
&lt;br /&gt;
=== OpenMVG as a library ===&lt;br /&gt;
* Careful: If you want to use OpenMVG as a library, you must define your prefix, and not only &amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt; but '''also''' &amp;lt;pre&amp;gt;make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
** What I do in this case is cd openMVG-bin, then 'ccmake -DCMAKE_INSTALL_PREFIX:STRING=$PWD/install ../openMVG/src&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same as Linux currently works.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[COLMAP]]: shares similarities with OpenMVG's code, but improved by some of the most famous SfM researchers (Marc Pollefeys' student)&lt;br /&gt;
* [[Ubuntu - Configuring For Programming]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Video]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=OpenMVG&amp;diff=41641</id>
		<title>OpenMVG</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=OpenMVG&amp;diff=41641"/>
		<updated>2024-11-06T01:05:18Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Some help with in newer versions of openMVG cmake warnings (10Mar2023) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OpenMVG is a 3D reconstruction software focusing on automated techniques. This is used in AR and related technologies such as ARKit and Microsoft Hololens, and match-moving in video editing for inserting virtual content.&lt;br /&gt;
It is also known as photogrammetry, structure from motion (SfM), 3D Computer Vision, and uses multiple view geometry heavily.&lt;br /&gt;
In this wiki you will find community notes on OpenMVG, to complement the official docs.&lt;br /&gt;
&lt;br /&gt;
==Building / Compiling==&lt;br /&gt;
* Follow `BUILD.md` closely. For the curious, see [https://github.com/openMVG/openMVG/pull/1579] where I describe some pitfalls.&lt;br /&gt;
* We are using the develop branch for hacking. It compiles well on mac and linux (mar 2022).&lt;br /&gt;
&lt;br /&gt;
=== Build Summary for Linux (24Oct19) ===&lt;br /&gt;
&lt;br /&gt;
* Install the required dependencies (see BUILD.md). Please edit this wiki page if you had to install more things.&lt;br /&gt;
* Checkout OpenMVG, and make it lowecase&lt;br /&gt;
    git clone --recursive https://github.com/openMVG/openMVG.git    &lt;br /&gt;
* Create a binary folder. I prefer the following setup: to have an openMVG-bin folder parallel to openmvg, outside the source&lt;br /&gt;
    mkdir openMVG-bin&lt;br /&gt;
    cd openMVG-bin&lt;br /&gt;
* Configure and build &lt;br /&gt;
    cmake -DCMAKE_BUILD_TYPE=RELEASE ../openMVG/src/&lt;br /&gt;
    cmake --build . --target install&lt;br /&gt;
* You can reduce the build and configure with a single line code&lt;br /&gt;
    mkdir openMVG-bin &amp;amp;&amp;amp; cd openMVG-bin &amp;amp;&amp;amp; cmake -DCMAKE_BUILD_TYPE=RELEASE ../openMVG/src/ &amp;amp;&amp;amp; cmake --build . --target install&lt;br /&gt;
==== Build for development with GCC and interactively ====&lt;br /&gt;
    CC=gcc-5 CXX=g++-5  ccmake../openMVG/src/&lt;br /&gt;
==== Some help with in newer versions of openMVG cmake warnings (10Mar2023)==== &lt;br /&gt;
&lt;br /&gt;
* Install libqt5svg5-dev&lt;br /&gt;
     sudo apt-get install libqt5svg5-dev&lt;br /&gt;
* Install Qt5 tools (Check if your distro has it available)&lt;br /&gt;
     sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools&lt;br /&gt;
&lt;br /&gt;
* Mac OS&lt;br /&gt;
     brew install qt5     # may help, havent double-checked&lt;br /&gt;
&lt;br /&gt;
=== Build Summary for Mac (24Oct19) ===&lt;br /&gt;
&lt;br /&gt;
==== Mac OS + GCC ====&lt;br /&gt;
GNU is convenient for certain optimizations, extensions and for closely dev with your Linux team mates and cluster nodes.&lt;br /&gt;
&lt;br /&gt;
    CC=gcc CXX=g++ ccmake ../openMVG/src&lt;br /&gt;
&lt;br /&gt;
With macports you can select to what GCC version the 'gcc' link will point to.&lt;br /&gt;
&lt;br /&gt;
With homebrew, you can use something like gcc-5 to pick the GCC version:&lt;br /&gt;
&lt;br /&gt;
If e.g. gcc 5 is desired:&lt;br /&gt;
    brew gcc@5&lt;br /&gt;
    CC=gcc-5 CXX=g++-5 ccmake ../openMVG/src&lt;br /&gt;
&lt;br /&gt;
* I carried out many tests with GCC 4-8, and GCC 5 is better for the optimizations I use (--fast-math for trifocal solver).&lt;br /&gt;
* For speed, can try '--fast-math' optimization, gcc-5 is very good at that.&lt;br /&gt;
* I use BUILD_SHARED_LIBS on. Faster linking. Faster development cycle&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
* Enable both BUILD_TESTING _and_ OpenMVG_BUILD_TEST&lt;br /&gt;
* ctest or make test should work&lt;br /&gt;
=== Other Tips ===&lt;br /&gt;
* Look into [https://github.com/openMVG/openMVG/blob/master/.travis.yml .travis.yml], specially &amp;lt;tt&amp;gt;before_script:&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;script:&amp;lt;/tt&amp;gt; sections for the build commands that are actually working. Look into the &amp;lt;tt&amp;gt;packages:&amp;lt;/tt&amp;gt; sections for packages that might have to be installed in your system.&lt;br /&gt;
&lt;br /&gt;
=== OpenMVG as a library ===&lt;br /&gt;
* Careful: If you want to use OpenMVG as a library, you must define your prefix, and not only &amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt; but '''also''' &amp;lt;pre&amp;gt;make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
** What I do in this case is cd openMVG-bin, then 'ccmake -DCMAKE_INSTALL_PREFIX:STRING=$PWD/install ../openMVG/src&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Same as Linux currently works.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[COLMAP]]: shares similarities with OpenMVG's code, but improved by some of the most famous SfM researchers (Marc Pollefeys' student)&lt;br /&gt;
* [[Ubuntu - Configuring For Programming]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Video]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41640</id>
		<title>Stochastic Processes</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41640"/>
		<updated>2024-08-08T01:51:14Z</updated>

		<summary type="html">&lt;p&gt;V1z: moved prev periods&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught in 2024 (2024.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. &lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' ter19set23&lt;br /&gt;
* '''P2:''' ter17out23&lt;br /&gt;
* '''Final-Sub:''' ter19dez2&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
P = (P1 + P2)/2&lt;br /&gt;
&lt;br /&gt;
if P &amp;gt;= 5 --&amp;gt; passa direto&lt;br /&gt;
&lt;br /&gt;
Trabalhos serão dados após a P1 de acordo com a demanda da turma, sendo a pontuação inclusa na P2.&lt;br /&gt;
&lt;br /&gt;
Final F opcional&lt;br /&gt;
&lt;br /&gt;
M = (F + P)/2 para os que fizerem final&lt;br /&gt;
&lt;br /&gt;
if M &amp;gt;= 5 --&amp;gt; passa&lt;br /&gt;
else reprova&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
Previous periods: 2023 (see wiki history) [[Stochastic_Processes_2022.2|2022.2]], [[Stochastic_Processes_2021_condensed|2021 condensed]], [[Stochastic_Processes_2021.2_2022|2021.2 (2022)]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41639</id>
		<title>Stochastic Processes</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41639"/>
		<updated>2024-08-08T01:50:21Z</updated>

		<summary type="html">&lt;p&gt;V1z: 2024.2, criterio de avaliacao simplificado&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught in 2024 (2024.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
Previous periods: 2023 (see wiki history) [[Stochastic_Processes_2022.2|2022.2]], [[Stochastic_Processes_2021_condensed|2021 condensed]], [[Stochastic_Processes_2021.2_2022|2021.2 (2022)]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. &lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' ter19set23&lt;br /&gt;
* '''P2:''' ter17out23&lt;br /&gt;
* '''Final-Sub:''' ter19dez2&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
P = (P1 + P2)/2&lt;br /&gt;
&lt;br /&gt;
if P &amp;gt;= 5 --&amp;gt; passa direto&lt;br /&gt;
&lt;br /&gt;
Trabalhos serão dados após a P1 de acordo com a demanda da turma, sendo a pontuação inclusa na P2.&lt;br /&gt;
&lt;br /&gt;
Final F opcional&lt;br /&gt;
&lt;br /&gt;
M = (F + P)/2 para os que fizerem final&lt;br /&gt;
&lt;br /&gt;
if M &amp;gt;= 5 --&amp;gt; passa&lt;br /&gt;
else reprova&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=AA&amp;diff=41637</id>
		<title>AA</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=AA&amp;diff=41637"/>
		<updated>2024-04-02T03:52:52Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Website */ remove span&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[AA_(English)|[English version - click here]]]&lt;br /&gt;
&lt;br /&gt;
[[AA]] is [http://wiki.nosdigitais.teia.org.br/index.php?title=AA Algorithmic Autoregulation]. [[AA]] is Agglomerative Animation. [[AA]] is Audivisual Activism. [[AA]] is Audiovisual Algorithms. [[AA]] is Art in Action. [[AA]] is *the* [http://wiki.nosdigitais.teia.org.br/index.php?title=AA Ambiguous Acronym]. [[AA]] é o [http://vimeo.com/39135943 Algorítmo do Ágora]&lt;br /&gt;
&lt;br /&gt;
[[Imagem:Logo-icon.png|right]][[Imagem:Aa-server-screenshot-v0.1-200x.png|right]]&lt;br /&gt;
&lt;br /&gt;
o0o0o0 [http://tux.gseis.ucla.edu/WSL2013_papers/distributed_software_methodology_fabbri_et_al.pdf Artigo sobre o AA] 0o0o0oo&lt;br /&gt;
&lt;br /&gt;
[http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/fabbri/1 [Google Summer of Code 2012 Plans - click here]]&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
= O quê? = &lt;br /&gt;
&lt;br /&gt;
O AA é um sistema de cooperação em que cada participante&lt;br /&gt;
envia mensagens periódicas enquanto executa suas tarefas. Estas mensagens são&lt;br /&gt;
públicas e são validadas pelos próprios parceiros de forma randômica se conveniente.&lt;br /&gt;
O AA está em uso, já viabilizou pagamentos e facilita o aprofundamento de ações e expansões.&lt;br /&gt;
A metodologia AA é útil para  coordenar times distribuídos e descentralizados, como experimentados&lt;br /&gt;
no [[GSoC]] de 2012 e nos 6 meses de criação do labMacambira.sf.net.&lt;br /&gt;
&lt;br /&gt;
Leia uma descrição na forma de um [http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/aa;a=blob;f=aa-what-is-aa;h=963ef7d0af79ee8f1431d247801520310ad06ade;hb=HEAD log do IRC sobre o que é o AA].&lt;br /&gt;
&lt;br /&gt;
'''AA é Autogestão Algorítmica'''&lt;br /&gt;
&lt;br /&gt;
[[Imagem:A-geral.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== O AA documenta processos criativos ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;quot;Nothing is more important than to see the sources of invention which are, in my&lt;br /&gt;
opinion, more interesting than the inventions themselves&amp;quot;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
— Gottfried Wilhelm Leibnitz&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== O AA aumenta a produtividade ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;quot;Central to our feelings of awareness is the sensation of the progression of&lt;br /&gt;
time... (aa logging increases this sensation and thus awarenes, an awareness&lt;br /&gt;
which equals more productivity, of the creative type, at least) As we&lt;br /&gt;
consciously perceive time to pass (through AA sessions),&lt;br /&gt;
the most immediate part of that vast and seemingly undetermined future&lt;br /&gt;
continuously becomes realized as actuality (AA logs), and thus makes its entry into the&lt;br /&gt;
fixed (highly indexable and searchable) past.&amp;quot; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
— Roger Penrose, The Emperor's New Mind (adaptation)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Onde? =&lt;br /&gt;
&lt;br /&gt;
== Cliente ==&lt;br /&gt;
&lt;br /&gt;
Repositorio Principal: &lt;br /&gt;
 git clone ssh://USERNAME@labmacambira.git.sourceforge.net/gitroot/labmacambira/aa&lt;br /&gt;
&lt;br /&gt;
ou read-only:&lt;br /&gt;
&lt;br /&gt;
 git clone git://labmacambira.git.sourceforge.net/gitroot/labmacambira/aa&lt;br /&gt;
&lt;br /&gt;
* Ver [[Manual_do_Novato#Start_Hacking]]&lt;br /&gt;
&lt;br /&gt;
Rabisco inicial: http://github.com/automata/aa&lt;br /&gt;
&lt;br /&gt;
Outro repositório master: http://github.com/mquasar/aa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Versão WEB ==&lt;br /&gt;
&lt;br /&gt;
* Repo atual: https://git.gitorious.org/macambira_aa/&lt;br /&gt;
* Paainel: versao web turbinada http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/paainel;a=summary&lt;br /&gt;
* Feeds em tempo real da equipe do lab Macambira:&lt;br /&gt;
** Veja ou pAAineal: http://hera.ethymos.com.br:1080/paainel/casca/&lt;br /&gt;
** ou a versao PHP http://www.pulapirata.com/skills/aa&lt;br /&gt;
&lt;br /&gt;
Passos para poder fazer push também:&lt;br /&gt;
&lt;br /&gt;
Executar o comando: ssh-keygen -t dsa&lt;br /&gt;
Ps.: Não consegui fazer funcionar sem senha, então basta usar AA123&lt;br /&gt;
&lt;br /&gt;
Depois abra o arquivo id_dsa.pub dentro da pasta ~/.ssh/&lt;br /&gt;
&lt;br /&gt;
Ai é só copiar esse texto (chamado chave ssh) que tem lá dentro e me enviar(Lucas) pra liberar acesso ao projeto no Gitorious&lt;br /&gt;
(ps.: caso você use o root + seu usuário normal alternadamente para o git, faça o processo com os dois usuários e envie as 2 chaves)&lt;br /&gt;
&lt;br /&gt;
Depois só dar o git clone, git push, git pull, ... No endereço GIT.&lt;br /&gt;
git@gitorious.org:macambira_aa/macambira_aa.git&lt;br /&gt;
&lt;br /&gt;
== Rotina de Uso ==&lt;br /&gt;
Videos gerados em sessoes de hackeamento pelo uso do AA: http://vimeo.com/channels/labmacambira&lt;br /&gt;
&lt;br /&gt;
Ver [[Manual do Novato]]&lt;br /&gt;
&lt;br /&gt;
= Desenvolvimento =&lt;br /&gt;
&lt;br /&gt;
As descricoes das versoes podem ser encontradas na pagina do freshmeat: http://freshmeat.net/projects/algorithmic-autoregulation&lt;br /&gt;
&lt;br /&gt;
Planos feitos durante o desenvolvimento de cada versao antiga:&lt;br /&gt;
[[AA 0.0.1]], [[AA 0.0.2]], [[AA 0.0.3]]&lt;br /&gt;
&lt;br /&gt;
= Interfaces =&lt;br /&gt;
&lt;br /&gt;
== PyGTK / [[Application_Indicators]] ==&lt;br /&gt;
&lt;br /&gt;
Versão básica implementada. Está no mesmo repositório do AA.&lt;br /&gt;
&lt;br /&gt;
[http://labmacambira.git.sourceforge.net/git/gitweb.cgi?p=labmacambira/aa;a=blob_plain;f=README_AAPP;hb=HEAD README_AAPP]&lt;br /&gt;
&lt;br /&gt;
== IRC ==&lt;br /&gt;
&lt;br /&gt;
Modificar um IRC BOT (https://github.com/sbp/phenny) para exibir últimas atualizações e gerir outras atividades do lab.&lt;br /&gt;
&lt;br /&gt;
Começando aqui... http://github.com/automata/phenny&lt;br /&gt;
&lt;br /&gt;
Um guia rápido para como criar módulos para o phenny: https://github.com/myano/jenni/wiki/How-to-create-a-phenny-module&lt;br /&gt;
&lt;br /&gt;
Em modules/logger.py tem um módulo para logar o #labmacambira que pode servir de exemplo...&lt;br /&gt;
&lt;br /&gt;
== Twitter ==&lt;br /&gt;
&lt;br /&gt;
Estamos pensando em fazer uma interface twitter para o cliente. Talvez o identi.ca seja mais programavel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Tags Propostas =&lt;br /&gt;
Esta lista é adotada como padrão:&lt;br /&gt;
&lt;br /&gt;
    +s substitui a mensagem anterior.&lt;br /&gt;
    +p parando a dedicação ou mudando drasticamente de foco.&lt;br /&gt;
    +w feitas coisas em wikis.&lt;br /&gt;
    +e coisas em epads envolvidas&lt;br /&gt;
    +f coisas no face envolvidas&lt;br /&gt;
    +m emails&lt;br /&gt;
    +v video/screencast&lt;br /&gt;
&lt;br /&gt;
    ~StringQualquer tag pessoal para o assunto ou aspecto escolhido por si próprio. [p.ex. ~z sono, ~p pesquisa, ~c codando forte, etc.)&lt;br /&gt;
    &lt;br /&gt;
== Situação Atual ==&lt;br /&gt;
&lt;br /&gt;
* Tags estão sendo propostas e em uso contínuo por vários usuários via IRC.&lt;br /&gt;
&lt;br /&gt;
=== Problemas principais ===&lt;br /&gt;
&lt;br /&gt;
* Necessidade de implantação de sistema de controle automático de erros e faltas&lt;br /&gt;
&lt;br /&gt;
** Correção do montador de sessões para não tratar a unix timestamp como padrão (timeslots perdidos em 1969)&lt;br /&gt;
&lt;br /&gt;
* Melhora interface (interface nova usando ExtJS4 em http://www.nightsc.com.br/aa2)&lt;br /&gt;
&lt;br /&gt;
* Criar sistema de RSS ou XML para facilitar o uso em aplicações externas&lt;br /&gt;
&lt;br /&gt;
* Criar módulo de controle de logins (tanto no cliente Python como na versão WEB)&lt;br /&gt;
&lt;br /&gt;
* Tratar erros&lt;br /&gt;
&lt;br /&gt;
* Melhorar sistema de validações por e-mail&lt;br /&gt;
&lt;br /&gt;
== Ver Também ==&lt;br /&gt;
Grupo de trabalho: [[GT-AA]]&lt;br /&gt;
&lt;br /&gt;
[[Imagem:Logo-icon.png|right]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41636</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41636"/>
		<updated>2023-08-22T20:19:24Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Tarefas complementares */ revisao de teoria dos conjuntos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Tarefas complementares ==&lt;br /&gt;
=== Tarefa extra 0 (para a primeira aula da segunda semana) ===&lt;br /&gt;
Estas tarefas têm como objetivo complementar o curso com motivações práticas&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022 da graduação: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
=== Tarefa extra 0.1 (para a segunda aula da terceira semana) ===&lt;br /&gt;
Revisao de teoria dos conjuntos: https://youtu.be/pawQt7TtIf0?t=777 (assistir 12:57min ate 17min).&lt;br /&gt;
Compreender que o vazio esta contido em qualquer conjunto A, mas nao necessariamente pertence a A.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa extra 2 (para a primeira aula da terceira semana) ===&lt;br /&gt;
* Assistir ao vídeo da Notação Mestra de Variedades Diferenciáveis https://youtu.be/h22063QMIDo o qual permitirá compreensão do contexto não-linear onde a álgebra linear é aplicada.&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF do livro complementar, Applied Lienear Algebra, assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
==== Livros e apostilas complementares ====&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila de Álgebra Linear Numérica de prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso, bem como para aplicacoes: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
* Linear Algebra through Exterior Products - codigo fonte Tex disponivel https://github.com/winitzki/linear-algebra-book (ver pasta version-1.3-print para os pdfs): Trata-se de um livro que resume bem a proposta deste curso.&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41635</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41635"/>
		<updated>2023-08-17T15:24:16Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Livros e apostilas complementares */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Tarefas complementares ==&lt;br /&gt;
=== Tarefa extra 0 (para a primeira aula da segunda semana) ===&lt;br /&gt;
Estas tarefas têm como objetivo complementar o curso com motivações práticas&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022 da graduação: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
=== Tarefa extra 1 (para a primeira aula da terceira semana) ===&lt;br /&gt;
* Assistir ao vídeo da Notação Mestra de Variedades Diferenciáveis https://youtu.be/h22063QMIDo o qual permitirá compreensão do contexto não-linear onde a álgebra linear é aplicada.&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF do livro complementar, Applied Lienear Algebra, assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
==== Livros e apostilas complementares ====&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila de Álgebra Linear Numérica de prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso, bem como para aplicacoes: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
* Linear Algebra through Exterior Products - codigo fonte Tex disponivel https://github.com/winitzki/linear-algebra-book (ver pasta version-1.3-print para os pdfs): Trata-se de um livro que resume bem a proposta deste curso.&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41634</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41634"/>
		<updated>2023-08-17T15:18:22Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Livros e apostilas complementares */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Tarefas complementares ==&lt;br /&gt;
=== Tarefa extra 0 (para a primeira aula da segunda semana) ===&lt;br /&gt;
Estas tarefas têm como objetivo complementar o curso com motivações práticas&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022 da graduação: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
=== Tarefa extra 1 (para a primeira aula da terceira semana) ===&lt;br /&gt;
* Assistir ao vídeo da Notação Mestra de Variedades Diferenciáveis https://youtu.be/h22063QMIDo o qual permitirá compreensão do contexto não-linear onde a álgebra linear é aplicada.&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF do livro complementar, Applied Lienear Algebra, assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
==== Livros e apostilas complementares ====&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila de Álgebra Linear Numérica de prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso, bem como para aplicacoes: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
* Linear Algebra through Exterior Products - codigo fonte Tex disponivel https://github.com/winitzki/linear-algebra-book : Trata-se de um livro que resume bem a proposta deste curso.&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41633</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41633"/>
		<updated>2023-08-17T14:42:37Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Recursos Principais */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Tarefas complementares ==&lt;br /&gt;
=== Tarefa extra 0 (para a primeira aula da segunda semana) ===&lt;br /&gt;
Estas tarefas têm como objetivo complementar o curso com motivações práticas&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022 da graduação: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
=== Tarefa extra 1 (para a primeira aula da terceira semana) ===&lt;br /&gt;
* Assistir ao vídeo da Notação Mestra de Variedades Diferenciáveis https://youtu.be/h22063QMIDo o qual permitirá compreensão do contexto não-linear onde a álgebra linear é aplicada.&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF do livro complementar, Applied Lienear Algebra, assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
==== Livros e apostilas complementares ====&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila de Álgebra Linear Numérica de prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso, bem como para aplicacoes: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41632</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41632"/>
		<updated>2023-08-17T14:42:19Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Bibliografia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Tarefas complementares ==&lt;br /&gt;
=== Tarefa extra 0 (para a primeira aula da segunda semana) ===&lt;br /&gt;
Estas tarefas têm como objetivo complementar o curso com motivações práticas&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022 da graduação: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
=== Tarefa extra 1 (para a primeira aula da terceira semana) ===&lt;br /&gt;
* Assistir ao vídeo da Notação Mestra de Variedades Diferenciáveis https://youtu.be/h22063QMIDo o qual permitirá compreensão do contexto não-linear onde a álgebra linear é aplicada.&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF do livro complementar, Applied Lienear Algebra, assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
==== Livros e apostilas complementares ====&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila de Álgebra Linear Numérica de prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso, bem como para aplicacoes: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41631</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41631"/>
		<updated>2023-08-17T14:40:39Z</updated>

		<summary type="html">&lt;p&gt;V1z: recursos complementares&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Tarefas complementares ==&lt;br /&gt;
=== Tarefa extra 0 (para a primeira aula da segunda semana) ===&lt;br /&gt;
Estas tarefas têm como objetivo complementar o curso com motivações práticas&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022 da graduação: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
=== Tarefa extra 1 (para a primeira aula da terceira semana) ===&lt;br /&gt;
* Assistir ao vídeo da Notação Mestra de Variedades Diferenciáveis https://youtu.be/h22063QMIDo o qual permitirá compreensão do contexto não-linear onde a álgebra linear é aplicada.&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
==== Livros e apostilas complementares ====&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila de Álgebra Linear Numérica de prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso, bem como para aplicacoes: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41630</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41630"/>
		<updated>2023-08-17T14:31:17Z</updated>

		<summary type="html">&lt;p&gt;V1z: videos complementares&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
=== Tarefas extras ===&lt;br /&gt;
==== Tarefa extra 0 (para a primeira aula da segunda semana) ====&lt;br /&gt;
Estas tarefas têm como objetivo complementar o curso com motivações práticas&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022 da graduação: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
=== Tarefa extra 1 (para a primeira aula da terceira semana) ===&lt;br /&gt;
* Assistir ao vídeo da Notação Mestra de Variedades Diferenciáveis https://youtu.be/h22063QMIDo o qual permitirá compreensão do contexto não-linear onde a álgebra linear é aplicada.&lt;br /&gt;
&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
==== Outros Livros ====&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41629</id>
		<title>Stochastic Processes</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41629"/>
		<updated>2023-08-16T19:46:08Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Evaluation criteria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught in 2022 (2022.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
Previous periods: [[Stochastic_Processes_2022.2|2022.2]], [[Stochastic_Processes_2021_condensed|2021 condensed]], [[Stochastic_Processes_2021.2_2022|2021.2 (2022)]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Meeting times (in-person): tuesdays T2,T3 and wednesdays T6,N1.&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. &lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' ter19set23&lt;br /&gt;
* '''P2:''' ter17out23&lt;br /&gt;
* '''Final-Sub:''' ter19dez2&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
P = (P1 + P2)/2&lt;br /&gt;
N = 0.9P + 0.1T&lt;br /&gt;
Onde T = nota de todos tabalhos e tarefas.&lt;br /&gt;
&lt;br /&gt;
if N &amp;gt;= 7 --&amp;gt; passa direto, final opcional&lt;br /&gt;
if 4 &amp;lt;= N &amp;lt; 7 --&amp;gt; final obrigatoria&lt;br /&gt;
if N &amp;lt; 4 --&amp;gt; reprova direto&lt;br /&gt;
&lt;br /&gt;
M = (F + N)/2 para os que fizerem final&lt;br /&gt;
&lt;br /&gt;
if M &amp;gt;= 5 --&amp;gt; passa&lt;br /&gt;
else reprova&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41628</id>
		<title>Stochastic Processes</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41628"/>
		<updated>2023-08-16T19:45:19Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Evaluation criteria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught in 2022 (2022.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
Previous periods: [[Stochastic_Processes_2022.2|2022.2]], [[Stochastic_Processes_2021_condensed|2021 condensed]], [[Stochastic_Processes_2021.2_2022|2021.2 (2022)]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Meeting times (in-person): tuesdays T2,T3 and wednesdays T6,N1.&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. &lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' ter19set23&lt;br /&gt;
* '''P2:''' ter17out23&lt;br /&gt;
* '''Final-Sub:''' ter19dez2&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
P = (P1 + P2)/2&lt;br /&gt;
N = 0.8P + 0.2T&lt;br /&gt;
Onde T = nota de todos tabalhos e tarefas.&lt;br /&gt;
&lt;br /&gt;
if N &amp;gt;= 7 --&amp;gt; passa direto, final opcional&lt;br /&gt;
if 4 &amp;lt;= N &amp;lt; 7 --&amp;gt; final obrigatoria&lt;br /&gt;
if N &amp;lt; 4 --&amp;gt; reprova direto&lt;br /&gt;
&lt;br /&gt;
M = (F + N)/2 para os que fizerem final&lt;br /&gt;
&lt;br /&gt;
if M &amp;gt;= 5 --&amp;gt; passa&lt;br /&gt;
else reprova&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41627</id>
		<title>Stochastic Processes</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41627"/>
		<updated>2023-08-16T19:06:39Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Exams */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught in 2022 (2022.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
Previous periods: [[Stochastic_Processes_2022.2|2022.2]], [[Stochastic_Processes_2021_condensed|2021 condensed]], [[Stochastic_Processes_2021.2_2022|2021.2 (2022)]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Meeting times (in-person): tuesdays T2,T3 and wednesdays T6,N1.&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. &lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' ter19set23&lt;br /&gt;
* '''P2:''' ter17out23&lt;br /&gt;
* '''Final-Sub:''' ter19dez2&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
P = (P1 + P2)/2&lt;br /&gt;
N = 0.7P + 0.3T&lt;br /&gt;
Onde T = nota de todos tabalhos e tarefas.&lt;br /&gt;
&lt;br /&gt;
if N &amp;gt;= 7 --&amp;gt; passa direto, final opcional&lt;br /&gt;
if 4 &amp;lt;= N &amp;lt; 7 --&amp;gt; final obrigatoria&lt;br /&gt;
if N &amp;lt; 4 --&amp;gt; reprova direto&lt;br /&gt;
&lt;br /&gt;
M = (F + N)/2 para os que fizerem final&lt;br /&gt;
&lt;br /&gt;
if M &amp;gt;= 5 --&amp;gt; passa&lt;br /&gt;
else reprova&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41626</id>
		<title>Stochastic Processes</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41626"/>
		<updated>2023-08-16T19:06:10Z</updated>

		<summary type="html">&lt;p&gt;V1z: p1 p2 final&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught in 2022 (2022.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
Previous periods: [[Stochastic_Processes_2022.2|2022.2]], [[Stochastic_Processes_2021_condensed|2021 condensed]], [[Stochastic_Processes_2021.2_2022|2021.2 (2022)]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Meeting times (in-person): tuesdays T2,T3 and wednesdays T6,N1.&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. &lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' ter19set23&lt;br /&gt;
* '''P2:'''' ter17out23&lt;br /&gt;
* '''Final-Sub:''' ter19dez2&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
P = (P1 + P2)/2&lt;br /&gt;
N = 0.7P + 0.3T&lt;br /&gt;
Onde T = nota de todos tabalhos e tarefas.&lt;br /&gt;
&lt;br /&gt;
if N &amp;gt;= 7 --&amp;gt; passa direto, final opcional&lt;br /&gt;
if 4 &amp;lt;= N &amp;lt; 7 --&amp;gt; final obrigatoria&lt;br /&gt;
if N &amp;lt; 4 --&amp;gt; reprova direto&lt;br /&gt;
&lt;br /&gt;
M = (F + N)/2 para os que fizerem final&lt;br /&gt;
&lt;br /&gt;
if M &amp;gt;= 5 --&amp;gt; passa&lt;br /&gt;
else reprova&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41625</id>
		<title>Stochastic Processes</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes&amp;diff=41625"/>
		<updated>2023-08-16T19:01:17Z</updated>

		<summary type="html">&lt;p&gt;V1z: first pass for 2023&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught in 2022 (2022.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
Previous periods: [[Stochastic_Processes_2022.2|2022.2]], [[Stochastic_Processes_2021_condensed|2021 condensed]], [[Stochastic_Processes_2021.2_2022|2021.2 (2022)]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Meeting times (in-person): tuesdays T2,T3 and wednesdays T6,N1.&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. &lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: before P2 (suggested)&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' 07dec22&lt;br /&gt;
* '''P2:'''' 01fev22&lt;br /&gt;
* '''Final-Sub:''' 15fev22&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
P = (P1 + P2)/2&lt;br /&gt;
N = 0.7P + 0.3T&lt;br /&gt;
Onde T = nota de todos tabalhos e tarefas.&lt;br /&gt;
&lt;br /&gt;
if N &amp;gt;= 7 --&amp;gt; passa direto, final opcional&lt;br /&gt;
if 4 &amp;lt;= N &amp;lt; 7 --&amp;gt; final obrigatoria&lt;br /&gt;
if N &amp;lt; 4 --&amp;gt; reprova direto&lt;br /&gt;
&lt;br /&gt;
M = (F + N)/2 para os que fizerem final&lt;br /&gt;
&lt;br /&gt;
if M &amp;gt;= 5 --&amp;gt; passa&lt;br /&gt;
else reprova&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes_2022.2&amp;diff=41624</id>
		<title>Stochastic Processes 2022.2</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Stochastic_Processes_2022.2&amp;diff=41624"/>
		<updated>2023-08-16T18:57:38Z</updated>

		<summary type="html">&lt;p&gt;V1z: arxiv of PE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the main page of an undergraduate-level course in stochastic processes targeted at engineering students (mainly computer engineering and its interface with mechanical engineering), being taught remotely in 2022 (2021.2 period) at the Polytechnic Institute [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/UERJ.&lt;br /&gt;
&lt;br /&gt;
Previous periods: [[Stochastic_Processes_2021_condensed|2021 condensed]]&lt;br /&gt;
http://wiki.nosdigitais.teia.org.br/Stochastic_Processes&lt;br /&gt;
[[Image:Mocap_transfer.png|right|250px|thumb|Recent application of [https://en.wikipedia.org/wiki/Gaussian_process Gaussian stochastic processes] for 3D motion capture transfer [http://openaccess.thecvf.com/content_cvpr_2017/papers/Boukhayma_Surface_Motion_Capture_CVPR_2017_paper.pdf (CVPR 2017)] ]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning.png|thumb|none|x180px|Application to path planning for autonomos cars [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Sampling-motion-planning2.png|thumb|none|x180px|Application to robot path planning with obstacles [https://natanaso.github.io/ece276b/ref/ECE276B_1_MC.pdf (see this)] ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General Info ==&lt;br /&gt;
* Instructor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D. Brown University&lt;br /&gt;
* Meeting times: Tuesdays 1:20pm-3:10pm; Thursdays 1:20pm - 3:10pm (virtual schedule to be determined)&lt;br /&gt;
* Chat: IRC #labmacambira for random chat&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisites ===&lt;br /&gt;
* Undergraduate-level mathematics and probability (will review as needed)&lt;br /&gt;
* Desirable: Intermediate programming experience with any numerics scripting language such as Scilab, Python, R or Matlab. Knowing at least one of them will help you learn any new language needed in the course.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
The R programming language and data exploration environment will be used for learning, with others used occasionally. Students can also choose to do their homework in Python, Scilab, Matlab or similar languages. The R language has received growing attention, specially in the past couple of years, but it is simple enough so that the student can adapt the code to his preferred language. '''Students are expected to learn any of these languages on their own as needed, by doing tutorials and asking questions'''&lt;br /&gt;
* [https://www.rstudio.com/products/rstudio/download/preview/ R studio]: recommended IDE for R.&lt;br /&gt;
* [http://rich-iannone.github.io/DiagrammeR Diagrammer]: beautiful tool to draw and interact with graphs in R.&lt;br /&gt;
&lt;br /&gt;
== Approximate Content ==&lt;br /&gt;
This year's course will focus on a '''modern''' approach bridging theory and practice.&lt;br /&gt;
As engineers and scientists, you should not learn theory here without also considering broader applications. Recent applications in artificial intelligence, machine learning, robotics, autonomous driving, material science and other topics will be considered. These applications are often too hard to tackle at the level of this course, but having contact with them will help motivate the abstract theory. We will try to focus on '''key concepts''' and more realistic applications than most courses (that come from the 1900's), that will prompt us to elaborate theory.&lt;br /&gt;
&lt;br /&gt;
== Main Resources ==&lt;br /&gt;
=== Textbooks ===&lt;br /&gt;
Check out the moodle student shelf.&lt;br /&gt;
&lt;br /&gt;
==== Main book ==== &lt;br /&gt;
[https://books.google.com.br/books/about/Introduction_to_Stochastic_Processes_wit.html?id=CQ2ACgAAQBAJ&amp;amp;redir_esc=y&amp;amp;hl=en ''Introduction to Stochastic Processes with R''], Robert Dobrow, 2016 (5 stars on Amazon) [[Image:Book-R.jpg|130px]]&lt;br /&gt;
&lt;br /&gt;
==== Additional books used in the course ====&lt;br /&gt;
Learning stochastic processes will require aditional books, including more traditional ones:&lt;br /&gt;
* ''Markov Chains: gibbs fields, monte carlo simulation and queues'', Pierre Bremaud&lt;br /&gt;
* ''An Introduction to Stochastic Modeling'', Taylor &amp;amp; Karlin&lt;br /&gt;
* ''Pattern Theory: The Stochastic Analysis of Real-World Signals'', David Mumford and Agnes Desolneux - the first chapters already cover many types of stochastic processes in text, signal and image AI [[Image:Mumford-book.jpg]]&lt;br /&gt;
* My own machine learning and computational modeling book draft, co-written with prof. Francisco Duarte Moura Neto and focused on diffusion processes on graphs like PageRank. There is a probability chapter which is the basis for this course. We have many copies at [[IPRJ]]'s library.&lt;br /&gt;
&lt;br /&gt;
==== Other books to look at ====&lt;br /&gt;
Basic probability and statistics&lt;br /&gt;
* I recommend you review from the above books. They all include a review. But you might have to see:&lt;br /&gt;
* ''Elementary Statistics'', Mario Triola (passed down to me by a great scientist and statistician)&lt;br /&gt;
&lt;br /&gt;
Interesting books&lt;br /&gt;
* ''R for data science'', O'Reilly (#1 data science bestseller on Amazon) [[Image:R-oreilly.png|350px]]&lt;br /&gt;
&lt;br /&gt;
Machine Learning&lt;br /&gt;
* ''Pattern Theory: From Representation to Inference'', Ulf Grenader&lt;br /&gt;
&lt;br /&gt;
=== Lectures ===&lt;br /&gt;
Lectures roughly follow the sequence of our main book, with some additional material as needed. All necessary background will be covered as needed. Advanced material will be covered partly.&lt;br /&gt;
&lt;br /&gt;
==== Public Youtube Playlist (Portuguese) ====&lt;br /&gt;
Prof. Fabbri's lectures are publically available online at:&lt;br /&gt;
 https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
Partial listing: &lt;br /&gt;
&lt;br /&gt;
* Aula 1 parte 1 Introdução ao Curso  https://youtu.be/qTZkZ5y_MJc&lt;br /&gt;
* Aula 1 parte 2 O que são Processos Estocásticos?  https://youtu.be/hDVdjPTVJtw&lt;br /&gt;
* Aula 1 parte 3 O que significa &amp;quot;estocástico&amp;quot;?  https://youtu.be/xUSvDqRXAL4&lt;br /&gt;
* Aula 1 parte 4 Formalismo e revisão de probabilidades  https://youtu.be/pawQt7TtIf0&lt;br /&gt;
* Aula 1 parte 5 Exemplos Iniciais  https://youtu.be/L5zH-uSDejc&lt;br /&gt;
* Aula 1 parte 6 Exemplos 2, Difusões  https://youtu.be/tYD0ezDfYxM&lt;br /&gt;
* Aula 2 parte 1 Revisão de Probabilidade parte 2 &lt;br /&gt;
* Aula 2 parte 2 Revisão de Distribuições - Revisão de Probabilidade parte 3 https://youtu.be/admtZDT2iok&lt;br /&gt;
* Aula 3 parte 1 Pagerank https://youtu.be/45wx3yZh7SI&lt;br /&gt;
* Aula 3 parte 2 Grafos - Revisão https://youtu.be/cE834FfnnuY&lt;br /&gt;
* Aula 4 parte 1 Cadeias de Markov e exemplo em Metástase do Câncer https://youtu.be/N0R83bBUSf8&lt;br /&gt;
** Paper: Spatiotemporal progression of metastatic breast cancer: a Markov chain model highlighting the role of early metastatic sites., Newton, P., Mason, J., Venkatappa, N. et al., Nature npj Breast Cancer 1, 15018 (2015). https://doi.org/10.1038/npjbcancer.2015.18&lt;br /&gt;
** Paper: A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis&lt;br /&gt;
Newton PK, Mason J, Bethel K, Bazhenova LA, Nieva J, et al. (2012) A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis. PLOS ONE 7(4): e34637. https://doi.org/10.1371/journal.pone.0034637&lt;br /&gt;
* Remaining lectures ongoing at: https://www.youtube.com/playlist?list=PL1tkMA9lsTiVw9PzRcxpUBN4aArh948sK&lt;br /&gt;
&lt;br /&gt;
==== Lecture Notes ====&lt;br /&gt;
&lt;br /&gt;
* Fabbri's lecture notes on long term markov chains (based on Dobrow's Chapter 3) [https://drive.google.com/file/d/1FVCbiH32Up4_NHzBLhuFd6tn0GN2FmX0/view?usp=sharing pdf]&lt;br /&gt;
&lt;br /&gt;
==== Tentative listing  ====&lt;br /&gt;
* Intro, overview of main processes and quick review&lt;br /&gt;
* Markov Chains&lt;br /&gt;
* Markov Chain Monte Carlo: MCMC&lt;br /&gt;
* Poisson Process&lt;br /&gt;
* Queue theory&lt;br /&gt;
* Brownian Motion&lt;br /&gt;
* Stochastic Calculus&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
* All homework can be done in any language. Most are either in the R programming language or in Scilab/Matlab and Python.&lt;br /&gt;
* If you do the homework in two different languages, you get double the homework grade (bonus of 100%)&lt;br /&gt;
* Late homework will be accepted but penalized at the professor's will according to how late it is&lt;br /&gt;
* '''All electronic material must be sent to the professors' email, with the string &amp;quot;[iprj-pe]&amp;quot; as part of the subject of the email. You will receive an automatic confirmation.'''&lt;br /&gt;
&lt;br /&gt;
=== Assignment 0 ===&lt;br /&gt;
* Exercise 1.1 of the main book&lt;br /&gt;
* Suggested due date: Before thursday of the 2nd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 1 ===&lt;br /&gt;
* Exercise 1 Ch1 of the Pattern Theory book by Mumford &amp;amp; Desolneux,&lt;br /&gt;
''Simulating Discrete Random Variables'' (pp 51, 52, 53)&lt;br /&gt;
* No need to read this book for this exercise. You will review discrete random variables in the context of Markov chains for natural language processing; this is basic for most AI bots nowadays. If you're curious about the applications, you can read the book chapter just for fun.&lt;br /&gt;
* Suggested due date: Before Thursday of the 3rd week.&lt;br /&gt;
&lt;br /&gt;
=== Assignment 2: Exercise list for chapter 1 ===&lt;br /&gt;
7 Exercises: 1.3, 1.5, 1.6, 1.7, 1.9, 1.10, 1.19&lt;br /&gt;
* Suggested due date: at least 1 week before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 3: Exercise list for chapter 2 ===&lt;br /&gt;
11 Exercises: 2.1, 2.4, 2.6, 2.8, 2.9, 2.10, 2.12, 2.14, 2.15, 2.18&lt;br /&gt;
Computer: 2.26&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 4: Exercise list for chapter 3 ===&lt;br /&gt;
Exercises: 3.2, 3.5a-c, 3.10a-d, 3.16i-iv, 3.25a-b, 3.37, 3.58&lt;br /&gt;
* Due date: before P1 (suggested)&lt;br /&gt;
&lt;br /&gt;
=== Assignment 5: Exercise list for chapter 5 (MCMC) ===&lt;br /&gt;
4 Exercises: 5.1, 5.2, 5.5, 5.6&lt;br /&gt;
* Due date: terca 5abr22 23:59&lt;br /&gt;
&lt;br /&gt;
=== Assignment 6: Exercise list for chapter 6 ===&lt;br /&gt;
4 Exercises: 6.3, 6.4, 6.7, 6.8&lt;br /&gt;
* Due date: Ter12abr22&lt;br /&gt;
&lt;br /&gt;
== Exams ==&lt;br /&gt;
* '''P1:''' 22mar22&lt;br /&gt;
* '''P2:'''' 16-18mai22 (escolher)&lt;br /&gt;
* '''Final-Sub:''' 19-20mai22 (escolher)&lt;br /&gt;
&lt;br /&gt;
== Evaluation criteria ==&lt;br /&gt;
See course plan on moodle, tab &amp;quot;Boas-vindas&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Awesome Links == &lt;br /&gt;
* Course on robotic path planning with applications of stochastic processes: https://natanaso.github.io/ece276b/schedule.html&lt;br /&gt;
* Paper: Markovian robots: minimal navigation strategies for active particles, Arxiv 2017&lt;br /&gt;
* Paper: Stochastic processes in vision: from Langevin to Beltrami https://ieeexplore.ieee.org/document/937531/&lt;br /&gt;
* Cool applications: https://math.stackexchange.com/questions/1543211/which-research-groups-use-stochastic-processes-and-or-stochastic-differential-eq&lt;br /&gt;
* Paper: Building Blocks for Computer Vision with Stochastic Partial Differential Equations https://link.springer.com/article/10.1007/s11263-008-0145-5&lt;br /&gt;
* Paper: Variational Bayesian Multiple Instance Learning with Gaussian Processes, CVPR 2017&lt;br /&gt;
* Paper: Correlational Gaussian Processes for Cross-domain Visual Recognition, CVPR 2017&lt;br /&gt;
*  COPPE Sistemas curso CPS767 - 2021/1 - Algoritmos de Monte Carlo e Cadeias de Markov https://www.cos.ufrj.br/~daniel/mcmc/ playlist: https://www.youtube.com/watch?v=sDUaMoMkmGc&amp;amp;list=PLP0bYj2MTFcs8yyA-Y4GYNahJWiZk2iOu&lt;br /&gt;
* Course pages for previous years: '''[[PE2020 (canceled)|2020/1a (Canceled due to COVID-19)]], [[PE2019|2019]], [[PE2018|2018]], [[PE2012|2012]]'''&lt;br /&gt;
&lt;br /&gt;
=== Neural Nets and Stochastic Processes ===&lt;br /&gt;
&lt;br /&gt;
* Generative Models for Stochastic Processes Using Convolutional Neural Networks, arxiv, pesquisadores brasileiros (USP)&lt;br /&gt;
* Bayesian SegNet: Model Uncertainty in Deep Convolutional Encoder-Decoder Architectures for Scene Understanding, Cipolla et. al arxiv 2016&lt;br /&gt;
&lt;br /&gt;
== Keywords ==&lt;br /&gt;
random fields, stochastic modeling, data science, queue theory, machine learning, poisson process, markov chains, Gaussian processes, Bernoulli processes, soft computing, random process, Brownian motion, robot path planning, artificial intelligence, simulation, sampling, pattern formation, signal processing, text processing, image processing, dimentionality reduction, diffusion, Markov Chain Monte Carlo MCMC, tracking, branching process, stochastic calculus, SDEs&lt;br /&gt;
&lt;br /&gt;
[[Category:Lab Macambira]] [[Category:IPRJ]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=AL&amp;diff=41623</id>
		<title>AL</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=AL&amp;diff=41623"/>
		<updated>2023-08-16T17:13:28Z</updated>

		<summary type="html">&lt;p&gt;V1z: redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Algebra_Linear]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41622</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41622"/>
		<updated>2023-08-14T21:03:54Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Livros Principais */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
&lt;br /&gt;
==== Outros Livros ====&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41621</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41621"/>
		<updated>2023-08-14T21:03:23Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Provas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
&lt;br /&gt;
==== Outros Livros ====&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: 27set23 &lt;br /&gt;
*P2: 22nov23&lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41620</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41620"/>
		<updated>2023-08-14T18:21:38Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
&lt;br /&gt;
==== Outros Livros ====&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: &lt;br /&gt;
*P2: &lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[ALN|Curso de Algebra Linear Numerica de graduacao do IPRJ ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41619</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41619"/>
		<updated>2023-08-14T18:20:50Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Livros Principais */ books&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-Graduate-Texts-Mathematics-dp-1468494481/dp/1468494481 Linear Algebra, Greub, 4a ed.]&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
&lt;br /&gt;
==== Outros Livros ====&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: &lt;br /&gt;
*P2: &lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
Curso de Algebra Linear Numerica de graduacao d IPRJ [[ALN]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41618</id>
		<title>Algebra Linear</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear&amp;diff=41618"/>
		<updated>2023-08-14T17:22:53Z</updated>

		<summary type="html">&lt;p&gt;V1z: inicio Algebra Linear 2023&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a pagina principal de um curso de Álgebra Linear sendo ministrado em 2023/2 no [http://pt.wikipedia.org/wiki/IPRJ IPRJ]/[http://pt.wikipedia.org/wiki/IPRJ UERJ]. Trata-se de uma disciplina a nível de pós-graduação, útil como embasamento matemático para modelagem computacional, machine learning, métodos numéricos, e áreas afins.&lt;br /&gt;
&lt;br /&gt;
== Informacoes Gerais ==&lt;br /&gt;
* Instrutor: prof. [http://rfabbri.github.io Ricardo Fabbri], Ph.D.&lt;br /&gt;
* Periodo: 2023, segundo semestre, voltado ao Mestrado e Doutorado em Modelagem Computacional - Capes 6&lt;br /&gt;
* Horario: Tercas e Quartas, 9:40-11:30am, sala 212&lt;br /&gt;
&lt;br /&gt;
=== Pre-requisitos ===&lt;br /&gt;
* Teorico: Nenhum. Familiaridade com álgebra linear básica, geometria analítica e lógica matemática formal pode ser útil.&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
&lt;br /&gt;
== Recursos Principais ==&lt;br /&gt;
=== Bibliografia ===&lt;br /&gt;
==== Livros Principais ====&lt;br /&gt;
* [https://www.amazon.com/Linear-Algebra-2nd-Kenneth-Hoffman/dp/0135367972 Linear Algebra, Hoffman &amp;amp; Kunze, 2a. ed.]&lt;br /&gt;
&lt;br /&gt;
==== Outros Livros ====&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
*P1: &lt;br /&gt;
*P2: &lt;br /&gt;
&lt;br /&gt;
== Criterio de Avaliacao ==&lt;br /&gt;
  M = (P1 + P2)/2   &lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
Curso de Algebra Linear Numerica de graduacao d IPRJ [[ALN]]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41610</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41610"/>
		<updated>2023-06-17T03:01:35Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Entrega do Trabalho */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
1) Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
&lt;br /&gt;
2) Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
&lt;br /&gt;
3) Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
&lt;br /&gt;
4) Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
5) Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
&lt;br /&gt;
6) Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
&lt;br /&gt;
7) Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
* Apresentação Parcial ''(26jun23)''&lt;br /&gt;
** Etapa 4 acima, e etapa 3 descrita no readme da base recdev (classificador simples e sua validacao)&lt;br /&gt;
** A apresentação será informal, todos os membros do grupo devem falar, e duvidas devem ser tiradas. &lt;br /&gt;
** Nao precisa fazer slides, mas sim rodar código na hora.&lt;br /&gt;
&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''10jul23'''(era: 2 semanas antes da P2 até a meia-noite)&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''14jul23'''(era: 1 semana antes da P2 até a meia-noite) (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 10jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 13jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41609</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41609"/>
		<updated>2023-06-17T03:00:21Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Entrega do Trabalho */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
1) Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
&lt;br /&gt;
2) Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
&lt;br /&gt;
3) Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
&lt;br /&gt;
4) Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
5) Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
&lt;br /&gt;
6) Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
&lt;br /&gt;
7) Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
* Apresentação Parcial ''(26jun23)''&lt;br /&gt;
** Etapa 4 acima, e etapa 3 descrita no readme da base recdev (classificador simples e sua validacao)&lt;br /&gt;
** A apresentação será informal, todos os membros do grupo devem falar, e duvidas devem ser tiradas. &lt;br /&gt;
** Nao precisa fazer slides, mas sim rodar código na hora.&lt;br /&gt;
&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''10jul23'''(era: 2 semanas antes da P2 até a meia-noite)&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''14jul23'''(era: 1 semana antes da P2 até a meia-noite) (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 10jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 13jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41608</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41608"/>
		<updated>2023-06-17T02:55:21Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Entrega do Trabalho */ apres parcial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
1) Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
&lt;br /&gt;
2) Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
&lt;br /&gt;
3) Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
&lt;br /&gt;
4) Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
5) Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
&lt;br /&gt;
6) Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
&lt;br /&gt;
7) Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
* Apresentação Parcial ''(26jun23)''&lt;br /&gt;
** Etapa 4 acima, e etapa 3 descrita no readme da base recdev (classificador simples e sua validacao)&lt;br /&gt;
** A apresentação será informal, todos os membros do grupo devem falar, e duvidas devem ser tiradas. &lt;br /&gt;
** Nao precisa fazer slides, mas sim rodar código na hora.&lt;br /&gt;
&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 10jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 13jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41607</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41607"/>
		<updated>2023-06-17T02:47:49Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Procedimento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
1) Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
&lt;br /&gt;
2) Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
&lt;br /&gt;
3) Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
&lt;br /&gt;
4) Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
5) Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
&lt;br /&gt;
6) Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
&lt;br /&gt;
7) Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 10jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 13jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41606</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41606"/>
		<updated>2023-06-17T02:47:10Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Procedimento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
1) Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
&lt;br /&gt;
2) Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
3) Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
4) Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
5) Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
6) Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
7) Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 10jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 13jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41605</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41605"/>
		<updated>2023-06-17T02:46:16Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Procedimento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
1) Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
2) Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
3) Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
4) Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
5) Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
6) Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
7) Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 10jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 13jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41604</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41604"/>
		<updated>2023-06-17T02:41:15Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Entrega do Trabalho */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
* Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
* Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
* Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
* Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
* Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
* Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
* Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 10jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 13jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41603</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41603"/>
		<updated>2023-06-17T02:40:10Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Entrega do Trabalho */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
* Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
* Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
* Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
* Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
* Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
* Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
* Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. &lt;br /&gt;
** A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''dia 11jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''dia 10jul23''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41602</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41602"/>
		<updated>2023-06-17T02:36:12Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Entrega do Trabalho */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
* Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
* Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
* Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
* Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
* Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
* Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
* Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no  '''dia 13jul23'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''a definir (era: dia 18Mai21)''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41601</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41601"/>
		<updated>2023-06-17T02:09:36Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Provas */  data provas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
* Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
* Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
* Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
* Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
* Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
* Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
* Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''a definir (era: dia 17Mai21)'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''a definir (era: dia 18Mai21)''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' 17jul23&lt;br /&gt;
* '''Final-Sub:''' 24jul23&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41600</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41600"/>
		<updated>2023-06-17T02:03:06Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Procedimento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
* Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1''' (2023: definir na apresentação de progresso parcial)&lt;br /&gt;
* Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
* Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
* Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
* Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
* Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
* Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''a definir (era: dia 17Mai21)'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''a definir (era: dia 18Mai21)''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' 08ago22 Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' seg12set22&lt;br /&gt;
* '''Final-Sub:''' seg26set22&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
	<entry>
		<id>http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41599</id>
		<title>Algebra Linear Numerica</title>
		<link rel="alternate" type="text/html" href="http://wiki.nosdigitais.teia.org.br/index.php?title=Algebra_Linear_Numerica&amp;diff=41599"/>
		<updated>2023-06-17T02:00:50Z</updated>

		<summary type="html">&lt;p&gt;V1z: /* Tarefa 2: Ajuste de curvas (entrega 14jul22) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é a página oficial do curso de Álgebra Linear Numérica (graduação) do [http://en.wikipedia.org/wiki/IPRJ IPRJ]/UERJ Nova Friburgo, 2023, contendo material potencialmente útil ao publico geral.&lt;br /&gt;
* Links para os cursos de '''[[ALN2012|2012]]''', '''[[ALN2013|2013]]''', '''[[ALN2015|2015]]''', '''[[ALN2016|2016]]''', '''[[ALN2018|2018]]''', '''[[ALN2019|2019]]''' e '''[[ALN2022|2022]]'''&lt;br /&gt;
&lt;br /&gt;
= Informacao Basica =&lt;br /&gt;
* Instrutor: [http://rfabbri.github.io prof. Ricardo Fabbri, Ph.D.]&lt;br /&gt;
==Horario==&lt;br /&gt;
* Segundas 9:40-12:20 Sala 217&lt;br /&gt;
* Quintas 7:50-9:40 Sala 217&lt;br /&gt;
Duvidas: agendar individualmente com o professor ou procura-lo na sala 110&lt;br /&gt;
&lt;br /&gt;
== Avisos ==&lt;br /&gt;
* Por email&lt;br /&gt;
* Tambem ver Moodle (caso seja usado)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* Usaremos o [[Scilab]] primariamente. Para explorar algoritmos de porte pequeno e médio com matrizes, as linguagens do tipo Lab (como Matlab, Scilab e Octave) são as mais simples, úteis e diretas.&lt;br /&gt;
** Ver funcoes &amp;lt;tt&amp;gt;svd&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;sva&amp;lt;/tt&amp;gt;, e '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' (barra invertida)&lt;br /&gt;
* Python e Octave sao alternativas aceitaveis&lt;br /&gt;
&lt;br /&gt;
== Tarefas e Projetos ==&lt;br /&gt;
&lt;br /&gt;
As tarefas devem ser formatadas com notacao matematica adequada, preferencialmente em [[Latex]].&lt;br /&gt;
&lt;br /&gt;
'''Somente serao aceitos arquivos eletronicos no formato PDF ou outro formato aberto como .odt'''&lt;br /&gt;
&lt;br /&gt;
Quando a tarefa involver qualquer programacao, o aluno devera enviar o codigo fonte. O codigo junto com a documentacao devera estar dentro de um&lt;br /&gt;
unico diretorio comprimido com .zip ou tar, com o nome do aluno, disciplina e data.&lt;br /&gt;
&lt;br /&gt;
Enviar todo email com a tag &amp;quot;ALNIPRJ&amp;quot; no subject para garantir recebimento.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 0  ===&lt;br /&gt;
* Assistir videos introdutorios do curso relacionado ALN+ARN 2022: &lt;br /&gt;
# Motivacao dos cursos de Algebra Linear Numerica e Analise no Rn para computacao Prof Fabbri https://youtu.be/Tm5F2t3NriI&lt;br /&gt;
# Continuacao do prof Francisco https://youtu.be/1o-pUSbkQK  (video privado - adicione a letra g ao final da URL)&lt;br /&gt;
* Ler Aula 1 Apostila da disciplina (apostila prof. Fabbri listada nas referencias)&lt;br /&gt;
* Professor ira escolher alunos para comentar em aula *parte por parte* do video, em especial discutiremos a opiniao do(a) aluno(a) sobre essas disciplinas no curso de computacao, e receber bonus&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 1 ===&lt;br /&gt;
* SVD + Scilab&lt;br /&gt;
** Plotar circulo unitario&lt;br /&gt;
** Escolha uma matriz A&lt;br /&gt;
** Transformar cada ponto por A&lt;br /&gt;
** '''SVD visual: visualizar os eixos e esticamento da transformacao efetuada por A'''. &lt;br /&gt;
** Realizar SVD usando a funcao SVD propriamente dita&lt;br /&gt;
** '''Analise a relacao dos eixos encontrados visualmente com as matrizes U e V.'''&lt;br /&gt;
** Repetir com outras matrizes A, aleatorias e nao-aleatorias. Qual o poder de modelagem de matrizes na pratica que voce pode observar assim?&lt;br /&gt;
** Digitar o resultado, preferencialmente em [[Latex]], e entregar por email ou impresso.&lt;br /&gt;
&lt;br /&gt;
=== Tarefa 2: Ajuste de curvas ===&lt;br /&gt;
Uma das principais aplicações dos métodos numéricos de álgebra linear vistos em&lt;br /&gt;
aulas consiste na solução de sistemas por mínimos quadrados. Isto, por sua vez,&lt;br /&gt;
é muito útil para ajustar curvas algébricas (polinomiais) a dados experimentais,&lt;br /&gt;
por exemplo: encontrar retas, círculos, ou outras cônicas que passam próximos de&lt;br /&gt;
dado um conjunto de pontos.&lt;br /&gt;
* Ajuste de reta (opcional - para aprendizado apenas)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma reta e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos pontos gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
* Ajuste de cônicas (obrigatorio)&lt;br /&gt;
** simule a geração de um conjunto sintético de pontos &amp;quot;experimentais&amp;quot; ao longo de uma curva polinomial bi-dimensional de grau 2 (círculo, parábola, elipse..) e os perturbe com a função &amp;lt;tt&amp;gt;rand()&amp;lt;/tt&amp;gt; ao longo de cada coordenada&lt;br /&gt;
** use a &amp;quot;barra invertida&amp;quot; '&amp;lt;tt&amp;gt;\&amp;lt;/tt&amp;gt;' do Scilab para gerar a curva que mais se aproxima dos dados gerados&lt;br /&gt;
** plote seus resultados para diferentes intensidades de ruído&lt;br /&gt;
&lt;br /&gt;
=== Projeto de Reconhecimento de Faces ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Album com Algumas Faces (Facebook upload) ====&lt;br /&gt;
[[Imagem:Album1.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Exemplo de Faces detectadas, a serem reconhecidas no projeto (logo apos Facebook upload) ====&lt;br /&gt;
[[Imagem:Album2-faces.png|300px]]&lt;br /&gt;
&lt;br /&gt;
==== Procedimento ====&lt;br /&gt;
&lt;br /&gt;
* Monte um grupo de colegas, de 2-3 pessoas, para fazer o trabalho: '''Definir ate 1a aula apos P1'''&lt;br /&gt;
* Baixe este conjunto de bases de dados de faces: [https://github.com/rfabbri/recdev RecDev]&lt;br /&gt;
* Inicie com a base de dados very-easy. Siga as instrucoes no README&lt;br /&gt;
* Uma vez debugado seu reconhecedor, forneca uma taxa de acerto, usando validacao cruzada separando parte das fotos para treino, parte para teste, e fazendo uma media da taxa de acerto para varias particoes diferentes. Recomendo iniciar com o procedimento retirar 1 foto por pessoa para teste, e usar o restante para reconhecimento, e repetir o processo 10 vezes para comecar. O pseudocodigo fica assim:&lt;br /&gt;
&lt;br /&gt;
  erro_medio := 0&lt;br /&gt;
  faca n vezes  // n seria o numero de simulacoes, por exemplo, 10&lt;br /&gt;
    bd_treino := base de dados completa (todas as fotos)&lt;br /&gt;
    para cada pessoa p&lt;br /&gt;
        bd_treino := bd_treino menos uma foto aleatoria da pessoa p&lt;br /&gt;
        adicione a bd_teste essa foto aleatoria&lt;br /&gt;
    &lt;br /&gt;
    treine seu reconhecedor com a base de dados bd_treino&lt;br /&gt;
    erro_novo := calcule a taxa de erro testando o reconhecedor nas fotos em bd_teste&lt;br /&gt;
    erro_medio := erro_medio + erro_novo&lt;br /&gt;
  fim faca&lt;br /&gt;
  erro_medio = erro_medio/n&lt;br /&gt;
  mostre o erro medio&lt;br /&gt;
  bonus: mostre a matriz de confusao&lt;br /&gt;
&lt;br /&gt;
* Use essa validacao cruzada para melhorar seu reconhecedor. Melhore esse codigo para poder examinar os casos de erro, analise, escreva no seu relatorio sua analise, e tente procurar a fonte do erro e melhorar o reconhecedor.&lt;br /&gt;
* Sera dada maior nota aos alunos que implementarem esse codigo com indices, sem precisar copiar as fotos na memoria para gerar bd_treino e bd_teste. Ao ler imagens, seu codigo tambem devera ser independente do numero de imagens.&lt;br /&gt;
* Uma vez debugado seu reconhecedor e validacao cruzada, rode nas bases easy, medium, hard e extras/facebookfaces e extras/facebookfaces2. Relate seus resultados e dificuldades. Se nao rodar em alguma dessas, ou se o relatorio nao tiver resultados condizentes, a nota sera penalizada.&lt;br /&gt;
* Recomendamos dividir o trabalho da seguinte forma: apos especificar a leitura da base de dados a partir dos arquivos e o formato da base de dados na linguagem, outro colega deve implementar a validacao cruzada.&lt;br /&gt;
* Seu codigo deve funcionar para um numero de fotos diferentes por pessoa. Por exemplo, 5 fotos para a pessoa 1, e 3 fotos para a pessoa 2.&lt;br /&gt;
* Pode assumir que as imagens sao 100x100&lt;br /&gt;
* Codigo para ajudar no trabalho: Rotinas PCA em scilab [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca.sci sip_pca.sci], [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_project.sci sip_pca_project.sci]. Use a seguinte rotina para aprender a usar este codigo: [https://github.com/rfabbri/siptoolbox/blob/master/macros/sip_pca_test.sce sip_pca_test.sce]&lt;br /&gt;
* Fragmentos de codigo de anos anteriores (so pra ter uma ideia, o seu codigo devera ser muito melhor): [https://github.com/rfabbri/aln-src aln-src]&lt;br /&gt;
&lt;br /&gt;
==== Entrega do Trabalho ====&lt;br /&gt;
&lt;br /&gt;
O trabalho devera ser entrege nas seguintes partes:&lt;br /&gt;
* Relatorio &lt;br /&gt;
** '''Data de entrega:''' '''2 semanas antes da P2 até a meia-noite'''&lt;br /&gt;
** Secoes Obrigatorias:&lt;br /&gt;
*** Introducao&lt;br /&gt;
*** Descricao clara do problema&lt;br /&gt;
*** Descricao da implementacao&lt;br /&gt;
*** '''Mais importante:''' Descricao do processo de desenvolvimento &lt;br /&gt;
**** Experimentos, discussao, analise dos resultados e '''estudo detalhado dos casos de falha'''.&lt;br /&gt;
*** Conclusao e ideias para trabalho futuro&lt;br /&gt;
*** Cada membro do grupo deverá também escrever uma seção de, no mínimo, 2 páginas relatando sua contribuição e experiencia com o trabalho&lt;br /&gt;
&lt;br /&gt;
* Codigo&lt;br /&gt;
** '''Data de entrega:''' '''1 semana antes da P2 até a meia-noite''' (melhoras podem ser entregues ate 3 dias antes da Pf)&lt;br /&gt;
** Dividir a entrega do codigo em 2 partes:&lt;br /&gt;
*** Codigo-fonte&lt;br /&gt;
**** README devera incluir instrucoes detalhadas de como rodar o codigo&lt;br /&gt;
**** Calcular a taxa de acerto do algoritmo em validacao cruzada&lt;br /&gt;
** melhorias podem ser entregues juntos ao relatorio, desde que, no minimo, o codigo esteja fornecendo uma taxa de acerto e rodando nas bases easy e very-easy&lt;br /&gt;
&lt;br /&gt;
'''Aviso:''' &lt;br /&gt;
* Criterio de avaliacao: A nota de trabalho sera dada com base na qualidade do relatorio&lt;br /&gt;
* '''Bonus #1:''' O grupo que tiver melhor performance obtera nota 10.0 no trabalho. O segundo melhor grupo obtera um bonus de 2 pontos no trabalho.&lt;br /&gt;
** A taxa de reconhecimento sera medida em uma base elaborada pelo professor durante a correcao, sem o conhecimento previo do aluno. A base de treinamento sera entregue ao aluno no mesmo formato da base &amp;lt;tt&amp;gt;recdev&amp;lt;/tt&amp;gt; acima, no '''a definir (era: dia 17Mai21)'''&lt;br /&gt;
** A performance para bonus sera medida na presenca do professor, durante processo de correcao em horario de aula no '''a definir (era: dia 18Mai21)''', usando-se uma base de teste fornecida no ato. O formato da base de teste sera da seguinte forma:&lt;br /&gt;
*** arquivos no formato &amp;lt;pre&amp;gt;&amp;lt;id_pessoa&amp;gt;-&amp;lt;id_foto&amp;gt;.jpg&amp;lt;/pre&amp;gt; todas na mesma pasta&lt;br /&gt;
*** Por exemplo, 17-3.jpg seria pessoa 17, foto numero 3 da base de teste&lt;br /&gt;
*** Este id nao tem relacao com o id usado na base de treino&lt;br /&gt;
*** Se houver mais de uma foto teste por pessoa, seu sistema pode usar todas essas fotos para tentar identificar a pessoa&lt;br /&gt;
*** Tarefa do seu algoritmo: dadas diversas fotos de uma mesma pessoa desconhecida, do tipo: &amp;lt;pre&amp;gt;17-1.jpg, 17-2.jpg, 17-3.jpg, 17-4.jpg, 17-5.jpg&amp;lt;/pre&amp;gt; Qual o id real dessa pessoa 17 na base de treino? Serao apresentadas varias pessoas, e o grupo que acertar mais vence. Nao sera permitido adaptacao do codigo, exceto para mostrar a pasta de teste.&lt;br /&gt;
* O relatorio de cada aluno tambem devera conter um relato da participacao na competicao do bonus, e ira contar na nota do trabalho mesmo se nao ganhar o bonus&lt;br /&gt;
&lt;br /&gt;
=== Projeto: Análise de Redes Sociais  ===&lt;br /&gt;
&lt;br /&gt;
Neste projeto o aluno coletara uma rede social, por exemplo a rede de amigos do&lt;br /&gt;
facebook, ou uma rede de troca de mensagens de email, e fara uma análise dos nós mais importantes em relação a PageRank e&lt;br /&gt;
outras características de difusão na topologia do grafo. Isso poderia ser util,&lt;br /&gt;
por exemplo, para ordenar a sua lista de amigos por ordem de amigo mais&lt;br /&gt;
&amp;quot;influente&amp;quot;, ou para identificar maneiras de aumentar sua conexao&lt;br /&gt;
na rede (por exemplo, numa rede de negocios).&lt;br /&gt;
&lt;br /&gt;
Os passos do projeto sao:&lt;br /&gt;
&lt;br /&gt;
# Obter sua rede social no formato GML&lt;br /&gt;
## Redes de troca de emails: http://hera.ethymos.com.br:1080/redes/python/autoRede/escolheRedes.php&lt;br /&gt;
## Sua rede amigos do facebook: http://snacourse.com/getnet/&lt;br /&gt;
# Visualizar a rede no software Gephi&lt;br /&gt;
## Baixe o Gephi em https://gephi.org&lt;br /&gt;
## Realize o tutorial basico do Gephi (do menu Help)&lt;br /&gt;
## Abrir o arquivo GML no Gephi&lt;br /&gt;
# Obter a matriz de Markov dessa rede no Scilab, considerando pesos nas arestas como no algoritmo PageRank&lt;br /&gt;
## Exportar a rede como matriz de adjacencias no Gephi (aprender como fazer)&lt;br /&gt;
# Calcular o autovetor dominante (PageRank) no Scilab&lt;br /&gt;
# Interpretar o que isso pode vir a dizer sobre a importância relativa dos seus amigos na rede de amizades&lt;br /&gt;
## Por exemplo, a pessoa tem muitos amigos que tem muitos amigos&lt;br /&gt;
## O que um caminhante aleatório ou quer dizer aqui? Discuta o que um processo de difusao significaria na rede de amizades. Talvez uma rede de indicacoes?&lt;br /&gt;
## Invente alguma outra medida nessa rede da importancia relativa dos nos&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Links interessantes ====&lt;br /&gt;
* veja nossas aulas sobre grafos e matrizes&lt;br /&gt;
* labmacambira.sf.net/redes&lt;br /&gt;
* [[ARS| Análise de redes sociais]]&lt;br /&gt;
&lt;br /&gt;
== Conteudo aproximado ==&lt;br /&gt;
* Foco: [http://pt.wikipedia.org/wiki/SVD SVD]/Singular Value decomposition, auto-valores/auto-vetores, [http://pt.wikipedia.org/wiki/PCA PCA/Principal Component Analysis], demais decomposicoes matriciais.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Recursos principais ==&lt;br /&gt;
* [https://github.com/rfabbri/aln-book/raw/master/fabbri-lecture-notes-aln.pdf Apostila prof. Fabbri]&lt;br /&gt;
* Excelente livro recente cobrindo partes deste curso: Applied Linear Algebra, Peter J. Olver and Chehrzad Shakiban&lt;br /&gt;
[[Arquivo:Ala2-olver-signature.png|200px|thumb|PDF assinado pelos autores para prof. Fabbri|link=http://www-users.math.umn.edu/~olver/ala.html]]&lt;br /&gt;
* Livro classico: &amp;quot;Matrix Computations&amp;quot;, Gene Golub et. al. (inventor do algoritimo mais usado de SVD).&lt;br /&gt;
[[Arquivo:Golub-vanloan-thumb.jpg|link=https://www.amazon.com/Computations-Hopkins-Studies-Mathematical-Sciences/dp/1421407949]]&lt;br /&gt;
&lt;br /&gt;
=== Outros Recursos ===&lt;br /&gt;
&lt;br /&gt;
* Nao ha livro texto no nivel desta disciplina. mas veja a bibliografia do curso de Analise Matricial da Pos:&lt;br /&gt;
** Outro livro: &amp;quot;Numerical Matrix Analysis&amp;quot;, Ilse Ipsen http://www2.alibris-static.com/isbn/9780898716764.gif&lt;br /&gt;
** Veja tambem os livros do Gilbert Strang.&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/fabbri-coordinate_changes.pdf Notas sobre sistemas de coordenadas, matriz relativa a dadas bases, rotacoes (pdf)]&lt;br /&gt;
&lt;br /&gt;
=== Aulas: Listagem parcial===&lt;br /&gt;
&lt;br /&gt;
* Primeiras aulas: overview, SVD, PCA, aplicacoes, notacao, bases vs sistemas de coordenadas&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120322.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-rotacoes-sistemas-coordenadas-20120404.odp Rotacoes e Sistemas de Coordenadas]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/aula-svd-02.odp SVD]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120627.pdf Aula Informal projeto e relatorio eigenfaces/PCA]&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/informal-lecture-notes-numerical_linear_algebra-cardo_fabbri-whiteboard-20120704.pdf Aula Informal PCA]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-grafos-matrizes-201306.pdf Grafos e matrizes, cadeias de Markov, laplaciano de grafos]&lt;br /&gt;
* [http://wiki.nosdigitais.teia.org.br/Imagem:Aula-pagerank.pdf PageRank e outras tecnicas de Ranking, reducao de dimensionalidade, e machine learning]. Ver tambem [http://www.ams.org/samplings/feature-column/fcarc-pagerank]&lt;br /&gt;
&lt;br /&gt;
==== Para referencia: aulas de Analise Matricial: listagem parcial ====&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/01-analise_matricial-2012-livro_cap01.odp Matrizes, Notacao e Conceitos Elementares] (~cap 1 livro)&lt;br /&gt;
* [http://www.lems.brown.edu/~rfabbri/stuff/02-analise_matricial-2012-livro_cap02_parte1.odp Sensitividade, Erros e Normas - parte 1] (cobre cap 2 livro ate normas de matrizes)&lt;br /&gt;
&lt;br /&gt;
=== Provas ===&lt;br /&gt;
* '''P1:''' 08ago22 Provas anteriores: [http://wiki.nosdigitais.teia.org.br/Imagem:P1-aln.pdf 2012]&lt;br /&gt;
* '''P2:''' seg12set22&lt;br /&gt;
* '''Final-Sub:''' seg26set22&lt;br /&gt;
&lt;br /&gt;
=== Criterio de Avaliacao ===&lt;br /&gt;
* '''Trabalhos:''' 20% da media - o ultimo trabalho (reconhecimento) valera a metade disto, ou seja, 10% da media.&lt;br /&gt;
* '''Bonus de participacao:''' 10%-20% a nota total trabalhos e tarefas T, ''adicionais''. A criterio do professor, incluindo presenca em aula, participacao em aula, esforco de realizar tarefas excelentes e ir alem do esperado.&lt;br /&gt;
* O criterio final ficou (favor avisar se precisar adicionar detalhes ou corrigir no caso de erro/discrepancia):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
      M_p = (P1 + P2)/2   &lt;br /&gt;
      M = 0.8*M_p + 0.2*T (atualizado de 10% para 20% com acordo dos alunos), onde T é a nota dos trabalhos&lt;br /&gt;
      Se M &amp;gt;= 5, passou --&amp;gt; M (''facilitando: considere T=10,0 no M `a esquerda desta desigualdade aqui'')&lt;br /&gt;
      prova final - faz quem quiser, mas combinamos que teria de seria feita por quem obtiver M &amp;lt; 5 &lt;br /&gt;
           - facilitando: considere T=10,0 e calcule uma media M otimista, para ver se precisa fazer a final. ou seja:&lt;br /&gt;
&lt;br /&gt;
               - Se M_p &amp;lt; 6.25, precisa fazer final! *************************&lt;br /&gt;
&lt;br /&gt;
      M_f = 0.5*(M + P_f) = 0.5*(0.8M_p + 0.2*T + P_f) = 0.2*P1 + 0.2*P2 + 0.5*P_f + 0.1*T&lt;br /&gt;
      Se M_f &amp;gt;= 5, passa --&amp;gt; M_f&lt;br /&gt;
      Sub: repoe menor de P1, P2, P_f (apenas se alguem faltou alguma prova ou quiser melhorar nota - mas quem entregar ira substituir)&lt;br /&gt;
      M_sub = media com sub&lt;br /&gt;
      Se M_sub &amp;gt;= 5, passou --&amp;gt; M_sub&lt;br /&gt;
&lt;br /&gt;
      Adendo (em acordo com os alunos): a M_sub = M_f pois sera considerada a mesma prova. Quem for usar a prova como Sub ira substituir a nota independentemente do resultado.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Awesome Links ==&lt;br /&gt;
* Curso moderno e basico on-line da Brown University sobre algebra linear e aplicacoes [http://coursera.org/course/matrix] &lt;br /&gt;
* Curso on-line da University of Texas at Austin, Linear Algebra - Foundations to Frontiers: Learn the theory of linear algebra hand-in-hand with the practice of software library development [https://www.edx.org/course/utaustin/ut-5-01x/linear-algebra-foundations/1162]&lt;br /&gt;
=== Machine learning com Algebra Linear Numerica ===&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Non-negative_matrix_factorization Non-negative matrix factorization]&lt;br /&gt;
* [https://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html Incremental PCA]&lt;br /&gt;
&lt;br /&gt;
[[Category:IPRJ]]&lt;br /&gt;
[[Category:Lab Macambira]]&lt;/div&gt;</summary>
		<author><name>V1z</name></author>
	</entry>
</feed>