Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2012-10-09, 14:21
  #1
Medlem
Hur skriver jag de här funktionerna i Matlab?


x^(1/5)cos(x)e^(x^(1/7))



e^(sin(x))
Citera
2012-10-09, 14:32
  #2
Medlem
c^2s avatar
Citat:
Ursprungligen postat av lak5453
Hur skriver jag de här funktionerna i Matlab?


x^(1/5)cos(x)e^(x^(1/7))



e^(sin(x))

Ska du bara skriva funktionen rakt av och inte räkna med någon vektor skriver du bara:

Citat:
x^(1/5)*cos(x)*e^(x^(1/7))

Vill du definiera det som en funktion f(x) kan du skriva:

Citat:
y = @(x) x^(1/5)*cos(x)*e^(x^(1/7))

Där du sen skriver y(x) för att räkna ut värdet för ett visst x.
Citera
2012-10-09, 17:37
  #3
Medlem
Jag ska integrera de
Citera
2012-10-09, 17:40
  #4
Medlem
dMobergs avatar
Citat:
Ursprungligen postat av lak5453
Jag ska integrera de
spännande
Citera
2012-10-09, 18:36
  #5
Medlem
c^2s avatar
Citat:
Ursprungligen postat av dMoberg
spännande

Fan, i mitt nästa liv ska min Flashbackanvändare heta pMorberg!
Citera
2012-10-09, 20:13
  #6
Medlem
Grogganns avatar
Citat:
Ursprungligen postat av lak5453
Jag ska integrera de

Då får du kolla på Euler framåt eller Runge-Kutta eller något liknande.
Citera
2012-10-09, 21:12
  #7
Medlem
Okej, jag skriver hela uppgiften...


Använd Matlab och Stora talens lag för att (med "Monte-Carlo metoden" ovan) med god noggrannhet bestäma

a) integraltecken från 0 till 1 e^(x^(2))dx

b) integraltecken från 0 till 1 x^(1/5)cos(x)e^(x^(1/7))dx

c) integraltecken från 0 till 2,38 e^(sin(x))dx

Som redovisning lämnas svar och Matlabkod.


Här är en bild på uppgiften ifall ni inte förstår: http://imageshack.us/a/img145/8292/sannstat2.jpg


a) Är det inte bara göra så här?

fun = @ (x) exp(x.^2) ;
q = integral (fun,0,1)
q = 1,4627


Så det jag undrar över är hur jag skriver b) och c) uppgiften i Matlab?
Citera
2012-10-09, 21:33
  #8
Medlem
dxdps avatar
Citat:
Ursprungligen postat av lak5453
Okej, jag skriver hela uppgiften...


Använd Matlab och Stora talens lag för att (med "Monte-Carlo metoden" ovan) med god noggrannhet bestäma

a) integraltecken från 0 till 1 e^(x^(2))dx

b) integraltecken från 0 till 1 x^(1/5)cos(x)e^(x^(1/7))dx

c) integraltecken från 0 till 2,38 e^(sin(x))dx

.
.
.

a) Är det inte bara göra så här?

fun = @ (x) exp(x.^2) ;
q = integral (fun,0,1)
q = 1,4627


Så det jag undrar över är hur jag skriver b) och c) uppgiften i Matlab?

(1) Vet du vad Monte-Carlo är?
(2) Använder du någonstans Monte-Carlo?

Om svaret på (1) är ja då borde du inse att svaret på (2) är nej och därmed är lösningen fel.
Om svaret på (1) är nej då borde du läsa på vad Monte-Carlo är och inse att svaret på (2) är nej.

Således: Du använder inte Monte-Carlo och därmed är uppgiften inte korrekt löst.
Citera
2012-10-09, 22:00
  #9
Medlem
Citat:
Ursprungligen postat av dxdp
(1) Vet du vad Monte-Carlo är?
(2) Använder du någonstans Monte-Carlo?

Om svaret på (1) är ja då borde du inse att svaret på (2) är nej och därmed är lösningen fel.
Om svaret på (1) är nej då borde du läsa på vad Monte-Carlo är och inse att svaret på (2) är nej.

Således: Du använder inte Monte-Carlo och därmed är uppgiften inte korrekt löst.


Monte-Carlo går väl ut på att man ska skriva om integralen som ett väntevärde typ:

I = integraltecken från 0 till 1 g(x)dx = integraltecken från 0 till 1 g(x)*1 dx = E(g(U)) dvs I ≈ 1/n ∑^n g(u_k)

Men jag förstår inte hur man ska kombinera det med Matlab i sådanna fall? Hur blir funktionerna? Ngn som kan hjälpa mig?
Citera
2012-10-09, 22:09
  #10
Medlem
dxdps avatar
Citat:
Ursprungligen postat av lak5453
Monte-Carlo går väl ut på att man ska skriva om integralen som ett väntevärde typ:

I = integraltecken från 0 till 1 g(x)dx = integraltecken från 0 till 1 g(x)*1 dx = E(g(U)) dvs I ≈ 1/n ∑^n g(u_k)

Men jag förstår inte hur man ska kombinera det med Matlab i sådanna fall? Hur blir funktionerna? Ngn som kan hjälpa mig?

Ja. Har du gjort så? Nej, alltså är det fel. Säg att du vill integrera funktionen f(x) = x mellan 0 till 1 med 1000 "samplingar".

N = 10^3 ;
f = @(x) x ;
1/N * sum(f(rand(1,N)))

rand genererar ett slumptal mellan 0 och 1 och rand(1,N) genererar N stycken sådana. Nu måste du göra likadant för (a),(b) fast andra funktioner och för (c) måste du skifta så den generar mellan 0 och 2.38. Hur gör du det?
Citera
2012-10-09, 22:19
  #11
Medlem
Citat:
Ursprungligen postat av dxdp
Ja. Har du gjort så? Nej, alltså är det fel. Säg att du vill integrera funktionen f(x) = x mellan 0 till 1 med 1000 "samplingar".

N = 10^3 ;
f = @(x) x ;
1/N * sum(f(rand(1,N)))

rand genererar ett slumptal mellan 0 och 1 och rand(1,N) genererar N stycken sådana. Nu måste du göra likadant för (a),(b) fast andra funktioner och för (c) måste du skifta så den generar mellan 0 och 2.38. Hur gör du det?

Det borde väl bli

N = 10^3 ;
f = @(x) x ;
1/N * sum(f(rand(2.38,N)))
Citera
2012-10-09, 22:19
  #12
Medlem
dMobergs avatar
Citat:
Ursprungligen postat av c^2
Fan, i mitt nästa liv ska min Flashbackanvändare heta pMorberg!
Haha tack Men var får alla ett R ifrån
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback