Metoda bisekcji

0

Mam napisać program znajdujący pierwiastki metodą bisekcji, a dodatkowo:

Klasa odpowiadająca badanej funkcji powinna implementować interfejs:

interface Function{
    double getValue(double x);
}

Nazwa klasy z badaną funkcją oraz końce przedziałów są argumentami wywołania programu.

i taki kod:


import java.lang.Math.*;

class liniowa implements Function{
double getValue(double x);
return x+1;
}

class kwadratowa implements Function{
double getValue(double x);
return x*x+1; 
}

class bisekcja{

static double E = 0.00000001;
double x0;

public static double oblicz(double a, double b , double f)
{
if(f(a) * f(b) < 0){
x0 = a;
	while(Math.abs(a-b) > E)
	{
	x0 = (a + b) / 2;
	if(f(a) * f(x0) < 0)
		b = x0;
	else 
		a = x0;
	}
}
else 
	x0 = 0;
	
return x0;	
}


public static void main(String[] args){

	double a = Double.parseDouble(args[1]);
	double b = Double.parseDouble(args[2]);
	Function f = new liniowa();
	oblicz(a, b, f);
	Function f = new kwadratowa();
	oblicz(a, b, f);


}
}

Przy kompilacji zwraca błędy w linijkach 5 - 10 np: <identifier> expected i illegal start of type . Nie ma pomysłu jak to naprawić z góry dzięki

0

Brakuje Ci kilka klamerek. Nie mam pomyslu jak to wytlumaczyc.

0

Ok mam, ale mega głupie przeoczenie :)

0

A jeszcze jedno w jaki sposób przekazać obiekt f do metody oblicz aby f(x) zadziałało?

0
Mattii4211 napisał(a):

A jeszcze jedno w jaki sposób przekazać obiekt f do metody oblicz aby f(x) zadziałało?

Function f

0
public double oblicz(double a, double b, Function f) 

error cannot find a symbol f(a) ...

0

Jakby kogoś interesowało tu jest cały kod : https://pastebin.com/3DwY14m2

Temat do zamknięcia, dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1