Vinnaren i pepparkakshustävlingen!
2010-07-14, 13:08
  #1
Medlem
en kopp kaffes avatar
Jag vill approximera (1-1/k)^m på bästa sätt. Min förslag är (1-1/k)^m ≥ (exp(-1/k))^m = exp(-m/k)

Nu vill jag hitta en så bra som möjligt övre gräns också, som är bättre än 1. Tips?

edit: en parentes föll bort i all upphetsning
__________________
Senast redigerad av en kopp kaffe 2010-07-14 kl. 13:17.
Citera
2010-07-14, 13:27
  #2
Medlem
Går inte olikheten där åt fel håll? Så att det du har är en övre gräns, och du söker en undre gräns?

Edit: Och en undre gräns ges tex av

(1-1/k)^m ≥ 1 - m/k

fast den är förstås ganska värdelös om m > k.
__________________
Senast redigerad av dbshw 2010-07-14 kl. 13:34.
Citera
2010-07-14, 13:51
  #3
Medlem
en kopp kaffes avatar
Citat:
Ursprungligen postat av dbshw
Går inte olikheten där åt fel håll? Så att det du har är en övre gräns, och du söker en undre gräns?

Edit: Och en undre gräns ges tex av

(1-1/k)^m ≥ 1 - m/k

fast den är förstås ganska värdelös om m > k.

Jag håller inte med. T ex ett numeriskt test påvisar motsatsen

Kod:
>>> exp(-9/4)
0.049787068367863944
>>> (1-1.0/4)**9
0.075084686279296875

>>> (1-1.0/40)**90
0.10242722643264454
>>> exp(-90/40)
0.049787068367863944

Så riktningen är korrekt tror jag faktiskt, såvida jag har inte missat någon konstant n, dvs. (exp(-n/k))^m.

Edit: hade missat en konstant!

Kod:
>>> (1-1.0/2)**2
0.25
>>> exp(-2/2)
0.36787944117144233
__________________
Senast redigerad av en kopp kaffe 2010-07-14 kl. 13:55.
Citera
2010-07-14, 14:02
  #4
Medlem
Citat:
Ursprungligen postat av en kopp kaffe
Jag håller inte med. T ex ett numeriskt test påvisar motsatsen

Kod:
>>> exp(-9/4)
0.049787068367863944
>>> (1-1.0/4)**9
0.075084686279296875

>>> (1-1.0/40)**90
0.10242722643264454
>>> exp(-90/40)
0.049787068367863944

Så riktningen är korrekt tror jag faktiskt, såvida jag har inte missat någon konstant n, dvs. (exp(-n/k))^m.

Edit: hade missat en konstant!

Kod:
>>> (1-1.0/2)**2
0.25
>>> exp(-2/2)
0.36787944117144233

Förstår inte vad för konstant du pratar om, men som jag ser det så är felet att Python avrundar nedåt vid heltalsdivision:

Kod:
>>> exp(-9/4)
0.049787068367863944
>>> exp(-9.0/4)
0.10539922456186433
Citera
2010-07-14, 14:29
  #5
Medlem
en kopp kaffes avatar
Citat:
Ursprungligen postat av dbshw
Förstår inte vad för konstant du pratar om, men som jag ser det så är felet att Python avrundar nedåt vid heltalsdivision:

Kod:
>>> exp(-9/4)
0.049787068367863944
>>> exp(-9.0/4)
0.10539922456186433

Sedär, du har ju helt och hållet rätt!

Var ett tag sedan jag hade analysen Funkar det här argumentet?

x = 1/k, k > 1
exp(-x) = 1 - x + x^2/2 - x^3/6 + ... = 1 - x + g(x)
g'(x) = x - x^2/2 + ... = 1 - exp(-x), som är strängt stigande, eller avtagande med k. Felet går mot noll då k -> oändligheten. x = 1 ger att exp(-x) > (1-x). Så exp(-1/k) ≥ (1-1/k) för k > 1.
Citera
2010-07-14, 14:38
  #6
Medlem
Citat:
Ursprungligen postat av en kopp kaffe
Sedär, du har ju helt och hållet rätt!

Var ett tag sedan jag hade analysen Funkar det här argumentet?

x = 1/k, k > 1
exp(-x) = 1 - x + x^2/2 - x^3/6 + ... = 1 - x + g(x)
g'(x) = x - x^2/2 + ... = 1 - exp(-x), som är strängt stigande, eller avtagande med k. Felet går mot noll då k -> oändligheten. x = 1 ger att exp(-x) > (1-x). Så exp(-1/k) ≥ (1-1/k) för k > 1.

Om jag förstår dig ätt så är det följande du säger:

Låt g(x) = exp(-x) + x - 1. Då är g'(x) = 1 - exp(-x), vilket är positivt för x > 0 och negativt för x < 0. Vidare är g(0) = 0, och ur detta följer att g(x) ≥ 0 överallt.

I så fall så fungerar resonemanget ypperligt.
Citera
2010-07-14, 15:12
  #7
Medlem
en kopp kaffes avatar
Citat:
Ursprungligen postat av dbshw
Om jag förstår dig ätt så är det följande du säger:

Låt g(x) = exp(-x) + x - 1. Då är g'(x) = 1 - exp(-x), vilket är positivt för x > 0 och negativt för x < 0. Vidare är g(0) = 0, och ur detta följer att g(x) ≥ 0 överallt.

I så fall så fungerar resonemanget ypperligt.

Exakt.

De båda gränserna löste problemet. Tack för hjälpen!
Citera

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