szukanie zaawansowane
 [ Posty: 5 ] 
Autor Wiadomość
Kobieta Offline
PostNapisane: 12 kwi 2018, o 21:39 
Użytkownik

Posty: 43
Lokalizacja: Białystok
1. Przy pomocy pętli for narysować na przedziale [0,1] wykresy funkcji y=x^{1/n} dla kolejnych liczb n=1,2, \ldots,10.
2. Przy pomocy pętli while narysować na przedziale \left[  0,1\right] wykresy funkcji y=x^n dla kolejnych liczb n=1,2, \ldots,10.
Muszę to narysować w programie RStudio.
Próbowałam w taki sposób:
Kod:
1
2
3
4
n <- c(1:10)
x = seq(0,1,by=0.1)

plot(x, x^{n}, type="l",main="Wykres funkcji x^{1/n}",col="red")

ale wtedy w konsoli wyskakuje mi błąd:
Kod:
1
2
3
> plot(x, x^{n}, type="l",main="Wykres funkcji x^{1/n}",col="red")
Warning message:
In x^{ : longer object length is not a multiple of shorter object length

Nie mam pojęcia jak to zrobić.
Uniwersytet Wrocławski Instytut Matematyczny - rekrutacja 2018
Góra
Mężczyzna Offline
PostNapisane: 12 kwi 2018, o 22:26 
Użytkownik
Avatar użytkownika

Posty: 2578
Lokalizacja: Radom
Ciekawe ile to jest wektor podniesiony do potęgi, która jest wektorem ...
Góra
Mężczyzna Offline
PostNapisane: 13 kwi 2018, o 02:37 
Użytkownik

Posty: 121
Lokalizacja: Warszawa
leg14 język R jest zwektoryzowany, operacje wykonywane są element po elemencie.

W tym wypadku korzystanie z tego nic nie da. Autor zadania kazał użyć tej pętli w jakimś celu. Według mnie musisz stworzyć przed pętlą środowisko obrazka, a następnie w pętli od 1 do 10 rysować kolejne linie. Klamry wokół n oczywiście nie są potrzebne. Napisałbym Ci gotowy kod, ale szczerze mówiąc nigdy nie pamiętałem tych wszystkich komend do obsługi surowej grafiki. W razie problemów pisz to sobie przypomnę ;p

Swoją drogą zadanie da się wykonać bez pętli co w języku R jest wskazane gdyż te jego elementy są beznadziejnie zaimplementowane i są najzwyczajniej w świecie wolne.
Góra
Mężczyzna Offline
PostNapisane: 14 kwi 2018, o 22:49 
Użytkownik

Posty: 22
Lokalizacja: Kutno
Można to zrobić np. tak:

Kod:
1
2
3
4
f <- function(x,n) x^(1/n)

plot(0,0,cex=0,xlim=c(0,1),ylim=c(0,1))
for(i in 1:10) lines(seq(0,1,len=100), f(seq(0,1,len=100),i), col=i)


Kod:
1
2
3
4
5
6
7
8
g <- function(x,n) x^n

plot(0,0,cex=0,xlim=c(0,1),ylim=c(0,1))
i <- 0
while (i < 10) {
  i <- i + 1
  lines(seq(0,1,len=100), g(seq(0,1,len=100),i), col=i)
               }
Góra
Mężczyzna Offline
PostNapisane: 19 kwi 2018, o 08:49 
Użytkownik

Posty: 37
Lokalizacja: Stęszew
Po pierwsze to nie jest błąd,a ostrzeżenie. W R trzeba to rozróżniać, błąd nie pozwoli na obliczenia, a ostrzeżenie pozwoli i wypisze komunikat co jest nie tak.

Tutaj mamy: In x^{ : longer object length is not a multiple of shorter object length . Czyli inaczej mówiąc wektory x i n są różnej długości. x ma długość 11, a n długość 10 . Dodatkowo ich NWW nie jest długością dłuższego wektora, a to by powodowało ciekawe rzeczy (zawarte w przestrodze)

Jak kolega Zymon wspomniał w R wszystko jest wykonywane element po elemencie. W takim razie x^n zwraca nam: pierwszy x podniesiony do pierwszego n, drugi x podniesiony do drugiego n, ... , dziesiąty x podniesiony do dziesiątego n, jedenasty x podniesiony do ?? .

Jak widać w tym jedenastym działaniu R nie wie co zrobić.

Mała przestroga :) : Tak jak wyżej wspomniałem gorzej by było gdy jedna długość była by wielokrotnością drugiej. R wtedy dokłada sobie odpowiednią ilość jednego wektora, żeby dopasować go do drugiego.

Kod:
1
2
3
4
5
x <- 1:3
n <- 1:6
x^n

1 4 27 1 32 729


Jak widać pierwszy x jest podniesiony do pierwszego n, a później pierwszy x jest podniesiony do czwartego n!
Góra
Utwórz nowy temat Odpowiedz w temacie  [ Posty: 5 ] 


 Zobacz podobne tematy
 Tytuł tematu   Autor   Odpowiedzi 
 excel a wykresy..  black_cross  2
 [C#/Java] wykresy kwadratowy, trójkątny i sinusoidalny  sajaki  3
 [Excel] Aproksymacja i wykresy  krolp  0
 wykresy funkcji zdaniowych - zadanie 3  17inferno  5
 [MATLAB][Texmaker] Wyraźne wykresy - jak zrobić  jarek4700  9
 
Atom [Regulamin Forum] [Instrukcja LaTeX-a] [Poradnik] [F.A.Q.] [Reklama] [Kontakt]
Copyright (C) Karpatka.pl