Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 16. 10. 2017 19:53

Akraell
Příspěvky: 45
Reputace:   
 

V zadaném intervalu nalezněte všechny lokální extrémy

Dobrý den,
Mám napsat program, který v zadaném intervalu <$x_{1}; x_{2}$> nalezne všechny lokální extrémy (minima nebo maxima) kubické funkce f(x) = ax^3 + bx^2 + cx + d
Tip: Funkci procházejte v cyklu s krokem delta = 0.001. Pro extrém platí, že dvě po sobě jdoucí diference (f(x - delta) - f(x)  a  f(x) - f(x + delta)) mají opačná znaménka.

Výsledkem programu má být načtení z klávesnice hodnoty a, b, c, d, x1, x2 a program má podle toho najít lokální extrémy.

Problém je, že nevím, jaká jsou matematická pravidla. Ani nevím, k čemu tam slouží delta.

Offline

 

#2 17. 10. 2017 11:29 — Editoval Rumburak (19. 10. 2017 11:00)

Rumburak
Místo: Praha
Příspěvky: 8691
Reputace:   502 
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

Ahoj.
Z praktických důvodů změním označení $\langle x_{1}; x_{2} \rangle$ na $\langle a; b \rangle$ ,  kde $a < b$.

Doporučený  tip je v zásadě správný, ale řídit se jím doslova by mohlo vést ke komplikacím,
proto ho poněkud modifikujme.

I. Najděme přirozené číslo $m$ takové, aby $\frac {b-a}{m} \le  0.001$, a položme

                                      $\delta=\frac {b-a}{m}$.

II.  Definujme konečnou posloupnost $(c_n,  n \in \{0, 1, ..., m\})$ předpisem

                                          $c_n = a + n\delta$ .

Zřejmě  $c_0 = a,  c_m = b$.


III. V cyklu pro $k \in \{1, ..., m-1\}$ hledejme taková $k$ , pro něž je splněna podmínka

                    $(f(c_{k+1}) - f(c_k))(f(c_k) - f(c_{k-1})) < 0$ .

Nalezaná čísla $c_k$ jsou aproximacemi bodů uvnitř stanoveného intervalu, v nichž nastávají
lokální extrémy. 

Jak posoudit situaci v jeho krajních bodech,  je snad jasné.

EDIT. Oprava překlepu a chyb v kroku III.

Offline

 

#3 17. 10. 2017 11:33 — Editoval Rumburak (17. 10. 2017 11:33) Příspěvek uživatele Rumburak byl skryt uživatelem Rumburak.

#4 17. 10. 2017 15:32

Akraell
Příspěvky: 45
Reputace:   
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

Děkuji za první zpětnou vazbu.

Je tu ale stále problém.
Např. když zadám hodnoty, že to bude mít toto zadání:
$0,1x^{3} - x^{2} - 10x + 50$,   $<-4; -2>$
Tak výsledek musí být: $Max:  -3.33$

Nevím jestli jsem počítal správně (ani jsem ještě nepochopil jak mám hledat $c_{k}$ a k, takže jsem třetí část zatím nepočítal), ale když:
nechám "delta = 0,001"
za $c_{0}$ dosadím -4
za $c_{2000}$ dosadím -2 (vyšlo mi, že pro -2 je m = 2000. Snad jsem počítal a pochopil správně..)
Tak ta výsledná hodnota maximum = -3.33 bude pro $c_{1333.\bar{3}}$ a jestli má být n-tý člen přirozený číslo, tak jsem prohrál.

Offline

 

#5 17. 10. 2017 16:46 — Editoval Rumburak (17. 10. 2017 16:56)

Rumburak
Místo: Praha
Příspěvky: 8691
Reputace:   502 
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

↑ Akraell:

A jak jsi došel k "výsledné hodnotě" -3.33  pro maximum ?

Bod, v němž skutečně nastane extrém, nemusí být členem posloupnosti $(c_{k})$
a že to tak bude,  je i málo pravděpodobné.
Řešení, k nimž vedou numerické metody, jsou obecně jen méně či více přibližná.
V tom možná spočívá problém, na který upozorňuješ.

Offline

 

