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 23. 06. 2011 20:59 — Editoval The.Brain (23. 06. 2011 23:00)

The.Brain
Zelenáč
Příspěvky: 24
Reputace:   
 

Zjištění funkce při známých vstupních i výstupních hodnotách

Zdravím, uvítal bych pomoc někoho matematicky nadanějšího se zjištěním funkce, kterou "proháníme" tři neznámé. Opravdu jsem se snažil sám, ale jsem jen prostý právník :) Tedy:

Předpokládám relativně jednoduchou funkci (obsahující jen základní operace +, -, ×, ÷), nicméně nevylučuji něco složitějšího. Empiricky dovozuji nějakou odečítanou konstantu, dál už mám jen hrubou představu o významu té které neznámé na výsledek. Neznámé jsou a, b, c; nabývají (prakticky) pouze hodnot 1 až 100 v celých číslech a výsledek x je pravděpodobně zaokrouhlován na celé číslo směrem dolů. No a dál máme k dispozici už jen teoreticky neomezený počet vstupních a výstupních hodnot (v případě potřeby mohu dodat další):

když ... a=1;b=1;c=1, pak ... x=0
když ... a=25; b=25; c=25, pak ... x=4
když ... a=50; b=50; c=50, pak ... x=40
když ... a=100; b=100; c=100, pak ... x=200

když ... a=100; b=1; c=1, pak ... x=0
když ... a=1; b=100; c=1, pak ... x=0
když ... a=1; b=1; c=100, pak ... x=(-36)

když ... a=100; b=100; c=1, pak ... x=2
když ... a=100; b=1; c=100, pak ... x=2
když ... a=1; b=100; c=100, pak ... x=162

když ... a=50; b=100; c=100, pak ... x=180
když ... a=100; b=50; c=100, pak ... x=100
když ... a=100; b=100; c=50, pak ... x=100

Pokud se ze zadání dá nějak dobrat ke vztahu mezi a, b, c, za řešení předem děkuji.

Offline

 

#2 23. 06. 2011 22:04

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 920
Reputace:   63 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

Toto se počítá pomocí metody nejmenších čtverců.
Pro velké množství údajů bývá jediné možné řešení počítač.
Výborný je například program wxMaxima, který má i poměrně dobrou nápovědu s příklady.
Čím větší množství dat tím přesnější výsledek.


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

#3 23. 06. 2011 22:06

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

Jak vypadají hodnoty x pro
a=1,b=1 a c=0,1,2,3,4,5,10,20,30,100?
c=1,b=1 a a=0,1,2,3,4,5,10,20,30,100?
a=1,c=1 a b=0,1,2,3,4,5,10,20,30,100?

A totéž pro případy, kdy místo 1 použijeme 100 a 50?
Díky


"Máte úhel beta." "No to nemám."

Offline

 

#4 23. 06. 2011 22:08

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ mák:
Tak se ale hádám dá vyjádřit funkce, jejíž předpis je znám. Pokud nevím, jaký je její funkční předpis, pak asi metodu nejmenších čtverců nemohu aplikovat... Nebo ano?


"Máte úhel beta." "No to nemám."

Offline

 

#5 23. 06. 2011 22:26

mák
Místo: Vesmír, Galaxie MD
Příspěvky: 920
Reputace:   63 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

http://forum.matweb.cz/upload3/img/2011-06/60326_test.png
Jasně že se nedá, pátý sloupec je vypočítaný (pomocí metody nejmenších čtverců) a měl by být shodný se čtvrtým.

Rovnici jsem zadal obecnou:
$w=H+x\,y\,z\,G+y\,z\,F+x\,z\,E+x\,y\,D+z\,C+y\,B+x\,A$
přičemž [x,y,z] jsou zadané proměnné (první 3 sloupečky) a [w] je skutečný výsledek (čtvrtý sloupeček).

Samozřejmě pokud je známá skutečná funkce pak výsledek je mnohem přesnější...


LibreOffice Verze: 25.8.4.2, Maxima 5.49.0 (SBCL)

Offline

 

#6 23. 06. 2011 22:27

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

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ The.Brain: a co ta funkce vyjadřuje?

Offline

 

#7 23. 06. 2011 23:00 — Editoval The.Brain (23. 06. 2011 23:14)

The.Brain
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ check_drummer:
Hodnoty 0 žádná ze vstupních hodnot (a, b, c) prakticky nenabývá, proto není možné uvést výsledek. Ostatní uvádím níže:

Pro ... a=1,b=1 a c=1,2,3,4,5,10,20,30,100
x=0,0,0,0,0,(-2),(-6),(-10),(-36)

Pro ... c=1,b=1 a a=1,2,3,4,5,10,20,30,100
x=0 (pro všechny hodnoty a)

Pro ... a=1,c=1 a b=1,2,3,4,5,10,20,30,100
x=0 (pro všechny hodnoty b)


