Matematik

fit af sinus til data

17. november 2009 af Cairhien (Slettet) - Niveau: Universitet/Videregående

Hej

Jeg sidder med en y vector og en t vector som jeg gerne vil fitte en sinus kurve til så den får formen: f(t) = A*sin(ωt+φ)+B

Jeg har siddet og brygget lidt med funktionen og har fundet frem til at jeg skal bruge en relation som gør at f(t) = Asin(φ)cos(ωt)+Acos(φ)sin(ωt)+B

Jeg kan dog ikke helt se hvordan jeg kommer videre herfra... Nogen der kan hjælpe mig med dette?

Mvh -J-


Brugbart svar (1)

Svar #1
17. november 2009 af Jerslev (Slettet)

#0: Er det ikke blot at fortælle dit CAS, at den skal fitte til en funktion af typen som du skriver først? Der er vel ingen grund til at omskrive den.


Svar #2
17. november 2009 af Cairhien (Slettet)

Nu er det sådan at det skal bruges i en rapport, så bare at komme med et resultat er ikke nok - ydermere har jeg ikke kunne finde frem til hvordan det skal gøres vha. matlab.


Brugbart svar (2)

Svar #3
17. november 2009 af Jerslev (Slettet)

#2: Hvis du har x og y værdier i hver sin vektor, her kaldet x og y bruger du blot kommandoen:

[a b] = fit(x,y,'P1*sin(P2*x+P3)+P4')

såvidt jeg husker.

Hvis du efterfølgende bruger:

plot(x,y,'r*','markersize',14);

[a b] = fit(x,y,'P1*sin(P2*x+P3)+P4');

hold on

plot(a)

Vil du få det plottet på samme graf som datapunkterne.

 Det plejer at være godt nok at skrive, at man har fittet datasættet til en funktion af typen f(x) = .... og så herefter komme med resultaterne. Du kan jo naturligvis ikke selv opskrive hele fitningen.


Svar #4
17. november 2009 af Cairhien (Slettet)

Det ser ikke ud til at det er helt det jeg er efter, men jeg er ved at have bidt hul på problemet.

Sinusen kan splittes op i f(t) = Asin(φ)cos(ωt)+Acos(φ)sin(ωt)+C. Da [x,y] er kendt og φ og C er konstant kan ligningen omskrives til:

f(t) = B1cos(ωt)+B2sin(ωt) + C eller kortere f(t)=B1X1+B2X2+C

Jeg kan godt se at jeg skal lave en eller anden form for fit til dette datasæt og herefter bruge B1 og B2 til at finde A og phi. Men hvordan får jeg fittet disse 3 konstanter til at passe til min ligning. Jeg vil selv mene at jeg skal bruge en least sum of squares men jeg kan ikke lige se hvilken function i fx matlab jeg skal bruge for at finde disse 3 værdier.


Brugbart svar (1)

Svar #5
17. november 2009 af Jerslev (Slettet)

#4: Jeg forstår ikke problemet. Lav dog et direkte fit med kommandoen skrevet i #3 og så er det færdiggjort.


Skriv et svar til: fit af sinus til data

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.