Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Algorytm]Równanie pierwszego stopnia
Forum PHP.pl > Inne > Hydepark
sajborg
Witam mam problem jak napisac algorytm na obliczanie równania pierwszego stopnia z jedną niewiadomą.
Zapytalem sie o co chodzi i oOstałem taką odpowiedz "Rozwiązać równanie to znaczy znaleźć wartości argumentów (x), dla których f(x) = 0.
W zależności od a i b wartości x będą różne.

Ale dalej nie wiem jak napisac ten algorytm. Nie chodzi tu o jezyk mam napisac specyfikacje i schemat blokowy
sztosz
Chodzi o równanie
Kod
y = ax + b


jeżeli się nie mylę?

To
Kod
f(x) = y
f(x) = 0
y = 0

f(x) = ax + b
y = ax + b
0 = ax + b // -b odejmujemy obustronnie b
0 - b = ax // /a dzielimy obustronnie przez a
(0 - b)/a = x


I teraz kilka rozwiązania

dla b =0
Kod
b = 0
(0 - b)/a = x
(0 - 0)/a = x
0/a = x
0 = x


Tylko nie myśl że to wszystko musisz sprawdzić dla a = 0, b = 0 i ich kombinacji winksmiley.jpg
Poza tym lepiej żebys to od razu na poczatku sprawdził co i jak smile.gif

Jak mi postawisz piwo to ci ładnie w html'u zrobie schemat blokowy winksmiley.jpg

A jeżeli to nie to to nie wiem smile.gif
sajborg
Napisales juz dla b=0 dla a=0 bedzie podobnie a jak dla ich kombinacji jesli a i b = 0 questionmark.gif To we wszystkich wypadkach x wyjdzie 0 questionmark.gif

Heheh prosze a blokowy w wordzie wystarczy :]
sztosz
Che szczerze mówiąc nigdy nie potrafilem na tyle worda ujarzmić żeby w wordzie cos wyrysować winksmiley.jpg

Najpierw sprawdzamy warunki:

a i b rózne od zera:
Kod
0 = ax + b
0 - b = ax
(0 - b)/a = x


a rózne od zera, b = zero:
Kod
0 = ax + b
0 = ax + 0
0 = ax
0/a = x
0 = x


b rózne od zera, a = zero:
Kod
0 = ax + b
0 = 0x + b
0 - b = 0
-b  = 0
Brak rozwiązań??


b = 0, a = zero:
Kod
0 = ax + b
0 = 0x + 0
0 = 0
0 = 0
Nieskończenie wiele rozwiązań??



Coś mi się wydaje że wszystko popierd*****m sad.gif

Jakby ktoś to mógl zweryfikować to by było dobrze.
sajborg
To jak lepiej ci w html to byl bym bardzo wdzieczny. Bo ja aakurat tego algorytmu nie qumam sad.gif
Cudi
Jeśli a = 0 to to nie jest równanie pierwszego stopnia tylko zerowego winksmiley.jpg Tak więc jeśli mamy obliczać wynik równania pierwszego stopnia to możemy z góry założyć, że a nie jest równe zero. Tak więc x = -b/a.
sajborg
Wiesz moze jak bedzie wygladac caly algorytm questionmark.gif Jak bys mogl mozesz napisac w krokach questionmark.gif ja to w blokowym zrobie
TomASS
1. sprawdzasz, czy jest to równanie pierwszego stopnia w postaci y = ax+b, czyli czy a!=0 i b!=0
2a. jesli a==0 i b!=0 to równanie jest sprzeczna (zero rozwiazan)
2b. jesli a==0 i b==0 to równanie jest nieokreślone (ma nieskończenie wiele rozwiązań)
2c. jeśli a!=0 i b==0 to rozwiązaniem równania jest 0
2b. jesli a!= i b!=0 to rozwiązaniem jest liczba -b/a
3. chyba nigdzie się nie pomyliłem tongue.gif
dr_bonzo
Proste jak drut:

1. wprowadzasz A i B
2. jesli A == 0 to (3), jesli nie to (4)
3. jesli B == 0 to oo wiele rozwiazan jesli nie to brak rozwiazan (r. sprzeczne) -> (5)
4. X = - B / A (nawet dla B == 0) -> (5)
5. koniec
sztosz
Heh smile.gif to się jednak nie pomyliłem, tryle że mozna to sobie uproscić od razu sprawdzając czy to równanie 1 stopnia czy nie, tak jak cudi napisał smile.gif I pewnie datego ze na to nie wpadłem/zapomniałem już wydawało mi się że coś mi się pokrecilo smile.gif