A ještě oprava původního příspěvku u následujících hodnot:

když ... a=100; b=100; c=1, pak ... x=2
když ... a=100; b=1; c=100, pak ... x=2
když ... a=1; b=100; c=100, pak ... x=162

↑ Stýv:
Vyjadřuje vliv tří proměnných na výslednou hodnotu. Nejsem si jist, co víc k tomu dodat, je to uměle vytvořená funkce nevyjadřující nic reálného.

Offline

 

#8 24. 06. 2011 16:16

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ mák:
Ale o to dle mého právě jde - najít tento tvar funkce... Např. sin(x) také můžeš aproximovat polynomem, ale nevím, zda je to to, co je požadováno.


"Máte úhel beta." "No to nemám."

Offline

 

#9 24. 06. 2011 16:17

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ The.Brain:
Takže jaké je motivace vzniku této funkce - je to čistě kvíz pro matematiky, zda přijdeme na její tvar? :-)


"Máte úhel beta." "No to nemám."

Offline

 

#10 24. 06. 2011 16:26

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ The.Brain:
Můžeš prosím vypsat hodnoty x pro a=1, b=1 a všechny hodnoty c? (od 1 do 100)
Totéž pro všechny hodnoty a,b,c, které se rovnají (a=b=c) a totéž pro a=100, b=100 a všechny hodnoty c?
Díky.


"Máte úhel beta." "No to nemám."

Offline

 

#11 25. 06. 2011 16:07

The.Brain
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ check_drummer:
Motivace vzniku funkce je vytvoření umělého "fungujícího" systému, kde tři vstupní parametry ovlivňují výstupní hodnotu a tvůrce pravděpodobně vůbec nepředpokládal, že někdo bude hledat její tvar :) Motivace přijít na její tvar je pak a) odhalení, jak tvůrce funkce uvažoval při jejím sestrojování a b) aplikace této funkce v databázi n-kombinací vstupních parametrů. Takže kvíz to určitě není :)

↑ check_drummer:
Můžu, ale vzhledem k počtu požadovaných hodnot pro mě ztrácí znalost fuknce efektivitu, jelikož si můžu rovnou vygenerovat všechny zkoumané kombinace vstupních parametrů. Upřímně, při vznesení dotazu jsem čekal, že na to někdo koukne a vysype z rukávu buď postup řešení takových úloh nebo rovnou podobu funkce. Docela mě překvapila náročnost takové úlohy.

Offline

 

#12 25. 06. 2011 16:16 — Editoval Pavel Brožek (25. 06. 2011 16:20)

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ The.Brain:

A kde ty funkční hodnoty bereš? Je to někde dostupné na internetu? Nebo to máš jako program na PC? Nebo někomu zatelefonuješ, řekneš mu a, b a c a on ti vrátí x? :-)

Ta funkce může být velmi složitá. Pokud tam můžeš zadávat pouze celá čísla, tak např. může pracovat s počtem dělitelů čísel, počtem prvočísel menších než dané číslo, ciferným součtem, …

Myslím, že by opravdu pomohlo, kdybychom věděli, za jakým účelem tu funkci někdo vytvořil.

Offline

 

#13 25. 06. 2011 16:36 — Editoval The.Brain (25. 06. 2011 16:39)

The.Brain
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ Pavel Brožek:
Jak už jsem psal, ta funkce s pravděpodobností hraničící s jistotou nijak složitá nebude a jediný "zádrhel" bude zaokrouhlování na celá čísla. Výsledky si vygeneruju programem na PC, ano.

Myslím, že vám to opravdu nepomůže - je to vliv "Dexterity", "Wisdom" a "Medical" na efektivní schopnost léčit vyjádřenou obnovenými body zdraví v jedné stařičké PC hře :) Takže účel, za jakým to někdo vytvořil, byl myslím v konečném důsledku zisk :D

Offline

 

#14 25. 06. 2011 16:38 — Editoval Pavel Brožek (25. 06. 2011 16:40)

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

Mohl bys prosím vygenerovat výsledky pro data:

Code:

1    1    1
1    1    50
1    1    100
1    50    1
1    50    50
1    50    100
1    100    1
1    100    50
1    100    100
50    1    1
50    1    50
50    1    100
50    50    1
50    50    50
50    50    100
50    100    1
50    100    50
50    100    100
100    1    1
100    1    50
100    1    100
100    50    1
100    50    50
100    50    100
100    100    1
100    100    50
100    100    100

Vím, že něco už máš, tak ty zbylé.

Offline

 

#15 25. 06. 2011 16:51 — Editoval The.Brain (25. 06. 2011 16:58)

