Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 01. 11. 2015 01:50

MatejD
Zelenáč
Příspěvky: 10
Škola: FMFI UK
Pozice: študent
Reputace:   
 

Diskretizácia druhej derivácie s neekvidistantnou mriežkou

Ahojte,
mám menší problém s ktorým si neviem už pár dní poradiť a bol by som veľmi vďačný ak by mi niekto vedel pomôcť.

V prípade ekvidistantnej mriežky máme:

$f''(h*i) =  f''_{i} = \frac{f(h*(i+1))-2f(h*i)+f(h*(i-1))}{h^2} = \frac{f_{i+1}-2f_{i}+f_{i-1}}{h^2}$

kde $i$ ide o 0 po 300, $h=\frac{r_{max}}{300}$  je vzdialenosť dvoch bodov mriežky, u mňa $r_{max}=20$ takže $h=\frac{20}{300}$.  V takomto prípade mi všetko funguje ako má.

Ja mám ale pole $r_{i}$ ktoré vyzerá nasledovne:
//forum.matweb.cz/upload3/img/2015-11/37293_Sn%25C3%25ADmka.JPG
(aj tam kde tá červená čiara nieje vidno to má hodnoty ale sú veľmi malé, teda mriežka je tam hustá)

a potreboval by som počítať $f''(r_{i})$ s tým že očakávam závislosť od $ f(r_{i-1}) $ , $ f(r_{i}) $ , $ f(r_{i+1}) $

skúšal som urobiť $h$ -> $dr_{i}$, kde $dr_{i} = r_{i+1}-r_{i}$ a $h*i$ -> $r_i$ ale nebol som úspešný. Potom som s tým skúšal zaobchádzať ako so zloženou funkciou, ale taktiež som na nič neprišiel, mám dosť problém predstaviť si ako to vyzerá pri finite difference (teóriu derivácie zloženej funkcie z analýzy ovládam).

Vopred ďakujem za každú reakciu.

Offline

 

#2 01. 11. 2015 09:07

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Diskretizácia druhej derivácie s neekvidistantnou mriežkou

spočítej si nejdřív první diference a z nich pak druhé. ten vzorec "s jedním h" nemůže fungovat, protože ti do výpočtu vstoupí dvě různé vzdálenosti dr_i

Offline

 

#3 01. 11. 2015 14:33 — Editoval MatejD (01. 11. 2015 14:34)

MatejD
Zelenáč
Příspěvky: 10
Škola: FMFI UK
Pozice: študent
Reputace:   
 

Re: Diskretizácia druhej derivácie s neekvidistantnou mriežkou

skúšal som to robiť aj tak že som si vyjadril
$f(r_{i+1)} =f(r_i) + f'(r_i)*dr_i +  \frac{f''(r_i)*(dr_i)^2}{2}$
a
$f(r_{i-1)} =f(r_i) - f'(r_i)*dr_{(i-1)} +  \frac{f''(r_i)*(dr_{i-1})^2}{2}$

sčítal som to a prvú deriváciu som nahradil:
$f'(r_i) = \frac{f(r_{i+1})-f(r_i)}{dr_i}$
(tu som si nie 100% istý či som to mohol urobiť alebo či je to správna cesta keďže mi tam ostali tie prvé derivácie)

druhú deriváciu som potom dostal v takomto tvare:
$f''(r_i) =\frac{2*[f(r_{i+1})+f(r_{i-1})-2f(r_i)+\frac{f(r_{i+1})-f(r_i)}{dr_i}(dr_{i-1}-dr_i)]}{(dr_i)^2+(dr_{i-1})^2}$
// pre $dr_i=dr_{i-1}$ to dokonca vyzerá ako vzorec s konštantným h
Toto ale nedáva také výsledky ako by malo.

Offline

 

#4 01. 11. 2015 16:41

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Diskretizácia druhej derivácie s neekvidistantnou mriežkou

$f'(r_i) = \frac{f(r_{i+1})-f(r_i)}{dr_i}$ je OK. pokud stejný vzorec aplikuješ na f', dostaneš f'', ale určitě nebude vypadat tak, jak píšeš (bude se tam vyskytovat index i+2 a nebude tam naopak i-1), tak nevím, jak jsi přišel na ten svůj. neříkám, že je špatně, ono se to dá aproximovat různě, ale není to to, co jsem ti navrhl já, takže ti nepovím, proč to nefunguje tak, jak bys chtěl

Offline

 

#5 01. 11. 2015 17:41

MatejD
Zelenáč
Příspěvky: 10
Škola: FMFI UK
Pozice: študent
Reputace:   
 

Re: Diskretizácia druhej derivácie s neekvidistantnou mriežkou

myslíš niečo takéto?

$\frac{\frac{f(r_{i+2})-f(r_{i+1})}{dr_{i+1}}-\frac{f(r_{i+1})-f(r_i)}{dr_i}}{dr_i}$

to sa mi síce nezdá ale neviem ako inak zderivovať tú prvú deriváciu. Hlavne to $dr_i$ pod hlavnou zlomkovou čiarou neviem či je dobre a či sa to tak môže urobiť.

To čo som robil ja je klasický postup pre vyjadrenie druhej derivácie pri konštantnom h. Rozvinul som $f(r_{i+1}) $ aj $f(r_{i-1}) $ okolo $f(r_{i}) $ po druhú deriváciu a sčítal som to. V prípade h=const tam vypadnú prvé derivácie a dá sa odtiaľ pekne vyjadriť druhá derivácia ako $f''(h*i) =  f''_{i} = \frac{f(h*(i+1))-2f(h*i)+f(h*(i-1))}{h^2} = \frac{f_{i+1}-2f_{i}+f_{i-1}}{h^2}$

Offline

 

#6 01. 11. 2015 18:10

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Diskretizácia druhej derivácie s neekvidistantnou mriežkou

přesně to myslím. dalo by se samozřejmě zkombinovat i $f'(r_i) = \frac{f(r_{i+1})-f(r_i)}{dr_i}$ a $f''(r_i) = \frac{f'(r_{i})-f'(r_{i-1})}{dr_{i-1}}$, jestli se ti to bude líbit víc

Offline

 

#7 02. 11. 2015 22:33

MatejD
Zelenáč
Příspěvky: 10
Škola: FMFI UK
Pozice: študent
Reputace:   
 

Re: Diskretizácia druhej derivácie s neekvidistantnou mriežkou

Aj tak  mi to nedáva výsledky ktoré by sa podobali výsledkom pri počítaní s konštantným h (respektíve sa to ani zďaleka neblíži analytickému riešeniu ktoré poznám). Možno mám chybu v niečom inom,  každopádne ďakujem za pomoc.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson