Plik:Runge-kutta.svg
Z Wikipedii, wolnej encyclopedia
Wielkość pliku podglądu PNG dla pliku SVG: 720 × 450 pikseli Inne rozdzielczości: 320 × 200 pikseli | 640 × 400 pikseli | 1024 × 640 pikseli | 1280 × 800 pikseli | 2560 × 1600 pikseli.
Rozmiar pierwotny (Plik SVG, nominalnie 720 × 450 pikseli, rozmiar pliku: 54 KB)
Plik Runge-kutta.svg znajduje się w Wikimedia Commons – repozytorium wolnych zasobów. Dane z jego strony opisu znajdują się poniżej. |
Opis
OpisRunge-kutta.svg |
Deutsch: Runge-Kutta Methoden für die Differentialgleichung y'=sin(t)^2*y |
Data | |
Źródło |
|
Autor |
To zdjęcie było poddane obróbce cyfrowej i może różnić się od wersji oryginalnej. Zmiany: converted into svg. Oryginał można obejrzeć tu: RK Verfahren.png: . Modyfikacje zostały wykonane przez użytkownika Tobi.
|
Ta ^specifik^ z W3C grafika wektorowa została stworzona za pomocą R.
R Code
# differential equation y'=sin(t)^2 * y
dy <- function(t, y) sin(t)^2 * y
# exact solution
exact <- function(t) 2 * exp(0.5*(t - sin(t)*cos(t)))
# euler's method
euler <- function(t, y, h, fun) {
y1 <- y + h*fun(t, y)
return(c(t + h, y1))
}
# heun's method
heun <- function(t, y, h, fun) {
yp <- y + h*fun(t, y)
y1 <- y + 0.5*h * (fun(t, y) + fun(t+h, yp))
return(c(t + h, y1))
}
# classical Runge–Kutta method
runge <- function(t, y, h, fun) {
y0 <- fun(t, y)
ya <- fun(t+h/2, y + h/2*y0)
yb <- fun(t+h/2, y + h/2*ya)
yc <- fun(t+h, y + h*yb)
y1 <- y + h/6*(y0 + 2*(ya+yb) + yc)
return(c(t + h, y1))
}
# step size = 0.5, last value = 5
h <- 0.5
niter <- 5/h
run <- eul2 <- eul <- heu <- data.frame(t=0, y=exact(0))
for(i in seq_len(niter)+1) {
eul[i, ] <- euler(t=eul$t[i-1], y=eul$y[i-1], h=h, fun=dy)
heu[i, ] <- heun (t=heu$t[i-1], y=heu$y[i-1], h=h, fun=dy)
run[i, ] <- runge(t=run$t[i-1], y=run$y[i-1], h=h, fun=dy)
}
# euler's method with reduced step size
h <- 0.25
niter <- 5/h
for(i in seq_len(niter)+1) {
eul2[i, ] <- euler(t=eul2$t[i-1], y=eul2$y[i-1], h=h, fun=dy)
}
# evaluating exact solution at
t <- seq(0, 5, 0.1)
# concatenating the methods into a data.frame
odesolve <- rbind(data.frame(t=t, y=exact(t), method="Exact Solution"),
data.frame(run, method="Runge-Kutta method"),
data.frame(heu, method="Heun's method"),
data.frame(eul2, method="Euler's method (reduced step size)"),
data.frame(eul, method="Euler's method"))
# translating into german
odesolve$method <- factor(odesolve$method,
levels=c("Exact Solution", "Runge-Kutta method",
"Heun's method",
"Euler's method (reduced step size)",
"Euler's method"),
labels=c("Exakte Lösung", "Klassisches Runge-Kutta",
"Heun", "Euler (halbe Schrittweite)",
"Euler"))
library(ggplot2)
p <- ggplot(odesolve, aes(x=t, y=y, col=method)) + geom_line() +
geom_point(data=subset(odesolve, as.numeric(method)!=1)) +
scale_color_discrete("") +
theme_bw() + theme(legend.position=c(0.02, 1), legend.justification=c(0, 1))
ggsave("runge-kutta.svg", width=8, height=6, plot=p)
Licencja
Ja, właściciel praw autorskich do tego dzieła, udostępniam je na poniższej licencji
Ten plik udostępniony jest na licencji Creative Commons Uznanie autorstwa – Na tych samych warunkach 3.0.
- Wolno:
- dzielić się – kopiować, rozpowszechniać, odtwarzać i wykonywać utwór
- modyfikować – tworzyć utwory zależne
- Na następujących warunkach:
- uznanie autorstwa – musisz określić autorstwo utworu, podać link do licencji, a także wskazać czy utwór został zmieniony. Możesz to zrobić w każdy rozsądny sposób, o ile nie będzie to sugerować, że licencjodawca popiera Ciebie lub Twoje użycie utworu.
- na tych samych warunkach – Jeśli zmienia się lub przekształca niniejszy utwór, lub tworzy inny na jego podstawie, można rozpowszechniać powstały w ten sposób nowy utwór tylko na podstawie tej samej lub podobnej licencji.
Obiekty przedstawione na tym zdjęciu
przedstawia
11 maj 2014
image/svg+xml
Historia pliku
Kliknij na datę/czas, aby zobaczyć, jak plik wyglądał w tym czasie.
Data i czas | Miniatura | Wymiary | Użytkownik | Opis | |
---|---|---|---|---|---|
aktualny | 15:37, 11 maj 2014 | 720 × 450 (54 KB) | T.gauster | fixed typo, adjusted width and height | |
11:49, 11 maj 2014 | 720 × 540 (54 KB) | T.gauster | User created page with UploadWizard |
Lokalne wykorzystanie pliku
Poniższa strona korzysta z tego pliku:
Globalne wykorzystanie pliku
Ten plik jest wykorzystywany także w innych projektach wiki:
- Wykorzystanie na de.wikipedia.org
- Wykorzystanie na en.wikipedia.org
- Wykorzystanie na ko.wikipedia.org
- Wykorzystanie na zh-yue.wikipedia.org
Metadane
Niniejszy plik zawiera dodatkowe informacje, prawdopodobnie dodane przez aparat cyfrowy lub skaner użyte do wygenerowania tego pliku.
Jeśli plik był modyfikowany, dane mogą być częściowo niezgodne z parametrami zmodyfikowanego pliku.
Szerokość | 576pt |
---|---|
Wysokość | 360pt |