The.Brain
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ Pavel Brožek:
    1        1        1    =       0
    1        1      50    =    -18
    1        1    100    =     -36
    1      50        1    =       0
    1      50      50    =      30
    1      50    100    =      62
    1    100        1    =       0
    1    100      50    =      80
    1    100    100    =    162
  50        1        1    =       0
  50        1      50    =      -8
  50        1    100    =     -18
  50      50        1    =       0
  50      50      50    =      40
  50      50    100    =      80
  50    100        1    =       0
  50    100      50    =      90
  50    100    100    =    180
100        1        1    =       0
100        1      50    =       0
100        1    100    =       2
100      50        1    =       0
100      50      50    =      50
100      50    100    =    100
100    100        1    =       2
100    100      50    =    100
100    100    100    =    200

Offline

 

#16 25. 06. 2011 17:29 — Editoval Pavel Brožek (25. 06. 2011 17:30)

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

Kdybys neměl co dělat, tak by asi ještě hodily hodnoty v bodech

Code:

1    1    25
1    1    75
1    25    1
1    25    25
1    25    50
1    25    75
1    25    100
1    50    25
1    50    75
1    75    1
1    75    25
1    75    50
1    75    75
1    75    100
1    100    25
1    100    75
25    1    1
25    1    25
25    1    50
25    1    75
25    1    100
25    25    1
25    25    25
25    25    50
25    25    75
25    25    100
25    50    1
25    50    25
25    50    50
25    50    75
25    50    100
25    75    1
25    75    25
25    75    50
25    75    75
25    75    100
25    100    1
25    100    25
25    100    50
25    100    75
25    100    100
50    1    25
50    1    75
50    25    1
50    25    25
50    25    50
50    25    75
50    25    100
50    50    25
50    50    75
50    75    1
50    75    25
50    75    50
50    75    75
50    75    100
50    100    25
50    100    75
75    1    1
75    1    25
75    1    50
75    1    75
75    1    100
75    25    1
75    25    25
75    25    50
75    25    75
75    25    100
75    50    1
75    50    25
75    50    50
75    50    75
75    50    100
75    75    1
75    75    25
75    75    50
75    75    75
75    75    100
75    100    1
75    100    25
75    100    50
75    100    75
75    100    100
100    1    25
100    1    75
100    25    1
100    25    25
100    25    50
100    25    75
100    25    100
100    50    25
100    50    75
100    75    1
100    75    25
100    75    50
100    75    75
100    75    100
100    100    25
100    100    75

:-)

Zatím jsem ale nepřišel na to, jaká to je funkce.

Offline

 

#17 25. 06. 2011 17:56

check_drummer
Příspěvky: 5511
Reputace:   106 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ The.Brain:

Tak tedy zredukuji počet hodnot a prosím o vygenerování x pro:

a,b,c:

1,1,1
1,1,2
1,1,3
1,1,4
1,1,5
1,1,6
1,1,7
1,1,8
1,1,9
1,1,10
1,1,20
1,1,30
1,1,40
1,1,50
1,1,60
1,1,70
1,1,80
1,1,90
1,1,100

50,50,1
50,50,2
50,50,3
50,50,4
50,50,5
50,50,6
50,50,7
50,50,8
50,50,9
50,50,10
50,50,20
50,50,30
50,50,40
50,50,50
50,50,60
50,50,70
50,50,80
50,50,90
50,50,100

100,100,1
100,100,2
100,100,3
100,100,4
100,100,5
100,100,6
100,100,7
100,100,8
100,100,9
100,100,10
100,100,20
100,100,30
100,100,40
100,100,50
100,100,60
100,100,70
100,100,80
100,100,90
100,100,100

Díky.


"Máte úhel beta." "No to nemám."

Offline

 

#18 25. 06. 2011 18:17 — Editoval Pavel Brožek (25. 06. 2011 18:18)

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

Toto se velmi blíží uvedeným hodnotám:

$\frac{1}{1000}\cdot c\cdot(4a+20b-386)$

Offline

 

#19 26. 06. 2011 00:13 — Editoval The.Brain (26. 06. 2011 00:33)

The.Brain
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zjištění funkce při známých vstupních i výstupních hodnotách

↑ Pavel Brožek:
Podařilo se mně vygenerovat i údaje pro a=0 a b=0 (při c=0 logická podmínka vůbec nedovolí pokračovat ve výpočtu). Zejména vzhledem k výsledkům:

0     100     100     ...     160
0     0     100     ...     -40

... a současně vzhledem k předpokládané jednoduchosti jsem upravil 386 na 400 a zkrátil na následující tvar:

$\frac{c\cdot(0,2a+b-20)}{50}$

Odchylky tam ale zůstávají bohužel stále. Zkusím se ještě podívat, v čem by mohl být zádrhel.

Každopádně díky, potřeboval jsem hlavně nahodit tu základní podobu vzorce (tj. kde se nachází která proměnná v relativně jednoduchém vzorci).

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson