Afișarea grafurilor de funcții în Delphi
Studiind literatura de specialitate cu privire la programarea pe care am găsit-o pe Internet, precum și unele programe, am ajuns la concluzia că programatorii fie nu înțeleg, fie nu doresc să facă eforturi pe această temă și fac tot ce au făcut la școală. Creați grafică, atât pe hârtie. Prin această diminuare a capacităților calculatorului. Lăsând aceleași dezavantaje ale metodei de construcție și chiar le exacerbează.
În primul rând, ieșirea pe ecran este transmisă unui mediu discret. Acest fapt nu este aproape luat în considerare. Textul va fi explicat.
Programul afișează bine grafice atunci când funcția are valori pozitive și negative. Și întregul grafic este plasat în dreptunghiul specificat.
Acum, să vedem cât de multe calcule face programul? În acest caz (25-0) /0,01 = 2500. Pentru orice dreptunghi de ieșire. Care a fost motivul pentru alegerea pasului dx? Cel mai probabil, continuitatea graficului de linie. Care, apropo, și a rămas intermitent în anumite zone, unde funcția se schimbă repede. Lupta cu această dx reducere și mai radicală - o dată la 10 sau chiar de 100 de ori, aducând la 0,0001; Nu trebuia să mă întâlnesc mai puțin. Și acesta este un calcul al funcțiilor de 250.000. Graficele sunt încă intermitente. Din fericire calculatoarele sunt rapide. Dar dacă calculam implicit funcția, graficul va fi construit mai încet. Alegem dreptunghiul de ieșire 600 * 400. Astfel, pe orizontală, putem avea doar 600 de valori. Pe axa Y, respectiv, de asemenea. Întrebare: Unde sunt cele 249.400 de rezultate rămase de calcule? Partea se referă la construirea segmentelor verticale ale liniilor drepte care leagă ordonatele adiacente, iar partea de leu a altora este mâncată de Runda. Aici pentru tine și o concluzie discretă. De aici rezultă că funcția trebuie să fie numărate la 600 de puncte, iar segmentele liniilor verticale pot fi desenate cu un creion. Și dx ar trebui ales în cazul nostru (25-0) / 600 = 0.0416666. Programul va fi cea mai bună calitate pe care o puteți obține. Apoi, nu este nevoie să se calculeze valoarea sa de două ori .Mozhno timp amintindu-matrice rezultat (matrice are o dimensiune de cel mult rezoluția ecranului). În astfel de condiții, viteza de ieșire nu se modifică.
În al doilea rând, construcția metodei în sine (calculul funcției incrementează dx) acționează ca un filtru, retezarea armonici de înaltă frecvență, adică, vreau să spun că, dacă funcția f (x) pentru a adăuga ceva de genul g (x) * sin ( 2 * pi / dx * x), atunci producția va fi deplorabilă. Acest element nu modifică în nici un fel graficul anterior. Deși poate fi principalul purtător de informații despre această funcție. Și, desigur, foarte dificil de a afișa un grafic al unei funcții discrete (disponibilă în vedere programelor publice universale, cum ar fi cele de mai sus). Dacă luăm f (x) = 2 * Sin (x) * exp (x / 5) + exp (x * x) * sin (2 * pi / dx * x), atunci acest program este al doilea termen nu se va observa, dar va cheltui în timp ce calculul f (x) = 2 * Sin (x) * exp (x / 5) * exp (x * x) * sin (2 * pi / dx * x). Și în acest caz graficul constantei. Programul de mai sus, așa cum am menționat, îl afișează incorect, dar este și un curriculum. Prin urmare, noi nu facem pretenții.
Dar dacă luați TAB MathGrapher 1.0 (distribuit pe Internet) și introduceți doar 5 * Sin (200 * pi * x), atunci vom obține un zero curat. În loc de 5, desigur, puteți scrie orice funcție și în loc de Sin (200 * pi * x) orice periodic cu o frecvență mai mare, iar programul va da un program greșit.
Adăugați un marcaj la material: