» »

Nelinearna regresija

Nelinearna regresija

STASI ::

Kot že naslov pove. Zanima me nelinearna regresija. Imam podatke in iz njih moram dobiti kvadratno enačbo ali kako drugo enačbo. Kako do tega pridem peš brez uporabe EXCEL-a. Moram poznati teorijo, da vem kaj dela.
"WAR IS PEACE, FREEDOM IS SLAVERY, IGNORANCE IS STRENGTH"

abcčdefghijklmnoprsštuvzž
  • spremenilo: STASI ()

Thomas ::

Zato uporabiš Critticall.

Napišeš kodo takole:

if (x==x0) {y=y0;}
if (x==x1) {y=y1;}
...
...


Čez dovolj dolgo časa ti bo dal najenostavnejšo v C jeziku izrazljivo formulo.

Lahko pa stvari še nekoliko zakompliciraš.
Man muss immer generalisieren - Carl Jacobi

A. Smith ::

"Be professional, be polite,
but have a plan to kill everyone you meet".
- General James Mattis

A. Smith ::

Interpolation solves the following problem: given the value of some unknown function at a number of points, what value does that function have at some other point between the given points? A very simple method is to use linear interpolation, which assumes that the unknown function is linear between every pair of successive points. This can be generalized to polynomial interpolation, which is sometimes more accurate but suffers from Runge's phenomenon. Other interpolation methods use localized functions like splines or wavelets.
"Be professional, be polite,
but have a plan to kill everyone you meet".
- General James Mattis

Jean-Paul ::

Mislim (glede na povedano), da v tvojem primeru ne gre za nelinearno regresijo, temveč kar lepo za linearno regresijo. Tu je postopek optimizacije enostaven: minimizirati želiš vsoto kvadratov razlik med napovedano (teoretično) vrednostjo in izmerjeno vrednostjo, kar prevedeš na reševanje sistema linearnih enačb.

LP

kitzbrado ::

En hiter test je vsekakor narisati neznano funkcijo na log oziroma log log skali in gledati naklon. Če dobiš nekaj linearnega, potem je tvoja funkcija y = exp(n*x) (torej ln(y) = n*x) oziroma y = x^n (torej ln(y) = n*ln(x)), kjer je n naklon premice v log oziroma log log skali. S tem testom pokriješ najbolj osnovne funkcije, teorija je pa enostavna.

EDIT: Thomasova rešitev se mi zdi tudi zelo zanimiva, samo si moram enkrat vzeti čas in se malo seznaniti s Criticallom.

Zgodovina sprememb…

STASI ::

Moja željena funkcija izgleda podobno funkciji na grafu:
"WAR IS PEACE, FREEDOM IS SLAVERY, IGNORANCE IS STRENGTH"

abcčdefghijklmnoprsštuvzž

Zgodovina sprememb…

  • zavarovalo slike: STASI ()

kitzbrado ::

In kako zgledata funkcija na obeh log skalah?

Kaj natančno te sploh zanima? Imaš eksperimentalno dobljene podatke in te zanima teorija v ozadju in želiš torej dejansko funkcijo, ki opisuje fiziko v ozadju? V tem primeru je tvoj najboljši adut prav risanje grafov, kot sem ti omenil jaz. Če pa tvojo neznano funkcijo potrebuješ samo za generiranje vrednosti za opis neke druge spremenljivke, potem ti pa predlagam polinomsko interpolacijo, s katero na danem intervalu ne boš vleiko zgrešil (sploh na taki funkciji).

Na prvi pogled je pa funkcija na tvoji sliki sestavljena iz dveh zlepljenih eksponentnih funkcij, na sredini je pa nekaj linearnega. Tista na levi se verjetno zapiše kot y = A1*(1-Exp(-k1*x)), na sredini imaš y = k2*(x-x2) + n, na desni pa neko naraščajočo eksponentno funkcijo y = A3*Exp(k3*(x-x3)) . Vse tri sešteješ in pofitaš parametre.

EDIT: Mogoče jih sešteješ, mogoče pa zlepiš. Samo po moje jih lahko kar sešteješ. Probaj obe varianti.

Zgodovina sprememb…

STASI ::

Bom uporabil polinomsko interpolacijo. IMO to iščem.
"WAR IS PEACE, FREEDOM IS SLAVERY, IGNORANCE IS STRENGTH"

abcčdefghijklmnoprsštuvzž

kitzbrado ::

Kakor hočeš. Malo sem se poigral v Mathematici in v 2 minutah uspel sproducirati naslednjo funkcijo:

f[x_] := 10*(1 - Exp[-x/100]) + 0.02*x + 10*Exp[(x - 900)/80]



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Matematično vprašanje (strani: 1 2 )

Oddelek: Šola
6110521 (8587) joze67
»

Maxima (matematični program)

Oddelek: Pomoč in nasveti
61161 (939) 2x'=2
»

Program mathematica, vprašanja!

Oddelek: Programska oprema
81425 (950) Vitamin-B
»

E (matematična konstanta) (strani: 1 2 3 4 )

Oddelek: Šola
15315783 (10247) Jst
»

Reševanje enačb

Oddelek: Programiranje
231414 (1127) StratOS

Več podobnih tem