Nie działa mi metoda siecznych

Przybliżanie, metoda najmniejszych kwadratów, wielomiany interpolacyjne i inne.
anders211
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 7 kwie 2010, o 03:44
Płeć: Mężczyzna
Lokalizacja: Poznań
Podziękował: 2 razy

Nie działa mi metoda siecznych

Post autor: anders211 »

Witam
Mam taki problem, że nie działa mi metoda siecznych. Myslałem z początku że błąd implementacyjny ale jak sobie liczę na kolanie to też nie działa.
Moje zadanie. Jaką nadać prędkość ciału \(\displaystyle{ Vx, Vy}\) by trafiło z punktu \(\displaystyle{ x0=0,y0=0}\) do punktu \(\displaystyle{ xk=20,yk=0}\) przy czym tangens kąta między składowymi początkowymi wektora prędkości to 45 stopni. No więc tak obieram sobie najpierw \(\displaystyle{ Vx=5,Vy=5}\) i rozwiązuję metodą Rungego Kutty do momentu aż \(\displaystyle{ yk=0}\). Zasięg rzutu \(\displaystyle{ xk = 15.55}\). Potem obieram \(\displaystyle{ Vx=15,Vy=15}\). Zasięg rzutu \(\displaystyle{ xk = 49.066}\) przy czym liczba iteracji może być inna ze względu na to że kończę obliczenia jak \(\displaystyle{ yk=0}\).
No więc mam 2 wyniki, jeden przed wartością oczekiwaną, drugi po, więc mogę zastosować metodę siecznych.
s1 - długość wektora z iteracji 1
s2 - długość wektora z iteracji 2
\(\displaystyle{ E2 = s2 - 20}\)
\(\displaystyle{ E1 = s1 - 20}\)
\(\displaystyle{ s3 = s2 - E2*(s1-s2)/(E1-E2)}\)
i wychodzi że w iteracji 3 mam wziąć \(\displaystyle{ Vx=Vy=14.14}\), czyli wektor o długości s3=20. Wynik zasięgu rzutu to \(\displaystyle{ xk=46.2}\).Do metody siecznych daję s2 i s3 i zwraca mi s4 znowu równy 20.

Ale w ogólę olejmy nawet tą powyższą treść. Cokolwiek nie dam do powyższej metody siecznych to zwraca mi 20. Co jest nie tak?

Tu kod w matlabie:

Kod: Zaznacz cały

function mysecant(s1, s2, exp_res)

Es2 = s2 - exp_res;
Es1 = s1 - exp_res;
s3 = s2 - Es2*(s1-s2)/(Es1-Es2);

disp(strcat('Next attemp should be at s = ',num2str(s3)));
disp(strcat('Es = ',num2str(Es2)));

return;
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

Nie działa mi metoda siecznych

Post autor: SlotaWoj »

Mamy zależność \(\displaystyle{ v(x)}\)
  • \(\displaystyle{ v_1=5\quad x_1=15,55 \\
    v_2=15\quad x_2=49,07 \\
    x_0=20 \\
    v_0=\frac{v_2-v_1}{x_2-x_1}(x_0-x_1)+v_1}\)
Po podstawieniu danych wychodzi \(\displaystyle{ v_0=6,33}\)
ODPOWIEDZ