функция Streamline или как создать линии тока в R - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь воссоздать график поперечного сечения потока грунтовых вод Тота (1962), используя его аналитическое уравнение.Мне удалось правильно построить значения головы и добавить контуры.Моя проблема в том, что я не могу найти способ построить что-то аналогичное функции Streamline в Matlab (линии потока) или в векторном поле.Если бы кто-то мог указать мне правильное направление, я был бы благодарен.

Текущие результаты

what I currently have

Желаемые результаты

what I want

Воспроизводимый код

library(colorspace)   
zo<-500
c<-tan(0.016)
s<-1000

#Create Function
wutang1 <- function(x,z) {
    h<-zo+(c*s/2)
q<-(4*c*s/pi^2)
m<-seq(0,100,1)
b<-(cos((2*m+1)*(pi*x/s))*cosh((2*m+1)*(pi*z)/s))/((2*m+1)^2*cosh((2*m+1)* 
(pi*zo/s)))
i<-sum(b)
wutang<-h-(q*i)
return(wutang)
}

#Vectorize my terrible coding
wutang2<-Vectorize(wutang1)
wutang2(999,499)
mat <- matrix(NA, nrow=1000, ncol=500)
mat2<-outer(1:nrow(mat), 1:ncol(mat) , wutang2)

#choose color
#load in package 'colorspace'
#you will have to choose a color scale, or just delete that piece from 
#'image'
pal <- choose_palette()

#plot
x <- (1:nrow(mat2))
y <- (1:ncol(mat2))
par(mar = c(5,4,4,4) + 0.1)
image(x,y,mat2,col=pal(10),axes=FALSE)
contour(x,y,mat2,add = TRUE, col = "peru",labcex=1.2)
axis(1, at = seq(0, 1000, by = 200))
axis(2, at = seq(0, 500, by = 100))
title(main="Toth 1962 Analytical Solution to 2D Groundwater Flow", 
col.main="black", font.main=4,cex.main = 1.5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...