Avatar
vasatom
Člen
Avatar
vasatom:

Ahoj, řeším problém, kde má program počítat x z rovnice když zadám pravou stranu. X má být v intervalu <0.1>. A pravá strana se zadává ručně z intervalu <-117,679>. Nefunguje mi to pro -117. Nevíte prosím jak to udělat? výsledné x má být s přesností na 4 desetinná místa.

Scanner sc = new Scanner(System.in);

      System.out.println("Program pro vypocet x z rovnice (x+3)^5 - 15*(x-2)^3 - 30*(x-4)^2 = pravaStrana");
      System.out.println("Zadejte pravou stranu rovnice z intervalu <-117,679>:");
      int pravaStrana = sc.nextInt();
      double x=0;
      double vysledneX = 0;

  for (double i=0.00001; i<1; i+=0.00001)
  {
    if (Math.pow(x + 3, 5) - 15 * Math.pow(x - 2, 3) - 30 * Math.pow(x - 4, 2)<pravaStrana){

        x = i;}}

  vysledneX = x;
   System.out.println("---Vysledky---");
      System.out.println("Resenim rovnice");
      System.out.println("(x+3)^5 - 15*(x-2)^3 - 30*(x-4)^2 =" +pravaStrana);
      System.out.println("je:");
      System.out.printf(Locale.US, "%6.4f%n", vysledneX);
 
Odpovědět 19.11.2013 2:15
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na vasatom
Silvinios:

Co ti nefunguje? Je-li pravá strana -117, výsledek x = 0 je správný.

Možná Ti ale unikl smysl té úlohy. Funkce

f(x) = (x+3)^5 - 15*(x-2)^3 - 30*(x-4)^2

je na intervalu <0,1> rostoucí a nabývá hodnot z intervalu <-117,679>. Nenapadá Tě lepší algoritmus?

Editováno 19.11.2013 7:14
 
Nahoru Odpovědět 19.11.2013 7:14
Avatar
vasatom
Člen
Avatar
vasatom:

ani nevím, ale při odevzdání mi učitel řekl, že tam mám něco špatně. Nevím jak jinak to napsat, jestli mě nějak prosím tě navedeš?

 
Nahoru Odpovědět 19.11.2013 8:56
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na vasatom
Silvinios:

Nejdřív jsi psal, že Ti program nefunguje pro -117 a teď píšeš, že ani nevíš, co ti nefunguje. Je ještě něco co (ne)víš?

Pravá strana musí být celočíselná?

Pokud jde o algoritmus, použil bych půlení intervalů.

 
Nahoru Odpovědět  -1 19.11.2013 17:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.