11 svar
145 visningar
Zorikan2017 behöver inte mer hjälp
Zorikan2017 237
Postad: 1 apr 14:53

Vart blir det fel i min kod?

Jag håller på med en övningsuppgift på Yata där jag ska beräkna de första 100 punkterna av X_n och Y_n. Jag får ut värden men får ut fel värden enligt Yata. Min kod gör ju det den ska göra. Men varför får jag ut fel värden?

 

 

import numpy as np

# Create numpy arrays to save computed points

X_n = np.zeros(100)Y_n = np.zeros(100)

# Set seedseed = 64 # LÅT STÅ I YATA!

np.random.seed(seed)

# Define functions

def f_x(n, x_n):   

Ux = np.random.rand() * 2   

return x_n - ((2*np.pi/100) * np.sin(2*np.pi*n/100)) * Ux

 

def f_y(n, y_n):   

Uy = np.random.rand() * 2   

return y_n + ((2*np.pi/100) * np.cos(2*np.pi*n/100)) * Uy

#Starting values

X_n[0]=1

Y_n[0]=0

#Looping functions in range and takes previous coordinates in calculation

for k in range(1, 100):   

X_n[k] = f_x(k, X_n[k-1])   

Y_n[k] = f_y(k, Y_n[k-1])

#Prints the 100 first values of f(x) and f(y)

print(X_n)

print(Y_n)

Lapland 42
Postad: 1 apr 17:07

Koden ser rätt ut för mig. Kanske något att göra med ditt seed, men annars vet jag verkligen inte.

Zorikan2017 237
Postad: 1 apr 17:15

väldigt märklig uppgift

Förstår inte vad du gör med Ux och Uy. Det ska ju vara slumpmässiga tal 0 till 2.

Zorikan2017 237
Postad: 1 apr 17:36

Den är ju en variabel Ux=np.random.rand()*2 blir ju samma sak om jag gångrar med np.random.rand() istället för Ux. 

Laguna Online 30704
Postad: 1 apr 17:38

Vad blir fel?

Zorikan2017 237
Postad: 1 apr 17:43

Jag får ut fel värden. Argumenten är det fel på säger min lärare. 

Laguna Online 30704
Postad: 1 apr 17:51

Vad får du för värden? Du kan klistra in alla hundra här.

Zorikan2017 237
Postad: 1 apr 18:13

[ 1. 0.99700873 0.98762824 0.97686678 0.96707458 0.94646351 0.91321419 0.88207026 0.88029785 0.87877776 0.86219976 0.81257709 0.80950866 0.78968129 0.70583093 0.64468661 0.62282039 0.52496789 0.48223564 0.4410454 0.39045036 0.32119244 0.24425575 0.22793041 0.10385285 0.01443352 0.00352901 -0.06348281 -0.16378774 -0.24838881 -0.36378549 -0.39198841 -0.46159537 -0.51283699 -0.55951045 -0.56610434 -0.59793642 -0.6220051 -0.6287376 -0.65161156 -0.72258069 -0.76321687 -0.82022707 -0.83764617 -0.85949909 -0.88113717 -0.89127681 -0.91004151 -0.91129221 -0.91813187 -0.91813187 -0.91337865 -0.90480759 -0.88738413 -0.88591301 -0.85381846 -0.85348753 -0.8094655 -0.77760461 -0.7455653 -0.73438701 -0.71005408 -0.67594388 -0.59971283 -0.53668271 -0.50170548 -0.43497828 -0.42808375 -0.40988823 -0.38966417 -0.30161033 -0.28570427 -0.18136316 -0.11499876 -0.10196198 -0.0257734 0.05480222 0.10082974 0.10195192 0.11731968 0.20369147 0.26385614 0.29233368 0.32029535 0.41659661 0.46871048 0.48004067 0.50124886 0.58145327 0.5883596 0.61818464 0.65843336 0.69313312 0.71723821 0.72744083 0.7383431 0.75374932 0.77075027 0.77771375 0.77809464]

[ 0. 0.07112303 0.12720821 0.16567774 0.20156678 0.24892058 0.31295918 0.33202175 0.3550084 0.42234823 0.46284204 0.4630307 0.49754647 0.53237238 0.5528561 0.56961578 0.58146117 0.62211805 0.6230805 0.63723708 0.6525411 0.67051615 0.67639741 0.68025727 0.68780815 0.68780815 0.68068452 0.67912617 0.66664498 0.65627356 0.64656093 0.6420752 0.61436833 0.56325904 0.50644459 0.4441053 0.40950033 0.35352616 0.3436749 0.33925946 0.33761615 0.26617744 0.18798751 0.17644001 0.14057028 0.10108726 -0.01812929 -0.14016305... -0.96350984 -0.95214857 -0.93950662 -0.92673563 -0.8880348 -0.86542495 -0.8488067 -0.79180151 -0.7411946 -0.72000215 -0.68451209 -0.68418552 -0.58292247 -0.50264773 -0.48922885 -0.44491767 -0.33911003 -0.32235363 -0.26708224 -0.18295967 -0.06080134 0.03529858]

sictransit 1122 – Livehjälpare
Postad: 1 apr 18:23 Redigerad: 1 apr 18:23

Som jag läser uppgiften är det k-1 som skall in i funktionen tillsammans med X_n[k-1]. Det är ditt n som skall ge Xn+1 i retur. Sedan motsvarande för Y förstås. 


X_n[k] = f_x(k-1, X_n[k-1])   

Zorikan2017 237
Postad: 1 apr 18:44

Ja förstås det måste ju vara samma. Detta måste vara det. 

Zorikan2017 237
Postad: 1 apr 18:45

Det stämde tack alla!

Svara
Close