kod źródłowy :
nbp=read.csv("2008.csv",header=FALSE,sep=" ",dec=",")
y=seq(1:length(nbp[,1]))
x=nbp[,1]
plot(y,x,col="purple",type="s",xlab="Dni",ylab="Wartość EURO",main="Rok 2008, Euro")
barplot(nbp[y,1],col="purple",,xlab="Dni",ylab="Wartość EURO",main="Rok 2008, Euro")
min_kurs= min(x)
max_kurs= max(x)
srednia=(min_kurs+max_kurs)/2
T <- function(iksowa){
if (iksowa<=min_kurs)return(0)
if (iksowa>min_kurs & iksowa<=b)return((iksowa-min_kurs)/(srednia-min_kurs))
if (iksowa>srednia & iksowa<=max_kurs)return((max_kurs-iksowa)/(max_kurs-srednia))
if (iksowa>max_kurs)return(0)}
t=1
for (i in 1:254){
t[i]= klasa_T(x[i])
}
plot(x, t, col="purple",type="l",xlab="x",ylab="funkcja przynależności ", main ="typu T ")
dzwon=1
for (g in 1:254)
{
dzwon[g] = 1/(1+(abs((x[g]-srednia)/(min_kurs)))^2*max_kurs)
}
plot(x, dzwon, col="purple",,xlab="x",ylab="funkcja przynależności ", type="l", main ="typu dzwonowego ")
koncentrat=t^4
plot(x, koncentrat,col="purple",xlab="x",ylab="funkcja przynależności ", type="l", main ="koncentracja, typu T ")
rozc=t^0.3
plot(x, rozc, col="purple",xlab="x",ylab="funkcja przynależności ", type="l", main ="rozcieńczenie, typu T ")
S <- function(iksowa) {
if (iksowa<=min_kurs)
return(0)
if (iksowa>min_kurs & iksowa<=srednia)
return(2*((iksowa-min_kurs)/(max_kurs-min_kurs))^2)
if (iksowa>srednia & iksowa<=max_kurs)
return(1-2*((iksowa-max_kurs)/(max_kurs-min_kurs))^2)
if (iksowa>max_kurs)
return(1)
}
s=1
for (j in 1:254)
{
s[j]=klasa_S(x[j])
}
plot(x, s, col="purple",,xlab="x",ylab="funkcja przynależności ", type="l", main ="typu S ")
dopel=1-rozc
plot(x, dopel, col="purple",xlab="x",ylab="funkcja przynależności ", type="l", main ="dopełnienie z funkcji typu T,rzocieńczonej ")
Wnioski:
Zadanie umożliwiło doszlifowanie umiejętności rysowania różnych wykresów w jązyku „R”, ich edycji , również ustalania funkcji przedziałów wartości.
Poznano zbiory rozmyte i ich typy, wzory umożliwiające ich określenie i działania na nich.
Michał Gacek