Gå til innhold

Square root, matte og java


Anbefalte innlegg

Jeg har en oppgave her.

 

x =–b ± √b² – 4ac

...............2a

 

Har problemer med å skrive den inn i java.

 

Har blitt fortalt at dette også er en godkjent måte å skrive ligningen på.

X1= (-b - √(b²-4ac)) / 2a

 

Så når jeg skal få den inn i java, så stopper det opp. Her er forslaget mitt.

double x = (-b - Math.sqrt(Math.pow(b,2)) - (4*a*c)) / 2;

 

 

Hvordan vil du skrive det i java?

Jeg har ikke peiling på hva jeg skal forvente til svar på denne ligningen.

Lenke til kommentar
Videoannonse
Annonse

ja, det ser riktig ut med unntak at at du hadde -4ac utenfor kvadratroten som nevnt over her. Dog ville jeg skrevet den på følgende måte for å få begge svarene (andre-grads likninger kan ha 1, 2 eller ingen løsninger). Velger å se bort i fra komplekse løsninger her.

 

tmp = (b*b) - (4*a*c);
if (tmp >= 0) {
x1 = (-b + Math.sqrt(tmp)) / (2*a);
x2 = (-b - Math.sqrt(tmp)) / (2*a);
} else {
System.out.println("Ingen løsninger!");
}

Endret av etse
Lenke til kommentar

Her er den original formelen:

x =–b ± √b² – 4ac

...............2a

 

 

 

Jeg har prøvd å skrive den i java slik:

double x1 = (-b - Math.sqrt(Math.pow(b,2)) - (4*a*c)) / 2;

og

double x2 = (-b + Math.sqrt(Math.pow(b,2)) - (4*a*c)) / 2;

 

 

Har jeg skreve den rett?

parantesfeil fortsatt, skal være

 

double x1 = (-b - Math.sqrt(Math.pow(b,2) - (4*a*c))) / (2*a);

og

double x2 = (-b + Math.sqrt(Math.pow(b,2) - (4*a*c))) / (2*a);

 

Videre burde du og ta hensyn til at formelen ikke vil ha reelle løsninger om b*b - < 0

Endret av etse
Lenke til kommentar

En annengradsligning kan bli 0 jo. Dersom a=1 og b=0 og c=0 så får du 0 i ligningen din. Bare prøv å fyll inn dette og regn ut selv.

 

Så du skal ikke skrive en feilmelding om svaret blir 0, du skal ta en test før du kjører for å sjekke at a ikke er 0! Dersom du ikke gjør det får du 0 i under brøkstreken og da vil du uansett få en feilmelding for det kan aldri løses.

 

Det jeg mente med hvorfor a ikke kan være 0 er at dersom a er null ser det slik ut:

 

0x^2 + bx + c = 0

 

Dette er det samme som:

 

bx + c = 0

 

Dette er ligningen for en rett strek. Det er fordi x er opphøyet i 1, altså første grad.

Lenke til kommentar

Andregrads-likinger er stikkkordet du må prøve å se på. Det er ikke så veldig hokus-pokus å forstå, og brøk-regning og kvadratrot er heller ikke så alt for vanskelig å lære deg.

 

Det første er at du må vite at man ikke kan dele på 0, det vil rett og slett gi deg et udefinert svar.

Det andre er at kvadrat-roten av et negativt tall vil ikke gi deg noen reell-løsning. (Det vil gi komplekse løsninger, men dette er kun innteresant på et litt høyere matematisk nivå - R2 på VGS og høyskole matematikk)

 

Det siste er at de 2 svarene du finner på den likningen du har er "null" punktene på kurven som er beskrived med formelen:

y = ax2 + bx + c

 

Her har du 3 andre-gradslikninger tegner inn i et kordinatsystem:

2likn.PNG

 

Den nedeste er gitt med:

y = 1x2 + (-2)x + 0

Som betyr: a=1, b=-2, c=0

 

Svarene du vil få om du putter disse tallene inn i formelen vil være 0 og 2, legg også merke til at det er de 2 punktene på x-aksen som er markert med rødt.

 

Legg merke til den øverste kurven, gitt ved:

y = x2 - 2x + 3

Som gir: a = 1, b=-2, c=3

Du kan se at denne ikke krysser X-aksen på noen punkter og dermed ikke har noen "0-punkter". Og om du putter inn disse 3 tallene inn i formelen vil du se at du får ingen løsning.

Endret av etse
  • Liker 1
Lenke til kommentar

fantastisk! okok jeg laga en komando for å teste ut om b2-4ac er mindre enn 0, og den funka.

takk for det :)

 

men jeg skjønner fortsatt ikke matten.. går det ikke an at den går i minus?

Kvadratroten av et negativt tall eksisterer ikke. Da får man den imaginære konstanten (ofte vist ved i eller j som er definert lik chart?cht=tx&chl=\sqrt { -1 }) plassert inn for å vise dette.

Endret av GeirGrusom
Lenke til kommentar

Nå vet jeg ikke hvor gammel du er, men med tanke på at koeffisient og "nevner" var litt ukjente ord for deg så antar jeg du kanskje er på ungdomskolen eller 1. året på VGS? I så fall vil du lære masse om disse tingene på skolen de neste årene, og mattelæreren er sikkert litt behjelpelig med å forklare et par av disse tingene som du er usikker på.

 

Ellers vil jeg oppfordre deg til å studere matte; det er morro, interesant, viktig og du har veldig bruk for det når du programmerer. Virkelig en bra ting å få litt interesse for :)

Lenke til kommentar

Hmm begynner å bli ganske mange år siden jeg gikk på ungdomskolen nå :ph34r:

Ja matte er faktisk ganske intressant nå når jeg driver å lærer programmering :) hvem skulle tro d haha

 

Jeg har faktisk lært en hel del bare i denne tråden. takker :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...