Prévia do material em texto
Aluno: Carlos Eduardo da Silva Lima Diciplina: Cálculo Numérico Material de estudo: Os pseudocódigo foram retirados dos slides (Aula: Zeros de Funcoes Slides) Pseudocódigo 1: Código com base no pseudocódigo 1 (Linguagem Java).. /* Autor: Carlos Eduardo da Silva Lima Tema: Método da Bissecção Linguagem Java */ class bisseccao { // Entre com a expressão para a f(x) public double f(double x) { return((10 + (1.36/Math.pow(x,2)))*(x - 0.03183) - 41.027); } public void metodoBisseccao(double [] s) { // Parâmetros para o método da Bissecção double a, b, tol; // Lembrando, temos o intervalo [a,b], a candidata a raíz // está contida neste intervalo a<=x<=b. a = s[0]; // valor inferior do intervalo [a,b] b = s[1]; // valor superior o intervalo [a,b] tol = s[2]; // tolerância while(Math.abs(b-a)>tol) { double x = (a+b)/2; if(f(a)*f(x)<0) { b = x; System.out.println("x = "+b+" || b - a = "+(b-a)); } else { a = x; System.out.println("x = "+a+" || b - a = "+(b-a)); } } } } public class Main { public static void main(String[] args) { //Dados double [] s = {3.8,4.3,0.001}; //Objeto bisseccao solucao = new bisseccao(); //Chamada de Método solucao.metodoBisseccao(s); } } Pseudocódigo 2: Código com base no pseudocódigo 2 (Linguagem Java). /* Autor: Carlos Eduardo da Silva Lima Tema: Método de Newton Linguagem Java */ class Newton { // Entre com a expressão para a f(x) public double f(double x) { return(Math.pow(x,3) - 3); } // Entre com a derivada da função acima inserida. public double df(double x) { return(3*Math.pow(x,2)); } // Neste método, implementamos o algoritimo de Newton para f(x) = 0. // O algoritimo está apresentado em termos de paseudocodigo nos slides public void metodoNewton(double x0, double tol) { double xk = x0 - (f(x0)/df(x0)); // Newton double er = Math.abs((xk - x0)/xk); // erro relativo // Enquanto o erro relativo (er) for maior que a tolerância estimada pelo usuário while(er > tol) { x0 = xk; xk = x0 - (f(x0)/df(x0)); er = Math.abs((xk - x0)/xk); // Saída do resultado na tela System.out.println("raiz x = " + xk + " || erro = " + er); } } }// fim da classe Newton //Classe main, esta classe contém o método principal do // programa (aplicativo), main public class Main { public static void main(String[] args) { double x0 = 5; // chute inicial para a solução de f(x) double tol = 0.001; // erro, prescisão desejada. //Objeto Newton solucao = new Newton(); // Chamada de métoos e atributos da classe Newton solucao.metodoNewton(x0,tol); } } Para executar esses códigos, entre no site online gdb (https://www.onlinegdb.com/), neste site pode-se escrever códigos em diversas linguagens de programação, observe a figura a baixo.