Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 2. 5. 2017 14:11:24

Trambus
Člen
Registrace: 20. 2. 2013
Příspěvků: 52

Lineární interlpolace - VYŘEŠENO

Dobrý den,

prosím o radu. Mám tabulku se základníma hodnotama kde lze mezilehlé hodnoty lineárne interpolovat.

Potřebuju v závislosti na prvním sloupci dohledat dvě hodnoty ze sloupce druhého a třetího. A to včetně hodnot, které nejsou v prvním sloupci konkrétně vypsány,ale lze je použít (lineárně interpolovat).

Přikládám odkaz na soubor: https://ulozto.cz/!ximo8aXRUDs1/linearn … polace-ods

Snad je to pochopitelné.

Děkuji!

Editoval Trambus (18. 11. 2021 17:51:38)

Offline

#2 2. 5. 2017 14:48:10

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Lineární interlpolace - VYŘEŠENO

K tomuto slouží funkce LINEST. V podstatě si ale musíte rozmyslet co potřebujete. Lineární regrese je test na směrnici přímky která se v podstatě dá definovat jako absolutní, nebo posunutá podle osy Y do středu souřadného kříže (přímka prochází bodem 0,0). Vše je docela dobře popsáno v nápovědě LO.
     Linest patří z nějakého důvodu mezi maticové funkce a není uvedena mezi statistickými. Takže ji hledejte mezi MATICEMI.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 2. 5. 2017 16:04:08

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 145

Re: Lineární interlpolace - VYŘEŠENO

Linest patří do maticových funkcí protože se počítá maticově pomocí pseudoinverze:

Z = invert(transpose(X).X).transpose(X).Y

přičemž X je matice vstupních hodnot a Y je matice výsledných hodnot. Vyjde matice hledaných koeficientů (Z).


Ubuntu 22.04.4 LTS, LibreOffice Verze: 7.6.6.3, wxMaxima 20.12.1, Maxima 5.47.0 (SBCL)

Offline

#4 2. 5. 2017 16:11:06

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: Lineární interlpolace - VYŘEŠENO

já to dělávám pomocnou tabulkou, asi to lze nějakou funkcí ale nikdy jsem nepřišel jak na to

https://drive.google.com/file/d/0B3b5jU … sp=sharing


Ono také většinou v těchto úlohách jde o interpolaci mezilehlých hodnot nikoli hledání regresní přímky.

Editoval ludviktrnka (2. 5. 2017 16:13:14)


LibreOffice 5.4.

Offline

#5 2. 5. 2017 16:40:05

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 145

Re: Lineární interlpolace - VYŘEŠENO


Ubuntu 22.04.4 LTS, LibreOffice Verze: 7.6.6.3, wxMaxima 20.12.1, Maxima 5.47.0 (SBCL)

Offline

#6 2. 5. 2017 16:57:13

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Lineární interlpolace - VYŘEŠENO

Pro Lader :
Například většina funkcí se dá spustit jako matice, ale i z Linest vytvoříte pomocí nul "matici" 1x2, což je velice podobné s FORECAST - ta hledá určitý bod na regresní přímce. Je to v souvislosti s LINEST.
     Jenomže ten zmatek má jinou logiku. Už se to tady probíralo. Existuje celkem 11 položek v nápovědě které se týkají statistiky. mezi nimi jsou i matice. Nikde jinde se ale nedá dovodit z popisu relaci ke statistice. Existovaly typické příklady jakou COUNTIF, SUMIF ap které nebyly původně vůbec mezi statistickými funkcemi Chyba překladu. To se od té doby dost změnilo ale nepřehlednost je to stále. Už proto že se zřejmě prolíná překlad starších verzí s novými.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 2. 5. 2017 17:22:01

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 145

Re: Lineární interlpolace - VYŘEŠENO

Tomu rozumím, uživatele vůbec nezajímá jakým způsobem se funkce počítá, ale kam patří. Zajímalo by mě jak je to řešeno třeba v Excelu, jestli tam není podobný problém.


Ubuntu 22.04.4 LTS, LibreOffice Verze: 7.6.6.3, wxMaxima 20.12.1, Maxima 5.47.0 (SBCL)

Offline

#8 2. 5. 2017 17:32:31

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Lineární interlpolace - VYŘEŠENO

Navíc když se zabývám k čemu je to potřeba (Snad je to pochopitelné.) tak mne napadá, že to nemusí být správná definice problému. Může jít o několik různých i když "podobných" problémů.


     Zatímco lineární interpolace se zabývá v podstatě směrnicí spočtenou z nějakých odchylek od osy Y tak aby byla vystižena optimální hodnota přímky která mezi nimi probíhá, jde zřejmě o podstatu v prostřihu, nebo třeba v objemu (nepřímo váha).
     Ten "součinitel by mohla být klidně tloušťka materiálu a zbytek je jasný. Může jít například o váhu materiálu - souvislost s cenou, nebo přípravou výroby, ale nejspíš by šlo o podobnost rozměrů AxB - tedy lépe A:B - a nejspíš následně o ztráty z prostřihu.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#9 2. 5. 2017 19:20:43

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: Lineární interlpolace - VYŘEŠENO

Ono tedy jak odhalil Leader - zadání je v podstatě nesmyslné - jakékoli číslo z tabulky lze vypočítat pomocí jedné podmíněné lineární funkce a jedné obyčejné lineární funkce, takže interpolace v této tabulce je holý nesmysl. Hezky je to vidět když si danou tabulku vyjádříte grafem. Interpolace se používá u tabulkových vyjádření složitých nelineárních funkcí.


LibreOffice 5.4.

Offline

#10 2. 5. 2017 20:07:08

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Lineární interlpolace - VYŘEŠENO

Je to jenom jednoduchý případ. Proložení směrnicí je častější u více položek - pro 10 bodů a podobně. Když jsou body moc rozptýleny hledá se křivka ale podstata je stejná. Určitému průmětu na X odpovídá určitý průmět na Y. Ale jde to i zaměnit. Ono je relativní co je X a Y


     Já si myslím, že jde spíš o něco jiného. Například o celočíselné podíly násobků nějakého rozměru a je jedno zda se vejde "X" do "XX" k krát a "Y" do "YY" n x nebo opačně. Vypadá to jako aktuální zásoby na skladě které je nutné zkombinovat aby se "vyrobil" objednaný počet určitých výrobků. Takže jde například o to aby se využily všechny zásoby se stejnou tloušťkou, nebo něco podobného. Tohle ale není ta správná cesta.


     Měly by se hledat nejmenší společné násobky šířky a délky. I když můžeme předpokládat, že směrnice ukáže na přeponu která by měla mít vlastnost "správných" celočíselných poměrů (ale jen celočíselné násobky shodné pro obě osy).
     Potom by ale směrnice měla být zadávána úhlem a skutečnou délkou jednotkové přepony (pokud jde skutečně o pravidelné obdélníky). V takovém případě by na prvním místě byl jednotkový rozměr finálního výrobku, což samozřejmě nevíme - vzor nebude asi v relaci se skutečností.
     Ale tento postup neodhalí celočíselné poměry "X" krát "Y+1 (nebo více či méně ap.). Tohle vede na kvadratické rovnice a spíš by to chtělo porovnávat obsahy "XX" krát "YY" a dělit jak "X" tak "Y" což jsou 4 výsledky "XX/X", "XX/Y", "YY" / X" a "YY / Y". Ovšem co autor opravdu potřebuje netuším.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#11 2. 5. 2017 20:41:32

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: Lineární interlpolace - VYŘEŠENO

funkce na stahování dat z interpolu :-)

Function Interpol (Vstup as Variant, oX() as Variant, oY() as Variant)
'vstup je číslo z osy X pro nějž chceme získat interpolovanou hodnotu Y
'oX je oblast hodnot z osy X - musí být seřazeny od nejmenší po největší
'oY je oblast hodnot z osy Y
'oY musí být stejně veliká oblast nebo větší jak oX
'příklad zadání: INTERPOL(0,721;A2:A10;B2:B10)
  dim i as integer
  dim Y as double

  if Vstup < oX(1,1) then
     Interpol = 0
     exit function
  end if	
  
  Y = 0 

  for i = 1 to ubound(oX,1) - 1
     if Vstup >= oX(i,1) AND Vstup < oX(i+1,1) then
        Xh = oX(i,1)
        Xd = oX(i+1,1)
        Yh = oY(i,1)
        Yd = oY(i+1,1)
        Y = (Yh - Yd) * (Xd - Vstup) / (Xd - Xh) + Yd
     end if
  next i