A dr_bonham napisał to nakprościej ajk się dało smile.gif
Pigula
Cytat(Cudi @ 2005-09-21 21:45:35)
Jeśli a = 0 to to nie jest równanie pierwszego stopnia tylko zerowego winksmiley.jpg

oj chyba nie dale jest stopnia pierwszego. bo o stopniu decyduje potega przy x, a nie czy a jest rowny czy rozny od zera. dalej masz rownanie y=a*x+b gdzie a=0 czyli y=0*x+b czyli y=b czyli rownanie sprzeczne i nie ma rozwiazania przynajmniej taki mi sie wydaj choc matme skonczylem juz jakis czas temu tongue.gif wiec sie moge mylic biggrin.gif

-------------
a zapomnialem ze b != 0 smile.gif ma byc
TomASS
Cytat(Pigula @ 2005-09-22 09:00:55)
Cytat(Cudi @ 2005-09-21 21:45:35)
Jeśli a = 0 to to nie jest równanie pierwszego stopnia tylko zerowego winksmiley.jpg

oj chyba nie dale jest stopnia pierwszego. bo o stopniu decyduje potega przy x, a nie czy a jest rowny czy rozny od zera.

Decyduje to i to, zarówno współczynnik przy największj potędze jak i potęga, jednakże jeśli jest to równanie zapisane wzorem ogólnym y=ax+b, to wiadomo, że x jest w pierwszej potędze i decyduje wsp. a smile.gif

A co zrobić z równaniami wyższego stopnia, z równaniami liczb zespolonych, itp. itd....jeszcze wiele do myślenia blink.gif
sztosz
TomASS ma rację bo przy równaniach kwadratowych tj. drugiego stopnia (Ax*x+Bx+C=0) też sprawdzamy "stopień" równania poprzez sprawdzenie wspólczynnika "a". I jeżeli A=0 i B != 0 i to mamy równanie pierwszego stopnia, i nie trzeba się bawić z deltą lub wzorami Vieta których mimo ich prostoty nigdy nie lubilem.
Pigula
no coz nie kluce sie tongue.gif bo jak zaznaczylem juz dawno nie mailem matmy. swoj wywod oparlem na tym ze jak a=0, b!=0 to rownanie jest sprzeczne i nie ma rozwiazania winksmiley.jpg
pozdrawaim
sajborg
Zrobilem cos takiego chyba dobze
TomASS
Wygląda na ok smile.gif Gratuluje, tylko jedna jedna sugestia:

Cytat
Równanie ma wartość....

Zastąp na: "Równanie ma jedno rozwiązanie x=".$x;

Oraz
Cytat
Równanie ma wiele rozwiązań....

Zastąp na: "Równanie ma nieskończenie wiele roziązań";
sajborg
Ok thx juz poprawilem :] Dzieki wszystkim

Poprawiona wersja
dr_bonzo
Zapomniales o opisaniu strzalek -- skad mam wiedziec gdzie isc po sprawdzeniu czy A == 0?

zrob np. tak

<--------N--< A == 0 ? > --Y------>
Cudi
Cytat(Pigula @ 2005-09-22 08:00:55)
Cytat(Cudi @ 2005-09-21 21:45:35)
Jeśli a = 0 to to nie jest równanie pierwszego stopnia tylko zerowego winksmiley.jpg

oj chyba nie dale jest stopnia pierwszego. bo o stopniu decyduje potega przy x, a nie czy a jest rowny czy rozny od zera. dalej masz rownanie y=a*x+b gdzie a=0 czyli y=0*x+b czyli y=b czyli rownanie sprzeczne i nie ma rozwiazania przynajmniej taki mi sie wydaj choc matme skonczylem juz jakis czas temu tongue.gif wiec sie moge mylic biggrin.gif

Jeśli a == 0 to nie ma x i mamy samo b. A takie równanie nie ma stopnia (bo nie ma x). Takie samo założenie jest dla każdego wielomianu, że an != 0, bo inaczej wielomian byłby stopień (lub kilka, do pierwszego niezerowego a) niższy.
sajborg
Cytat(dr_bonzo @ 2005-09-22 16:36:39)
Zapomniales o opisaniu strzalek -- skad mam wiedziec gdzie isc po sprawdzeniu czy A == 0?

zrob np. tak

<--------N--< A == 0 ? > --Y------>

Wiem wiem mam to w wordzie ale sie zle skopiowalo :]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.