Egy épülő csarnok keresztmetszete a következő harmadfokú függvénnyel írható le:
ahol b a fél szélesség (12 m), h a gerinc magassága (10 m).
A csarnok hosszúsága l (20 m), az álmennyezetet magassága m (7 m).
Egy lehetséges megoldás: LETÖLTÉS
Az ábrázolni (és számítani) kívánt görbét kisebb szakaszokra osztjuk, az egyes szakaszokon a görbét húrjával helyettesítjük, és mind a görbe felrajzolását, mind pedig a terület és ívhossz számítását ezen közelítés alapján végezzük el.
A b fesztávolságot kiindulásul 2n számú egyenlő részre osztjuk, hogy minden n érték esetén legyen olyan pont, ami a szimmetriatengelyre esik. A görbe ábrázolásakor x irányban végighaladunk –b-től +b-ig a teljes fesztávolságon, és minden i lépésnél kiszámítjuk a függvény magassági koordinátáit.
A valós görbe osztáspontjainak egyenes szakaszokkal való összekötésével egy vonallánc adódik. Általános helyen, a tetszőleges i-edik lépésnél a vonallánc egy elemi szakaszának vízszintes koordinátái xi és xi+1, míg magassági koordinátái yi és yi+1 lesznek.
A görbe megjelenítésének (és számításának) pontosságát meghatározza, hány pontban számoljuk ki a függvény értékét. Mivel ez esetben a függvény szimmetrikus, érdemes páros számú (2n) szakaszra osztani. A felosztáshoz érdemes egy hagyományosan i-vel jelölt „számláló” értéket alkalmazni, amely az egyes osztáspontok sorszámát jelzi –n-től +n-ig (-10 ≤ i ≤ +10). Az i sorszámú pont x koordinátáját ekkor az i/n*b képlettel kapjuk.
Két szomszédos osztáspont között a görbét húrjával közelítve e szakasz alatti ∆ter területrész trapéznak tekinthető:
Két szomszédos osztáspont között a görbét húrjával közelítve e szakasz ∆ív hossza egy olyan derékszögű háromszög átfogójaként adódik, amelynek vízszintes befogója a két x koordináta, függőleges befogója pedig a két y koordináta különbsége:
Ezen elemi ívhosszakat és területeket minden szakaszra vonatkozóan kiszámítva, majd valamennyi szakaszra összegezve a teljes ívhossz és terület műszaki szempontból kielégítő pontosságú közelítését kapjuk.
Fontos figyelni arra, hogy a szakaszok darabszáma mindig eggyel kisebb az osztáspontokénál, ezért mindig eggyel kevesebb elemi ívhossz és terület szerepelhet, mint ahány koordináta értéket kiszámoltunk. Mivel az i-edik szakaszhoz szükséges az i+1-edik osztáspont is, az i=n esetben már nem számolhatunk sem ívhosszt, sem területet.
Az gomb megnyomása után a program megkeresi m azon értéket, mely esetén V értéke közelítőleg 2000-re adódik.
Alaposabban megnézve a diagramot látható, hogy némi pontatlanság keletkezik abból, hogy a két függvény metszéspontja nem valamelyik osztáspontnál adódik. A felosztás n értékét növelve ez a pontatlanság természetesen csökkenthető (vagy ha nem akarunk túl sok ponttal dolgozni, az összemetsződés helye újabb iterációval pontosítható), így megkereshető, hogy az f és m közötti magassági különbség x milyen értékénél lesz elegendően pontosan 0.
A félkör sugarát növelve „hozzáér” a függvényhez – pontosabban a függvény azon pontjához, amely legközelebb esik az origóhoz. Ezen érintési pont origótól való távolsága adja a keresett félkör sugarát. Első közelítésben csak a függvény ábrázolásakor használt osztáspontok közül keressük a legközelebbit – később pontosabb megoldást is keresünk.
A harmadfokú görbe esetén x szerint számoltuk az y értékeket egyenletes Δx lépésköz mellett. A félkör esetén ez a megoldás kissé nehézkes és pontatlan lenne, így pontjainak x és y értékekét ρ függvényében számoljuk, az osztáspontokhoz tartozó középponti szöget egyenletesen léptetve. Jelen esetben a 0 és π közötti tartományt kell felosztani 2n részre, minden osztáspontban kiszámítva ρ aktuális értékét, illetve az ahhoz tartozó x és y koordinátákat.
Az origó középpontú félkör paraméteres egyenletrendszere:
ahol
Pontosabb értéket n növelésével, a Solver segítségével, vagy Visual Basic modullal kaphatunk.
A függvény tetszőleges pontjának távolságának origótól vett távolsága egyszerűen meghatározható:
A távolság így felírható egy olyan függvényként, ahol y a fenti harmadfokú függvény. Ennek az új függvénynek a minimumértéke az érintő kör sugara. Egy folytonos függvény helyi szélsőértéke (minimuma vagy maximuma) olyan pontban lehet, amelyben adifferenciálhányados zérus, vagy nem létezik (például végtelenné válik). Geometriai értelemben a függvény szélsőértéke ott van, ahol a függvény meredeksége (az adott pontban rajzolt érintőjének meredeksége) zérus, illetve azon két pont között, ahol a meredekség előjelet vált.
A Solver egy telepíthető modul, mely iterációval határozza meg a szélsőértéket. Amennyiben már aktiválva van, az Adatok ⇄ Data menüben a Solver ponttal érhetjük el. Ha itt nem szerepel, próbáljuk meg betölteni (Office Súgó)
A keresett érték pontossága a Solver Beállítások párbeszédablakban beállított paraméterektől függ – most elfogadhatjuk az alapértékeket.
Ha sikeres a keresés, akkor a A Solver eredményei párbeszédablak jelzi, hogy a Solver talált egy (lehetséges) megoldást, amelynél minden megszorítás és optimálási feltétel teljesült, és ekkor választhatunk, hogy megtartjuk a talált értéket (A Solver megoldásának megtartása), vagy visszatérhetünk az eredeti értékekhez (Eredeti értékek visszaállítása).
Ha a Solver nem talál a megszorításoknak és az optimálási feltételeknek teljesülő megoldást, A Solver nem talált létező megoldást üzenet jelenik meg.
A megoldás vizuális ellenőrzésére érdemes a szélsőérték-kereséssel kapott pont megjelenítése pontként, vagy pl. az origóval összekötött szakaszként.