Domácí úkol na nalezení lokální extrémů – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Domácí úkol na nalezení lokální extrémů – Java – Fórum – Programujte.comDomácí úkol na nalezení lokální extrémů – Java – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

20. 10. 2021   #1
-
0
-

Dobrý den, 

dokázal by mi někdo pomoct s tímto úkolem? Vůbec si nevím rady:(

Předem děkuji.

______________________

Domácí úloha 04a (20.10. až 31.10.2021 – 2 body) – ppa1u04a.jar -

Napište program, který v zadaném uzavřeném intervalu nalezne všechny lokální extrémy (minimum nebo maximum) funkce f(x) = cos(x) + a ∙ cos(b ∙ x + c).

Hodnoty koeficientů a, b, c a uzavřeného intervalu x1, x2 načtěte z klávesnice jako desetinné číslo (v tomto pořadí).

- Na výstup vypište počet lokálních minim a maxim.

- Program pracuje s americkým národním nastavením (tj. používá desetinnou tečku).

- Předpokládejte disciplinovaného uživatele, který zadá korektní vstupy.

- Tip: Funkci procházejte v cyklu s krokem delta = 1.0 / 1024. 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.

Pro kontrolu výsledků je vhodné si funkci nakreslit.

- Pomocí dokumentačních komentářů program řádně okomentujte.

- Úlohu odevzdávejte jako ppa1u04a.jar soubor s odpovídající strukturou. Příklad 1 - Vstup a=0, b=0, c=0, x1=0, x2=1 - Výstup min: 0 max: 1

Nahlásit jako SPAM
IP: 147.228.142.–
20. 10. 2021   #2
-
0
-

Vypadá to, že máš otrocky projít interval od x1 včetně do x2 včetně s krokem delta (cyklus).

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.

spočítáš hodnotu funkce a zjišťuješ znaménko rozdílu 3 po sobě jdoucích hodnot, pokud se změní znaménko, je to lokální extrém. Znaménko určíš způsobem "je menší než nula" (znaménko mínus) a "je větší než nula" (znaménko plus). Jak naložit s nulou by se muselo promyslet.

Asi bych postupoval tak, že bych v každé iteraci cyklu spočítal f(x). Každou hodnotu bych si pamatoval a teprve u třetí hodnoty bych začal počítat rozdíly a určovat jejich znaménka. Vždy bych si nechával 3 hodnoty - stávající f(x) a dvě předchozí.

Asi je to úloha na procvičení cyklu a podmínek. Jestli si dobře vzpomínám, lokální extrémy se určovaly pomocí derivací, podle zadání je jasné, že derivace se použít nemají.

Minimálně načíst hodnoty od disciplinovaného uživatele a napsat for cyklus se zadaným krokem 1.0/1024.0 bys měl zvládnout.

hu
 

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Domácí úkol (?) — založil Montezo

Domácí úkol — založil Anonim

Domácí úkol — založil jelis

Domácí úkol — založil Ondra

Domaci ukol — založil Jakub

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý