Obliczanie iteracyjne nieznanej wartości

0

Witam mam pewien problem w obliczeniu pewnej wartości.
Muszę w sposób iteracyjny ( najlepiej pętlą for) obliczyć optymalną dlugosc liny dla skoczka bungee.
Sprawa wyglada tak:

  • mam wieze o pewnej wysokosci
  • skoczek ma dolecieć do 90% wysokosci wiezy

Muszę znalezc dlugosc potrzebnej liny do skoku , by po jej rozciagnieciu jej dlugosc wynosila 90% wysokosci wiezy.

Oczywiscie wzory na rozciagniecie liny mam, ma ktos jakis pomysl ?

1

przekształć wzór i podstaw wartości.

0

tylko ze tu nie potrzeba zadnej petli... to mozna obliczyc za pierwszym razem

masz H - wysokosc wiezy
wiesz ze Hs to jest 90% H - odleglosc gdzie ma znalezc sie maksylamnie skoczek (bo pozniej po rozciagnieciu bedzie sie kurczyc, wiec zakladam ze chodzi o maksymalna wartosc)

Wzor bedzie taki

Hs = dlugosc_liny + wspolczynnik_rozciagniecia

rozciagniecie jest na podstawie dlugosc_liny wiec wyjdzie cos na zasadzie

Hs = Sl + (Sl * 0.1231)

Wiec nie potrzeba tutaj zadnej petli

1

Masz wszystkie dane, wszystkie wzory i sposób rozwiązania. Na co szukasz pomysłu?

0

Tylko własnie chodzi o to iż mam podaną tylko wysokosc skoku, mase skoczka, wartosc przyspieszenia ziemskiego i do tego rozne wspolczynniki sprezystosci liny ( w menu programu uzytkownik wybiera sobie wartość).
Więc mam 2 nieznane : dlugosc liny i maksymalne rozciagniecie liny ( chodzi tutaj o 90%h - dlugosc liny)
Wykładowca na cwiczeniach powiedział ze najlepiej to bedzie zrobic wlasnie tego typu pętlą.

0

Chodzi o to żeby w kilku obrotach pętli dojść do jak najblizszego wyniku ( z odchyleniem do 1 metra). Ma to byc na zasadzie posiadania 100 monet z ktorych jedna jest cięższa i wazeniu ich na wadze , najpierw dzieląc na pol, pozniej znowu na pol itd.

0

@dariokoko ty tak serio? Bo rozumiesz ze x oraz 0.9*x to jest nadal jedna niewiadoma? o_O Albo nie zrozumiałeś zadania albo wykładowca robi cię w konia...

0

@Shalom Moze zle sie wyrazilem bo nie chodzi tutaj o to :P
Moje 0.9x to jest (l + lr ) - gdzie l jest to dlugosc liny , a lr jest to maksymalne rozciagniecie liny
Wezmy przyklad ze x= 100m , wiec l+lr = 90m
I ani l ani lr w tym momencie nie posiadam.
Wiadome jest z lr jest zalezne od l ( dluzsza lina bedzie miala dluzsze rozciągniecie).
A moim zadaniem jest aby znalezc odpowiednie l aby po podaniu dowolnej masy skoczka i wspolczynnika sprezystosci liny , dlugosc liny maksymalnie rozciagnietej byla 0.9x :D

0

No i super wyjaśniłeś, potwierdziłeś też, że masz wszystkie dane, wszystkie wzory i sposób rozwiązania. Ponawiam pytanie: na co szukasz pomysłu?

0

@dariokoko, napisz wzory wg których chcesz działać, bo wg powyższej dyskusji szukasz rozwiązania zadania które zwykle nagradza się słoneczkiem (lub chmurką) - szkoła podstawowa.

0

@fourfour Szukam pomysłu jak obliczyć l.
Wzor na maksymalne rozciągniecie liny to: lr = (mg/k) + sqrt ((mmgg/kk + (2mgl/k))
Więc jak widac lr jest zalezne od l.
Moim problemem jest to jak z tego obliczyć l, gdyz bez podania lr zwyklym wzorem nie da sie tego osiągnąć.

m,k,g - te dane są podane

Chodzi tutaj o pętle która bedzie sprawdzała wynik aby był jak najblizszy 0.9x.

1

Przecież wykładowca Ci podpowiedział, jak możesz to policzyć. Pokaż fragment kodu z próbą rozwiązania.

0

@fourfour Fragmentu kodu jeszcze nie mam bo nie rozumiem idei tego pomysłu.
Chodzi o to aby w pętli zwiększać l o powiedzmy jeden metr i zatrzymać ją az , az l+lr bedzie wynosilo 0.9x ?

2

@dariokoko no i widzisz, od razu należało napisać że nie da się wzoru prosto przekształcić ponieważ niewiadoma występuje tutaj w postaci wolnej oraz pod pierwiastkiem. Bo mam nadzieję, że rozumiesz że gdyby to nie, to można by to policzyć analitycznie, prawda?
Licz połówkowo. Logika dyktuje że lina będzie miała długość pomiędzy 0 a 0.9h, Dzielimy przedział na pół. Pierwszy podział to [0.9h, 0.45h], [0.45h,0]. Liczysz wartość w punkcie 0.45h i wybierasz w którym przedziale będzie twoja wartość (tzn czy ci brakuje czy masz za dużo). Następnie ten wynikowy przedział znów dzielisz na pół itd.

1

@dariokoko: podpowiedź:

lr = f(l)

0.9x = stała (podana) = H
H = l + lr

H = f(l) + l

g(l) = f(l) + l - H

znajdź l dla którego:
g(l) = 0

czyli znajdź miejsce zerowe funkcji: g(l)

http://edu.i-lo.tarnow.pl/inf/utils/010_2010/0108.php

0

@Shalom oo, dokładnie o tym mówił wykładowca ( troche mi wyleciało z głowy , gdyz bylo to na początku projektu) - sprobuje zrobic to tak jak mowisz.

@vpiotr Uwazasz ze takie rozwiazanie bedzie szybsze od pętli ?

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