Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** João Vitor Monteiro Leduino - MAT: 1906488 */
- #include <stdlib.h>
- #include <stdio.h>
- #include <math.h>
- #include <float.h>
- double f1(double x){ /** Função 1----> f(x) = x^2 - 2^x */
- return pow(x, 2) - pow(2, x);
- }
- void metodoBissec1 (){ /** Esta função utiliza a funcao1 para substituir o va- */
- /** lor de x por uma entrada do usuário, depois de ler */
- /** os valores para x ela começa a aplicar o método de */
- /** de Bissecção para cercar o valor da raíz, foi usado */
- /** algoritmo fornecido pelo exercício para o desenvolvi-*/
- /** mento deste programa. */
- double x1, x2, x;
- printf("\nDigite o valor de x1 e x2 da Funcao:\n\n");
- scanf("%f%f", &x1, &x2);
- printf("%lf\n", f1(x1)*f1(x2));
- getchar();
- if ((f1(x1) * f1(x2))<0){
- x = (x1+x2)/2;
- while (fabs (f1(x)) > DBL_EPSILON){
- if ((f1(x1) * f1(x2)) <= 0 )
- x2 = x;
- else
- x1 = x;
- x = (x1 + x2) / 2;
- if(!(fabs(x1 - x2) > DBL_EPSILON)){
- printf("%.16lf\n", x);
- }
- printf("A raiz da Funcao eh, aproximadamente: %.16lf", x);
- }
- }
- else
- printf("Nao ha raizes no intervalo dado.\n");
- }
- double f2(float x){ /** Função 2 ----> f(x) = x^3 - 9x + 3 */
- return pow(x, 3) - (9 * x) + 3;
- }
- void metodoBissec2 (){ /** Esta função utiliza a funcao2 para substituir o va- */
- /** lor de x por uma entrada do usuário, depois de ler */
- /** os valores para x ela começa a aplicar o método de */
- /** de Bissecção para cercar o valor da raíz, foi usado */
- /** algoritmo fornecido pelo exercício para o desenvolvi-*/
- /** mento deste programa. */
- double x1, x2, x;
- printf("\nDigite o valor de x1 e x2 da Funcao:\n\n");
- scanf("%f%f", &x1, &x2);
- printf("%lf\n", f2(x1)*f2(x2));
- getchar();
- if ((f2(x1) * f2(x2))<0){
- x = (x1+x2)/2;
- while (fabs (f2(x)) > DBL_EPSILON){
- if ((f2(x1) * f2(x2)) <= 0 )
- x2 = x;
- else
- x1 = x;
- x = (x1 + x2) / 2;
- if(!(fabs(x1 - x2) > DBL_EPSILON)){
- printf("%.16lf\n", x);
- }
- printf("A raiz da Funcao eh, aproximadamente: %.16lf", x);
- }
- }
- else
- printf("Nao ha raizes no intervalo dado.\n");
- }
- int main () { /** Na função principal o programa da algumas opções */
- /** para o usuário escolher, após isso, ele chama a */
- /** função de acordo com a opção do usuário. */
- int opcao;
- printf("Quer definir a raiz de qual funcao?"
- "\n(1) Funcao 1 --> f(x) = x^2 - 2^x"
- "\n(2) Funcao 2 --> f(x) = x^3 - 9x + 3"
- "\n\n--> ");
- scanf("%d", &opcao);
- if(opcao == 1)
- metodoBissec1();
- else if(opcao == 2)
- metodoBissec2();
- else
- printf("\nERROR\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement