Upload
duongnhu
View
215
Download
0
Embed Size (px)
Citation preview
4a Aula - Funcoes de Intervalo (II).
Ciclo for. Leitura e Escrita em Ficheiros.
ProgramacaoMestrado em Engenharia Fısica Tecnologica
Samuel M. [email protected]
Departamento de FısicaInstituto Superior Tecnico
Universidade de Lisboa
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x)
⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Dinamica de Populacoes - Funcao Logıstica
Seja x a fraccao dos indivıduos de uma dada especie emrelacao ao numero total de indivıduos num dado ambiente:
x ∈ [0, 1]
Se pretendermos calcular a sua evolucao no tempo, adependencia mais simples que podemos considerar e que essafraccao ira ser uma funcao do valor fraccao no ano anterior:
xn+1 = f(xn)
Ja vimos que a Lei de Malthus, xn+1 = µ xn, e insuficiente, pois,ou vai para ’0’ ou vai para ’∞’;
Ora sabemos que a fraccao nunca podera ser superior a ’1’.Assim, quando x se aproxima desse valor ’µ’, deve diminuı-lo:
µ(x) = r (1− x) ⇒ xn+1 = r xn (1− xn)
a que se da o nome de funcao logıstica.
Para r ∈ [0, 4], a fraccao xn permanece no intervalo [0, 1].
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica (’Prog05 01.c’)Facamos entao um programa para calcular a funcao logıstica:
#include <stdio.h>int main (){
float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){
printf (”%d: x = %f\n”,i,x);x = r * x * (1 - x);++i;}
return 0;}
}
Programa e identico ao anteriorcom o ajuste da funcao;
Igualmente poderiamos integraro incremento da variavel i nocomando do printf;
Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.
Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica (’Prog05 01.c’)Facamos entao um programa para calcular a funcao logıstica:
#include <stdio.h>int main (){
float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){
printf (”%d: x = %f\n”,i,x);x = r * x * (1 - x);++i;}
return 0;}
}
Programa e identico ao anteriorcom o ajuste da funcao;
Igualmente poderiamos integraro incremento da variavel i nocomando do printf;
Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.
Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica (’Prog05 01.c’)Facamos entao um programa para calcular a funcao logıstica:
#include <stdio.h>int main (){
float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){
printf (”%d: x = %f\n”,i,x);x = r * x * (1 - x);++i;}
return 0;}
}
Programa e identico ao anteriorcom o ajuste da funcao;
Igualmente poderiamos integraro incremento da variavel i nocomando do printf;
Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.
Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica (’Prog05 01.c’)
Facamos entao um programa para calcular a funcao logıstica:
#include <stdio.h>int main (){
float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){
printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}
return 0;
}
}
Programa e identico ao anteriorcom o ajuste da funcao;
Igualmente poderiamos integraro incremento da variavel i nocomando do printf;
Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.
Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica (’Prog05 01.c’)
Facamos entao um programa para calcular a funcao logıstica:
#include <stdio.h>int main (){
float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){
printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}
return 0;
}
}
Programa e identico ao anteriorcom o ajuste da funcao;
Igualmente poderiamos integraro incremento da variavel i nocomando do printf;
Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.
Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica (’Prog05 01.c’)
Facamos entao um programa para calcular a funcao logıstica:
#include <stdio.h>int main (){
float x, r ;int i ;i = 0;r = .4 ;x = 0.75;while (i <= 20){
printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}
return 0;
}
}
Programa e identico ao anteriorcom o ajuste da funcao;
Igualmente poderiamos integraro incremento da variavel i nocomando do printf;
Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.
Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica (’Prog05 01.c’)
Facamos entao um programa para calcular a funcao logıstica:
#include <stdio.h>int main (){
float x, r ;int i = 0;r = .4 ;x = 0.75;while (i <= 20){
printf (”%d: x = %f\n”,i++,x);x = r * x * (1 - x);}
return 0;
}
}
Programa e identico ao anteriorcom o ajuste da funcao;
Igualmente poderiamos integraro incremento da variavel i nocomando do printf;
Note-se os sinais ++ foramcolocados depois o i para que avariavel so seja incrementadadepois de ser passada para afuncao printf.
Note-se que a inicializacaoduma variavel pode sersimultanea a sua declaracao;
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Leitura de Dados a Partir da Shell
Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.
Assim, a linha de inicializacao da variavel r:
r = 0.4;
podera ser substituıda por
printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);
A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:
printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :
printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);
Podemos igualmente juntar as duas leituras.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Leitura de Dados a Partir da Shell
Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:
r = 0.4;
podera ser substituıda por
printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);
A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:
printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :
printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);
Podemos igualmente juntar as duas leituras.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Leitura de Dados a Partir da Shell
Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:
r = 0.4;
podera ser substituıda por
printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);
A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:
printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :
printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);
Podemos igualmente juntar as duas leituras.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Leitura de Dados a Partir da Shell
Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:
r = 0.4;
podera ser substituıda por
printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);
A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:
printf (”Leu o valor %f\n”, r);
Podemos igualmente pedir a para ler a condicao inicial xo :
printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);
Podemos igualmente juntar as duas leituras.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Leitura de Dados a Partir da Shell
Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:
r = 0.4;
podera ser substituıda por
printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);
A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:
printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :
printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);
Podemos igualmente juntar as duas leituras.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Leitura de Dados a Partir da Shell
Vamos alterar o nosso programa (Prog05 01.c) para permitirnovas leituras (ver Prog05 02a4.c). Para permitir a introducaodo valor do parametro µ, em tempo real, a partir do teclado.Assim, a linha de inicializacao da variavel r:
r = 0.4;
podera ser substituıda por
printf(”Escreva, por favor, o valor do parametro ’r’: ”);scanf (”%f ”, &r);
A tıtulo de verificacao podemos acrescentar mais uma linhapara imprimir no ecran a leitura efectuada:
printf (”Leu o valor %f\n”, r);Podemos igualmente pedir a para ler a condicao inicial xo :
printf (”Escreva, por favor, a condicao inicial de ’x’: ”);scanf (”%f ”, &x);
Podemos igualmente juntar as duas leituras.Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica - Graficos
Graficos da funcao logıstica para diferentes valores de µ com xo = 0.7
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7 8 9
x
i
Fig.1 - µ = 0.4
0
0.2
0.4
0.6
0.8
1
0 10 20 30 40 50 60
x
i
Fig.3 - µ = 3.2
0
0.2
0.4
0.6
0.8
1
0 2 4 6 8 10 12 14 16 18 20
x
i
Fig.2 - µ = 2.5
0
0.2
0.4
0.6
0.8
1
0 10 20 30 40 50 60
x
i
Fig.4 - µ = 3.5
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica
0
0.2
0.4
0.6
0.8
1
0 0.5 1 1.5 2 2.5 3 3.5 4
x
rFig.5 - Orbitas periodicas no intervalo µ ∈ [0, 4]
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
3.82 3.83 3.84 3.85 3.86 3.87
x
rFig.6 - Zona de estabilidade µ ∈ [3.82, 3.87]
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Funcao Logıstica – Maxima
A visualizacao dos graficos anteriores pode ser feita usando o sistemade computacao algebrica maxima (xmaxima). Podem usar-se asseguintes intrucoes:
> xmaxima
(%i1) load (”dynamics”);
(%i2) evolution (0.4*x*(1-x), 0.7, 200, [style, lines], [y, 0, 1]);
(%i3) evolution (1.0*x*(1-x), 0.7, 200, [style, lines], [y, 0, 1]);
(%i4) evolution (2.5*x*(1-x), 0.7, 200, [style, dots], [y, 0, 1]);
(%i5) evolution (3.2*x*(1-x), 0.7, 100, [style, dots]);
(%i6) evolution (3.2*x*(1-x), 0.7, 100, [style, lines], [y, 0, 1]);
(%i7) evolution (3.2*x*(1-x), 0.7, 200, [style, points], [y, 0, 1]);
(%i8) evolution (3.5*x*(1-x), 0.7, 2000, [style, dots]);
(%i9) orbits(x*r*(1-x), 0.7, 50, 200, [r, 0, 4], [style, dots]);
(%i10) orbits(x*r*(1-x), 0.7, 50, 200, [r, 3.82, 3.87], [style, dots]);
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.
Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }
Os operadores logicos, usados em C, sao os seguintes:
• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:
• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }
Os operadores logicos, usados em C, sao os seguintes:
• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:
• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;
• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;
• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;
• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;
• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;
• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.
O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (I)
Como se viu, para certos valores de µ, as iteracoes vao para um’valor fixo’ muito depressa, nesses casos podia parar-se o calculomais cedo.Para poder decidir, e necessario usar uma instrucao condicional:
if (Condicao) { ... } else { ... }Os operadores logicos, usados em C, sao os seguintes:• A igualdade faz-se com dois sinais de igual: ’==’;• A condicao diferente ( 6=) faz-se com: ’!=’;• A condicao e (∧) faz-se com: ’&&’;• A condicao ou (∨) e feita com: ’||’;• As desigualdades fazem-se com: ’<’, ’>’, ’>=’, ’<=’;• A negacao e feita por um ponto de exclamacao ’!’;
Para alem das operacoes logicas e possıvel ter no lugar dacondicao uma funcao, uma variavel ou mesmo uma constante.O operador if interpreta como falso o ’0’. Tudo o resto everdadeiro.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.
Seja entao o ciclo:x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x)
x1 = x;++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x
e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x
,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop.
Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;
while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);
if (x1 == x)
x1 = x;
++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x
e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x
,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop.
Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);
if (x1 == x)
x1 = x;
++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x
e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x
,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop.
Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);
if (x1 == x)
x1 = x;++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x
,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop.
Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);
if (x1 == x)
x1 = x;++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x
,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop.
Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x){ ... }
x1 = x;++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop.
Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x){ ... }
x1 = x;++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop.
Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x)
break;x1 = x;++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop. Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (II) (Prog05 05.c)
Para se poder testar se uma iteracao e igual a anterior, enecessario usar uma variavel (x1) que guarde o valor anterior1.Seja entao o ciclo:
x1 = x;while (i <= 20){
printf (”%d: %f\n”,i,x);x = r * x * (1. - x);if (x1 == x)
break;x1 = x;++i;}
Antes de iniciar o loop atribuamosa variavel x1 o valor inicial de x e,a cada iteracao, facamos a suaactualizacao;
Depois de actualizar a variavel x,podemos introduzir a expressaocondicional que testa a igualdade;
Se a igualdade for satisfeita,queremos parar o loop. Tal podeser feito usando a instrucao break.
O break, ao ser executado, quebra a execucao do loop e continua aexecucao do programa na instrucao seguinte ao final do ciclo.
1Note-se que isto so e valido quando os valores sao todos iguais.
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:
(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:
(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:
(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:
(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:
(fabs (x1 – x) < 1.e–6)A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:(fabs (x1 – x) < 1.e–6)
A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:(fabs (x1 – x) < 1.e–6)
A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)
Condicoes (III) (Prog05 06.c)
A condicao de igualdade, vista no exemplo anterior, so muitolentamente e obtida, pois, a tendencia assimptotica podedemorar ate atingir a igualdade.
Por isso, e conveniente fazer uma ligeira alteracao a condicaode igualdade e transforma-la numa relacao de proximidade;
Podemos exigir, por exemplo, que a distancia entre dois valoresseja inferior a 10−6:
−10−6 < (xn+1 − xn) < 10−6
Podemos entao substituir a condicao (x1 == x) por:(((x1 – x) > –1.e–6) && ((x1 – x) < 1.e–6))
Mas isto e uma condicao sobre modulo da diferenca:(fabs (x1 – x) < 1.e–6)
A funcao de C, modulo de um real, e fabs e encontra-se definidaem math.h, assim devemos fazer o include:
#include <math.h>
Mestrado em Engenharia Fısica Tecnologica Programacao - 4a Aula (26.09.2018)