Funções crescentes, decrescentes, monótonas, pares, ímpares, derivadas no ponto, etc.
Responder

Como determinar a função com pontos existentes

18 fev 2015, 18:11

Olá pessoal,

Estou tentando desenvolver uma aplicação no meu trabalho, mas para isso preciso encontrar a função que represente uma curva que passa pelos seguintes pontos:

(x,y) = (1.000,20) (10.000,10) (50.000,5) (100.000,2)

Como encontrar a curva sabendo os pontos? É possível? Qual a função desta curva?

Estou muito enferrujado na minha matemática, agradeço a ajuda.

Obrigado.

Re: Como determinar a função com pontos existentes

18 fev 2015, 19:57

Como não posso editar, se puderem transfiram pro outro fórum que não é o escolar pois não havia percebido que tinha selecionado o errado, por favor.

O melhor que consegui fazer foi esse gráfico com retas em anexo. Contudo se fosse uma curva seria o ideal para minha aplicação.

f(x)=?
Anexos
Graph - [iTools.SubhashBose.com].png

Re: Como determinar a função com pontos existentes

18 fev 2015, 21:05

Boa tarde!

Eu utilizei regressão linear para encontrar uma curva que se encaixe melhor nestes pontos.
No caso, a regressão transformando os pontos em uma curva logarítmica é a melhor solução para este caso.

\(Y=A+BlogX\)

A tabela abaixo possui tudo o que precisamos:
\(\begin{tabular}{r|c|c|c|c|c}
\hline
X & Y & logX & (logX)^2 & Y^2 & YlogX \\ \hline
1000 & 20 & 3 & 9 & 400 & 60 \\
10000 & 10 & 4 & 16 & 100 & 40 \\
50000 & 5 & 4,69897 & 22,08032 & 25 & 23,49485 \\
100000 & 2 & 5 & 25 & 4 & 10 \\ \hline
\sum 161000 & 37 & 16,69897 & 72,08032 & 529 & 133,49485 \\ \hline
\end{tabular}\)

Agora, vamos resolver a seguinte equação:
\(\left{ \sum Y=NA+B\sum{logX}
\sum {YlogX}=A\sum{logX}+B\sum{(logX)^2}\)

Substituindo os valores, temos:
\(\left{ 37=4A+16,69897B
133,49485=16,69897A+72,08032B\)

Chegamos em:
\(A=46,24552
B=-8,86175\)

Então, a equação \(y=46,24552-8,86175logX\) é uma equação que está bastante próxima dos pontos.
Para saber o grau de correlação entre as variáveis podemos calcular o coeficiente de correlação entre elas.
A fórmula é a seguinte:
\(r=\frac{N\sum{YlogX}-\sum{Y}\sum{logX}}{\sqrt{N\sum{(logX)^2}-(\sum{logX})^2}\sqrt{N\sum{Y^2}-(\sum{Y})^2}}\)

\(r=\frac{4(133,49485)-(37)(16,69897)}{\sqrt{4(72,08032)-(16,69897)^2}\sqrt{4(529)-(37)^2}}
r\approx -0,99755\)

Quanto mais próximo de módulo de 1, melhor a correspondência entre as variáveis.
Neste caso, foi quase perfeita.

Vamos montar uma tabela com as respostas para cada valor de X para esta tabela.
\(\begin{tabular}{|l|l|}
\hline
X & Y \\ \hline
1000 & 19,660 \\ \hline
10000 & 10,799 \\ \hline
50000 & 4,604 \\ \hline
100000 & 1,937 \\ \hline
\end{tabular}\)

Veja que estes valores estão MUITO próximos dos pontos que tem em seu gráfico.
Espero que isto ajude!

Abraços!

Re: Como determinar a função com pontos existentes

18 fev 2015, 23:38

Se pretende uma função que passe nos pontos dados, pode usar interpolação polinomial. Neste caso, o polinómio

\(p(x)=-\frac{17113 x^3}{87318000}+\frac{2801143 x^2}{87318000}-\frac{12593303 x}{8731800}+\frac{1869509}{87318}\)

passa exactamente em todos os pontos da tabela. Em geral, dada uma tabela de valores em n+1 pontos distintos, existe um e um só polinómio de grau menor ou igual que descreve exactamente a tabela dada.

Re: Como determinar a função com pontos existentes

19 fev 2015, 00:48

Boa noite!

Testei a equação que encontrou e acho que faltam alguns 'zeros' no denominador, Sobolev.
Veja se confere com a que encontrei:
\(p(x)=-\frac{17113 x^3}{87318000000000000}+\frac{2801143 x^2}{87318000000000}-\frac{12593303 x}{8731800000}+\frac{1869509}{87318}\)

Acho interpolação por polinômios algo muito interessante para podermos obter uma equação que nos entregue uma curva que passe exatamente pelos pontos dados.

Não me lembrava de 'bate-pronto' desta ferramenta!

Abraços!

Re: Como determinar a função com pontos existentes

19 fev 2015, 16:55

Obrigado pela presteza!

Existe algum tutorial de como encontrar esse polinômio?

Re: Como determinar a função com pontos existentes

19 fev 2015, 17:50

adamopinheiro Escreveu:Obrigado pela presteza!

Existe algum tutorial de como encontrar esse polinômio?


Boa tarde!

Vou deixar abaixo como encontrei o polinômio:
\(f(x)=A(x-1.000)(x-10.000)(x-50.000)+B(x-1.000)(x-10.000)(x-100.000)+C(x-1.000)(x-50.000)(x-100.000)+D(x-10.000)(x-50.000)(x-100.000)\)

Veja que os valores 1.000, 10.000, 50.000, 100.000, que são os valores de x conhecidos, foram inseridos de forma a cada produto possuir 3 a cada vez.
As combinações, 3 a 3, seriam:
1.000, 10.000, 50.000
1.000, 10.000, 100.000
1.000, 50.000, 100.000
10.000, 50.000, 100.000

Qual a ideia? Agora, basta substituir os valores conhecidos de x para obter os também valores conhecidos de f(x)
\(\begin{tabular}{|l|l|}
\hline
x & f(x) \\ \hline
1.000 & 20 \\ \hline
10.000 & 10 \\ \hline
50.000 & 5 \\ \hline
100.000 & 2 \\ \hline
\end{tabular}\)

Vou calcular só o primeiro para entender o processo:
Substituindo x=100.000, f(x)=2:
\(f(2)=A(100.000-1.000)(100.000-10.000)(100.000-50.000)
2=A(99.000)(90.000)(50.000)
A=\frac{2}{445.500.000.000.000}
A=\frac{1}{222.750.000.000.000}\)

Repetindo o mesmo processo, encontrará o B, C e D. Depois, só voltar para 1a. equação, simplificar, que chegará na equação demonstrada anteriormente.
Espero ter ajudado!

Re: Como determinar a função com pontos existentes

19 fev 2015, 22:14

Obrigado! O bom é assim, aprender o caminho das pedras! Fiz umas alterações nas proporções e consegui recalcular com sucesso!

Re: Como determinar a função com pontos existentes

20 fev 2015, 17:03

Boa tarde,

No polinómio que calculei inicialmente interpretei o ponto "." como separador decimal, pelo que os pontos que considerei foram 1, 10, 50, 100. O polinómio interpolador pode ser calculado de modo muito simples, basta procurar por "diferenças divididas, polinómio interpolador de Newton". Em último caso, basta resolver um sistema linear: os coeficientes \(a_0, \cdots, a_n\) do polinómio de grau n \(p_n(x)=a_n x^n + \cdots a_0\) que interpola os valores \((x_0,y_0), \cdots (x_n,y_n)\) podem ser dados pela resolução do sistema

\(\left(\begin{array}1 & x_0 & x_0^2 & \cdots & x_0^n\\ 1 &x_1 & x_1^2& \cdots x_1^n \\ \vdots & \vdots& \vdots & \ddots & \vdots \\ 1 & x_n & x_n^2 & \cdots & x_n^n\end{array}\right)\left(\begin{array}a_0\\a_1\\ \vdots \\ a_n\end{array}\right)\left(\begin{array}y_0\\y_1\\ \vdots \\ y_n\end{array}\right)\)

A matrix deste sistema é invertível sempre que os pontos x_i são distintos.

Re: Como determinar a função com pontos existentes

20 fev 2015, 18:10

Gostei da solução, Sobolev!

Acaba caindo em um sistema linear! Seria o mesmo que procurar \(f(x)=ax^3+bx^2+cx+d\) e substituir os valores para x e f(x) conhecidos. Daria um sistema 4 variáveis (a,b,c,d) e 4 equações.
Ou faz como sugeriu, usando matriz inversa, ou resolve o sistema, escalonando mesmo.

Mas sempre é bom ver soluções diferentes! A que eu sugeri era para não cair em sistema, de forma a encontrar as variáveis A, B, C e D rapidamente. No entanto, ainda teria que manipular algebricamente a equação até chegar no formato desejado.

Abraços!
Responder