Sovellus: Määrätty integraali

264 days ago by Lauri_Ruotsalainen

Sovellus: Määrätty integraali

Lauri Ruotsalainen, 2011

Seuraava sovellus laskee annetun funktion f määrätyn integraalin käyttäjän antamalla välillä. Ohjelma piirtää integroitavan funktion koordinaatistoon ja värittää integrointivälillä funktion ja koordinaattiakselin välisen alan siniseksi.

Sovelluksen avulla voidaan myös tutkia kahden funktion välisen pinta-alan laskemista. Jos ohjelmalle määrittelee toisen funktion g ja valitsee sen kytkimestä aktiiviseksi, sovellus värittää funktioiden f ja g välisen alan keltaiseksi ja laskee erotusfunktion f-g määrätyn integraalin annetulla välillä. Saatu tulos esitetään kuvaajan alle kirjoitettuna.

Käyttäjä voi halutessaan myös piirtää erotusfunktion. Tällöin ohjelma esittää erotusfunktion ja vaaka-akselin välisen alan punaisena. Koska väritys on osittain läpinäkyvä, erottuvat päällekkäin olevat alueet toisistaan.

Kuva:

@interact def _(f = input_box(default=3*x), g = input_box(default=x^2), int_vali = input_box(default=(0,3), label="Integrointiväli"), x_vali = input_box(default=(0,3), label = "Tarkasteluväli"), gt = checkbox(default=False, label="g"), erotus = checkbox(default=False, label="f - g")): f(x) = f; g(x) = g # Piirretään funktion g kuvaaja ja väritetään f:n ja g:n välinen ala keltaiseksi. if gt: g_kuva = plot(g(x), x, x_vali, color="green", thickness=1.5) g_kuva += plot(g(x), x, int_vali, color="green", fill=f, fillcolor="yellow", fillalpha=0.5) f_kuva = plot(f(x), x, x_vali, color="blue", thickness=1.5) tuloste = "$\int_{%s}^{%s}(\color{Blue}{f(x)} - \color{Green}{g(x)})\, dx=\int_{%s}^{%s}({%s})\, dx={%s}$"%(int_vali[0], int_vali[1], int_vali[0], int_vali[1], latex(f(x)-g(x)), (f(x)-g(x)).nintegrate(x, int_vali[0], int_vali[1])[0]) # Piirretään pelkkä funktio f ja väritetään vaaka-akselin ja f:n välinen ala siniseksi. else: f_kuva = plot(f(x), x, x_vali, color="blue", thickness=1.5) f_kuva += plot(f(x), x, int_vali, color="blue", fill=True, fillcolor="blue", fillalpha=0.15) g_kuva = Graphics() tuloste = "$\int_{%s}^{%s}(\color{Blue}{f(x)})\, dx=\int_{%s}^{%s}({%s})\, dx={%s}$"%(int_vali[0], int_vali[1], int_vali[0], int_vali[1], latex(f(x)), f(x).nintegrate(x, int_vali[0], int_vali[1])[0]) # Piirretään erotusfunktio sekä väritetään sen ja vaaka-akselin välinen ala punaiseksi. if erotus: h_kuva = plot(f(x) - g(x), x, int_vali, color="red", thickness=1.5, fill=True, fillcolor="red", fillalpha=0.15) tuloste = "$\int_{%s}^{%s}(\color{Red}{f(x)-g(x)})\, dx=\int_{%s}^{%s}({%s})\, dx={%s}$"%(int_vali[0], int_vali[1], int_vali[0], int_vali[1], latex(f(x)-g(x)), (f(x)-g(x)).nintegrate(x, int_vali[0], int_vali[1])[0]) else: h_kuva = Graphics() show(f_kuva + g_kuva + h_kuva, gridlines=True) html(tuloste) 
       

Click to the left again to hide and once more to show the dynamic interactive window