• Register

Interpolacija z znanimi ekstremi (projekt)

+4 votes
291 views
Pozdravljeni,

v nosilcu želim prikazati potek strižnih napetosti s pomočjo interpolacije. Znane imam 4 točke in vem da je v 2. točki maximum(težišče prereza). Zanima me, če obstaja kakšna interpolacijska funkcija, ki omogoča da izberem to vrednost za maximalno oziroma, če obstaja kakšen drug način kako rešim ta problem.

v linku prilagam sliko poteka dobljene interpolacije

https://imgur.com/1bI0WPN

Lep pozdrav,

Marko B.
asked Dec 7, 2017 by MarkoBlagojevič (260 points)

1 Answer

+3 votes
 
Best answer

Enostavne poti žal ne poznam (morda lahko tukaj kdo pomaga), sam pa bi razmišljal v tej smeri:

Za vaše pare točk x, y iščete interpolacijsko funkcijo y = f(x). Če želite pri interpolaciji v eni izmed poznanih točk x_i "vsiliti" ekstrem funkcije, boste morali v tej točki predpisati nično vrednost odvoda, torej f'(x_i) = 0

EDIT: Očitno lahko funkciji KroghInterpolator podamo vrednost odvoda le v eni, izbrani točki. To je torej "enostavna" pot (podrobnosti o uporabi najdete v dokumentaciji):

scipy.interpolate.KroghInterpolator je Scipyjeva funkcija, ki omogoča predpis vrednosti odvodov v izbranih točkah. Če poskusim simulirati vaš primer:

Druga ideja je uporaba Scipyjeve funkcije scipy.interpolate.CubicSpline. Ta je namenjena interpolaciji s kubičnimi zlepki, in omogoča predpis vrednosti odvoda inteprolacijskega zlepka v robnih točkah. Da bi na ta način lahko določili vrednost odvoda v izbrani točki, je treba razdeliti vaše interpolacijsko območje na dva intervala - levo in desno od vašega željenega ekstrema. Na dobljenih območjih nato interpolirate z uporabo CubicSpline, pri čemer izberete opcijo bc_type='clamped', kar pomeni vrednosti f'(x) = 0 na robovih obeh območij. Ker je vaša točka x_i na robu obeh intervalov (končna točka prvega in začetna točka drugega), ste s tem dobili interpolacijski zlepek z ekstremom v izbrani točki. Težava je le v tem, da niste dobili ene same interpolacijske funkcije, temveč eno, ki velja levo od ekstrema (cs1 v primeru) in drugo, ki velja desno od ekstrema (cs2).

answered Dec 7, 2017 by dgorjup (52,250 points)
selected Dec 8, 2017 by blaz
Hvala za odgovor :)
...