#6 17. 10. 2017 17:26

Akraell
Příspěvky: 45
Reputace:   
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

K tomu zadání mi napsali 4 příklady, jak má vypadat výstup. Uvedu 2 z nich:

Příklad spuštění programu 1:
Zadej koeficient a:
0.1
Zadej koeficient b:
-1
Zadej koeficient c:
-10
Zadej koeficient d:
50
Zadej pocatek intervalu:
-6
Zadej konec intervalu:
-4

=> Protože v daném intervalu neleží žádný extrém, program nic nevypíše

Příklad spuštění programu 2:
Zadej koeficient a:
0.1
Zadej koeficient b:
-1
Zadej koeficient c:
-10
Zadej koeficient d:
50
Zadej pocatek intervalu:
-4
Zadej konec intervalu:
-2
max: -3.33


To je asi ten důvod, proč mám doporučeno "Delta = 0,001", protože když si vymyslím jiný m, tak pak to vychází jinak.

Offline

 

#7 18. 10. 2017 05:21

KennyMcCormick
Příspěvky: 1677
Reputace:   49 
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

V čem přesně je teď problém? :)


Even if you take the best course of action, the universe is still allowed to say "So what?" and kill you.

Offline

 

#8 18. 10. 2017 09:35

Akraell
Příspěvky: 45
Reputace:   
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

↑ KennyMcCormick:
Nevím jaký vzorečky do programu vložit, aby výstup programu odpovídal zadání a měl shodu s očekávaným výstupem.
Zatím mě napadá jen vytvořit posloupnost, která bude dosazovat za x čísla v intervalu od a; a + 0,01; a + 0,02... do b. Pak vyhledá maximum a minimum s podmínkou, že monotonie např. rostoucí se začala měnit na klesající.

Jenže to je docela blbost, protože někdo vyplní obrovský interval a může si třeba mezitím jít hrát šachy než vyleze výsledek.

Offline

 

#9 18. 10. 2017 10:16

LukasM
Příspěvky: 3274
Reputace:   193 
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

↑ Akraell:
Pokud to dobře chápu, tak tebou právě navržený postup je naprosto přesně to samé, co doporučují v zadání a co ti rozepsal Rumburak - jen s tím rozdílem, že doteď jste se bavili o kroku 0.001, nikoli 0.01. A pokud to budeš programovat na počítači mladším než nějakých 60 let, tak mezitím nestihneš ani rozestavit figurky na šachovnici, a to i v případě dost velkého intervalu. Samozřejmě pro EXTRÉMNĚ velké intervaly to vhodné není, ale v takovém případě se dají použít zase jiné metody. V tomto případě to například jde derivováním převést na rovnici typu polynom(x)=0, která se dá řešit různými (a mnohem efektivnějšími) způsoby.

Z toho co píšeš jsi to zatím nenaprogramoval. Takže doporučuji už o tom moc nešpekulovat, udělat to a pak zkoumat výsledky. Že netrefiš přesně hodnotu -3.33, jak "chtějí", je celkem jedno (on tam ten extrém ani přesně není). Ale tvá chyba bude maximálně 0.001, takže....

Offline

 

#10 18. 10. 2017 19:48

Akraell
Příspěvky: 45
Reputace:   
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

Aha, já v tom celou dobu hledal nějakou složitost včetně toho, co psal Rumburak.

Jeden žák to řešil pomocí integrací, že mu odpadlo cyklení programu. Já ještě zatím nevím, co jsou derivace a integrace. Je toho dost a budu to muset dohnat. Takže mě tu asi ještě "párkrát" uvidíte a asi to bude s mojí hlavou opět na dlouho (a to jsem dal maturitu z matematiky na 80%) :D

Děkuji moc za vaší pevnou spolupráci
Vážím si toho.

Offline

 

#11 19. 10. 2017 11:03

Rumburak
Místo: Praha
Příspěvky: 8691
Reputace:   502 
 

Re: V zadaném intervalu nalezněte všechny lokální extrémy

↑ Akraell:
Ahoj. 

V kroku III. mého příspěvku ↑ Rumburak: byla ještě jedna chyba,
dokonce zásadního významu.  Již opraveno.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson