Esta página mostra as diferenças entre as duas revisões da página.
| Ambos os lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
|
inf05504:dicas [2017/04/05 15:46] marcus [Regressão linear com GNU R] |
inf05504:dicas [2025/03/18 11:06] (Actual) |
||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | ==== Plotar dados com Gnuplot ==== | + | ===== Regressão e plots ===== |
| - | Gerar um arquivo dados.txt: | + | ==== Regressão linear com GNU R ==== |
| - | <code> | + | [[http://nbviewer.jupyter.org/url/www.inf.ufrgs.br/~mrpritt/aa/Regressão linear com GNU R.ipynb]] |
| - | # x f(x) | + | |
| - | 1 0.01 | + | |
| - | 2 0.05 | + | |
| - | 4 0.10 | + | |
| - | 8 0.15 | + | |
| - | 16 0.20 | + | |
| - | 32 0.22 | + | |
| - | 64 0.32 | + | |
| - | </code> | + | |
| - | Plotar: chamar "gnuplot" na linha de comando e depois usar os seguintes comandos | + | ==== Plotar dados com Gnuplot ==== |
| - | * Plot simples: <code> plot "dados.txt" w linesp</code> | + | [[http://nbviewer.jupyter.org/url/www.inf.ufrgs.br/~mrpritt/aa/gnuplot.ipynb]] |
| - | * Plot f(x)/log(x): <code>plot "dados.txt" w linesp using 1:($2/log($1))</code> | + | |
| - | + | ||
| - | Eixos: | + | |
| - | * Eixo x: <code> set xlabel "Número de arestas" </code> | + | |
| - | * Eixo y: <code> set ylabel "Tempo (em ms)" </code> | + | |
| - | + | ||
| - | Saida: Para gravar um PDF (para outros formatos usar "help term") | + | |
| - | <code> | + | |
| - | set term pdf | + | |
| - | set output "dados.pdf" | + | |
| - | plot "dados.txt" w linesp | + | |
| - | </code> | + | |
| - | + | ||
| - | + | ||
| - | (Dicas avançadas para gnuplot: [[:tufte|aqui]].) | + | |
| - | + | ||
| - | ==== Regressão linear com GNU R ==== | + | |
| - | + | ||
| - | Gerar um arqivo de dados: | + | |
| - | <code> | + | |
| - | n t | + | |
| - | 2 0.77 | + | |
| - | 4 0.87 | + | |
| - | 8 1.19 | + | |
| - | 16 2.36 | + | |
| - | 32 7.57 | + | |
| - | 64 27.91 | + | |
| - | 128 92.52 | + | |
| - | 256 336.13 | + | |
| - | 512 1434.72 | + | |
| - | 1024 6024.10 | + | |
| - | 2048 24390.20 | + | |
| - | 4096 100000.00 | + | |
| - | </code> | + | |
| - | + | ||
| - | Em GNU R (para uma hipótese polinomial): | + | |
| - | <code> | + | |
| - | d=read.table("r.dat",header=T) | + | |
| - | lm(log10(d$t)~d$n) | + | |
| - | </code> | + | |
| - | ==== Medir tempo ==== | + | ===== Medir tempo ===== |
| - | === Em C++ 11 === | + | ==== Em C++ ==== |
| <code c++> | <code c++> | ||
| #include <chrono> | #include <chrono> | ||
| Linha 71: | Linha 22: | ||
| cout << chrono::duration_cast<chrono::milliseconds>(chrono::system_clock::now()-t).count() << endl; | cout << chrono::duration_cast<chrono::milliseconds>(chrono::system_clock::now()-t).count() << endl; | ||
| </code> | </code> | ||
| - | (No g++: opção "-std=c++0x" para C++ 11.) | + | (No gcc/clang: opção "-std=c++20" para C++ 20.) |
| - | === Em C === | + | ==== Em C ==== |
| [[http://stackoverflow.com/questions/361363/how-to-measure-time-in-milliseconds-using-ansi-c]] | [[http://stackoverflow.com/questions/361363/how-to-measure-time-in-milliseconds-using-ansi-c]] | ||
| Linha 83: | Linha 34: | ||
| * Externamente: [[http://stackoverflow.com/questions/131303/how-to-measure-actual-memory-usage-of-an-application-or-process]] | * Externamente: [[http://stackoverflow.com/questions/131303/how-to-measure-actual-memory-usage-of-an-application-or-process]] | ||
| - | ==== Relatório ==== | + | ===== Relatório ===== |
| * [[Relatório|Regras gerais para relatórios]] | * [[Relatório|Regras gerais para relatórios]] | ||