Interpol = Y

End Function

https://drive.google.com/file/d/0B3b5jU … sp=sharing

Editoval ludviktrnka (3. 5. 2017 10:19:01)


LibreOffice 5.4.

Offline

#12 2. 5. 2017 22:34:13

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 844

Re: Lineární interlpolace - VYŘEŠENO

K lin. interpolaci existuje funkce FORECAST, případně FORECAST.LINEAR (je stejná jako FORECAST, jen explicitně odlisšuje od FORECAST.ETS)

V buňce E4 je zadané a:

Délka: =FORECAST(E4;OFFSET($A$4;MATCH(E4;$A$4:$A$14)-1;1;2;1);OFFSET($A$4;MATCH(E4;$A$4:$A$14)-1;0;2;1))

Šířka: =FORECAST(E4;OFFSET($A$4;MATCH(E4;$A$4:$A$14)-1;2;2;1);OFFSET($A$4;MATCH(E4;$A$4:$A$14)-1;0;2;1))

(Není to jediný způsob.)

Offline

#13 3. 5. 2017 17:38:58

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 145

Re: Lineární interlpolace - VYŘEŠENO

Makro od ludviktrnka se mi líbí. Trochu jsem jej upravil, aby nezobrazovalo chyby, když bude mimo rozsah a aby počítalo i s poslední uvedenou hodnotou.
Ještě jsem tam přidal makro interpol2, které počítá kubickou interpolaci, takže místo propojení bodů rovnými čarami (lomená čára), vytvoří průběh hezky zaoblený. Stejně jako v předchozí funkci, data musí být seřazená. Na krajích pro zjednodušení počítá lineárně (v případě zájmu můžu funkci upravit ...).

Ke stažení Zde



Funkci jsem upravil, teď počítá i na krajích zaobleně.

Ke stažení Nová verze

Editoval LADER (3. 5. 2017 18:25:55)


Ubuntu 22.04.4 LTS, LibreOffice Verze: 7.6.6.3, wxMaxima 20.12.1, Maxima 5.47.0 (SBCL)

Offline

#14 3. 5. 2017 19:28:12

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 3,468

Re: Lineární interlpolace - VYŘEŠENO

Já si nemyslím že by autor měl na mysli zrovna kvadratickou interpolaci. Ono těch "interpolací" je více druhů a typické statistické interpolaci se říká jinak - jsou to testy na odchylky od průměru. Běžně se užívají dva druhy. Je to jednak průměrná odchylka z absolutních odchylek od aritmetického průměru (lineární jednorozměrné řešení) a potom směrodatná odchylka (kvadratické řešení). Vše také souvisí s metodou nejmenších čtverců. Mimo toho se testují také kubická řešení - výstupem jsou například meteorologické modely okluzních front, nebo GIS aplikace. Zjednodušeně lze říct, že to souvisí se vzájemnou závislostí/nezávislostí X;Y;Z.


     Osobně si myslím, že by to chtělo extrapolaci, nebo aproximaci rozměrů vzhledem k nějakým základním rozměrům. Myslím si, že je potřeba nikoliv doplňovat uzlové body (neexistující rozměr v prvním sloupci) ale testovat jen reálně exitující rozměry skladových položek. Nejspíš půjde o test na stejnou tloušťku ze které se dají dělat stejné výrobky.
     Jako obecný problém se jedná nejspíš o nalezení nejefektivnější skladby tak aby byl co nejmenší prostřih (vyloučení ano/ne takových případů kdy nelze prostříhnout padacími nůžkami - střih je nutný přímkou naráz jinak by to musel dělat nějaký automat - laser, voda ap.) eliminoval ztráty respektive dokoupení potřebného materiálu.


     Samozřejmě interpolací se dotaneme k síti z nejmenších čtverců x^2(cm, mm) která by měla pokrýt každou položku celočíselně. Problém spočívá spíš v tom jak na různé plochy uspořádat určitý základní rozměr. Výchozím měřítkem je obsah X*Y/x^2 materiálu skladové položky. Z toho lze dovodit kolik základních rozměrů by se mělo do rozměrů skladové položky vejít (v nejlepším případě beze ztráty).
     Na to existují programy v CAD aplikacích, ale musí se vědět jaké. Myslím že to umí aplikace pro klempíře, ale podobný problém řeší kartonážky, šicí dílny a mnoho jiných oborů. Vím že se dají najít nejoptimálnější prostřihy i pro nepravidelné plochy.


     Vzhledem k nejasnému účelu není ani možné dovodit jakou interpolaci má autor na mysli. Je to zaklínadlo s mnoha variantami řešení. Dokonce nemám ani představu jak si s výstupy interpolací autor poradí a co z ních vyčte. Ačkoliv když je vloží do správného grafu může dostat nějakou miniaturu části tvaru který bude reprezentován vyhlazenými křivkami, nebo obdélník který se hodí pro manuální naplánování prostřihu a podobně.


Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#15 4. 5. 2017 13:37:26

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 711

Re: Lineární interlpolace - VYŘEŠENO

To LADER - pěkný, to bych nezvlád, měl bych si tu matematiku trochu oprášit. Třeba to bude brát dcerka ve škole, tak pak se to zas doučím :-) Ale my stavaři si s lineární interpolací bohatě vystačíme :-)


LibreOffice 5.4.

Offline

#16 3. 11. 2021 20:37:21

Trambus
Člen
Registrace: 20. 2. 2013
Příspěvků: 52

Re: Lineární interlpolace - VYŘEŠENO

Vážení, s dovolením bych oživil toto téma, třeba by to někomu dalšímu pomohlo. Já se přiznám, že poslední rady na mne byly asi již moc obecné nebo naopak moc složité, nevím, nejsem takový matematik, za to se prosím omlouvám. Přicházím s konkrétní tabulkou, kterou bych potřeboval upravit. Zde je odkaz: https://ibb.co/TTsDxGk . Tabulku potřebuji "rozvést". Mám tedy zpracovanou tabulku kde jsou řádky od hodnoty 0,005 v kroku 0,001 až do hodnoty 0,5. Sloupce mám od hodnoty 1 až do 500. Dokážu samozřejmě doplnit do tabulky ručně hodnoty, které jsou pro konkrétní hodnoty uvedeny v tabulce, neuvěřitelně pomalým způsobem dokážu doplnit i mezilehlé hodnoty, ale je to pro toto množství nereálná práce. Existuje funkce, kdy zadám začátek řady, data uprostřed řady a konec řady s ohledem na první sloupec? a to samé vlastně i pro sloupce. Přikládám kokrétní tabulku: https://uloz.to/file/pTVWdGFbH5Rb/e-1-o … W5GI9cMQMu Další dotazy jsem snad schopen odpovědět, případně dovysvětlit. Moc děkuju! Pavel.

Offline

#17 5. 11. 2021 13:11:50

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 145

Re: Lineární interlpolace - VYŘEŠENO

Zdravím,
hodnoty uvnitř tabulky lze propojit lomenou přímkou - tomu se říká lineární interpolace. Je to jednoduchý, není to moc hezký, ale účel to splní.
Také je lze propojit zaoblenou křivkou - to se dá s přihlédnutím na vzdálenější body. Pokud použijeme 4 body (po dvou na každé straně), pak se tomu říká kubická interpolace. Kvadratická se nepoužívá, protože je asymetrická a má pouze 3 body (jeden na jedné straně a dva na druhé).

Hodnoty vně tabulky se počítají pomocí extrapolace. Tím se nebudu zabývat, protože je to víceméně hádání. Hodnoty se můžou měnit kamkoliv.

Pokud známe funkci která odpovídá tabulce, lze dopočítat koeficienty a aproximace bude mnohonásobně přesnější.

Soubor ke stažení: Dvourozměrná interpolace


Ubuntu 22.04.4 LTS, LibreOffice Verze: 7.6.6.3, wxMaxima 20.12.1, Maxima 5.47.0 (SBCL)

Offline

#18 18. 11. 2021 17:50:49

Trambus
Člen
Registrace: 20. 2. 2013
Příspěvků: 52

Re: Lineární interlpolace - VYŘEŠENO

Funguje! Naprosto bez problému implementováno do mého tabulkového problému a teď to šlape jako hodinky! Moc děkuji za vyřešení LEADER! Díky.

Offline

Zápatí