Uploaded by User1970

Matlab slutuppgift

1. Resultat
Funktionsklasser
Funktionsklass
Dataset
Potensfunktion plus potensfunktion
Dataset 1
Potensfunktion
Dataset 2
Exponentiell funktion
Dataset 3
Potensfunktion plus konstant
Dataset 4
Potensfunktion av tre variabler
Dataset 5
Konstanter
Funktion/konstant
Potensfunktion plus potensfunktion
värde
𝑦=𝑞*𝑥
P
0.98
q
0.95
m
-1
n
1
Potensfunktion
𝑛
𝑦=𝑘*𝑥
k
7.25
n
4
Exponentiell funktion
y = A*exp(k*x)
A
8.80
k
-3
Potensfunktion plus konstant
𝑦=𝑘*𝑥
a
3.20
n
1.5
𝑛
𝑚
+𝑏
+𝑞*𝑥
𝑛
b
66
Potensfunktion av tre variabler
y= 𝑘 * 𝑎
k
2.62
a
3
b
-2
y
-0.5
α
*𝑏
β
+𝑐
γ
Figurer
(Funktionen visas som svart streck, mina dataset punkter visas som röda cirklar)
Figur 1
𝑠𝑎𝑚𝑚𝑎𝑛𝑠𝑎𝑡𝑡 𝑓𝑢𝑛𝑘𝑡𝑖𝑜𝑛 𝑓𝑟å𝑛 𝑑𝑎𝑡𝑎𝑠𝑒𝑡 1, 𝑎𝑛𝑝𝑎𝑠𝑠𝑎𝑑 𝑡𝑖𝑙𝑙 𝑦 = 𝑞 * 𝑥
𝑚
+𝑞*𝑥
𝑛
Figur 2
𝑃𝑜𝑡𝑒𝑛𝑠𝑓𝑢𝑛𝑘𝑡𝑖𝑜𝑛 𝑓𝑟å𝑛 𝑑𝑎𝑡𝑎𝑠𝑒𝑡 2, 𝑎𝑛𝑝𝑎𝑠𝑠𝑎𝑑 𝑡𝑖𝑙𝑙 𝑦 = 𝑘 * 𝑥
Figur 3
𝑛
𝑒𝑥𝑝𝑜𝑛𝑒𝑛𝑡𝑖𝑎𝑙𝑓𝑢𝑛𝑘𝑡𝑖𝑜𝑛 𝑓𝑟å𝑛 𝑑𝑎𝑡𝑎𝑠𝑒𝑡 3, 𝑎𝑛𝑝𝑎𝑠𝑠𝑎𝑑 𝑡𝑖𝑙𝑙 𝑦 = 𝐴 * 𝑒𝑥𝑝(𝑘 * 𝑥)
Figur 4
𝑃𝑜𝑡𝑒𝑛𝑠𝑓𝑢𝑛𝑘𝑡𝑖𝑜𝑛 𝑝𝑙𝑢𝑠 𝑘𝑜𝑛𝑠𝑡𝑎𝑛𝑡 𝑓𝑟å𝑛 𝑑𝑎𝑡𝑎𝑠𝑒𝑡 4, 𝑎𝑛𝑝𝑎𝑠𝑠𝑎𝑑 𝑡𝑖𝑙𝑙 𝑦 = 𝑘 * 𝑥
𝑛
+𝑏
2. Beskrivning av din metod
Val av databas
Metoden nedanför presenterar data hämtad från dataset 2. Scriptet som hjälp för att lösa
denna uppgift var Linjaranppasning.m
Data och plottning
1. Först sparades datafilen i arbetsmappen för Matlab. Sedan används kommandot
● load('dataset2.mat')
2. sedan användes plot för att för att se hur figuren ser ut
● plot(x,y, ‘r--’)
Figur 1: plottning av datapunkterna från dataset 2
Ansats
Efter datan har plottats gjordes ansatsen att detta är en potensfunktion. Vid logaritmen av
dessa värden borde resultera till en linjär ekvation.
3. plot (log(x), log(y))
Linjärisering
4. Eftersom värdet 0 inte kan logaritmeras tog dessa värden bort med hjälp av
● x (1)= [], y(1)= []
Figur 2: logaritmering av dataset 2
Passning för koefficienter
5. För att hitta exponenten till potenssambandet användes scriptet linjaranpassning.m.
Man kan också direkt använda sig utav polyfit där vi har första grads polynom. Där
skulle vi få k samt m värdet. Och det är just lutningen vi i detta fall vill få ut. ( I scriptet
får vi även figur 3 samt värdet på K och M värdet som retur, och lutningen K blir
våran exponent)
●
Polyfit (x,y,1)
Figur 3: linjär anpassning av dataset 2
Då har vi fått exponenten n= 4,
𝑦=𝑘*𝑥
4
För att få reda på K värdet behöver vi göra om ekvationen och resultatet blir
𝐾 = 𝑦/𝑥
4
På Matlab skrivs ekvationen in, då får vi ett K värde för varje y och x värde. Då vi har 9 st
värden kommer vi få 9 st K värden.
Ett medelvärde tas sedan av dessa värden som är sparade i namnet Klista
6. Mean (Klista)
● Då fås värdet 7.25
Nu har vi fått alla konstanter
●
●
n=4
K= 7.25
7. För att kontrollera om räkningen är korrekt ersätter jag k och n med värdena jag
mottagit och skapar en function_handle som jag sedan plottar in med hjälp av fplot.
● f=@(x) k.*x^n
● fplot(f,[min(x),max(x)], 'k--')
8. Sedan använder jag kommandot
● Hold on så att fplot grafen inte försvinner. Jag plottar nu in x och y
● Plot(x,y, ‘ro’)
Figur 4: Plottning av function_handle samt plot(x,y)
Eftersom linjen ligger på mina punkter är anpassningen korrekt.