Pouze tento týden sleva až 80 % na e-learning týkající se PHP. A zároveň využij akce až 30 % zdarma při nákupu e-learningu. Více informací.
Hledáme asistenty pro kurzy programování - pohodová brigáda. Více info
PHP week
Avatar
vasatom
Člen
Avatar
vasatom:19.11.2013 2:15

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:19.11.2013 7:14

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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
vasatom
Člen
Avatar
vasatom:19.11.2013 8:56

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:19.11.2013 17:48

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
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.