/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
polynomisk regression
Fra : Dennis Kristensen


Dato : 26-03-03 16:20

Hej,

Jeg skal lave et polynomium udfra en række punkter, problemet består i at få
polynomiet tvunget igennem et bestemt punkt, (x,y)=(20,0), for den er 0 og
skal altid være 0, men hvordan gør jeg så det?

MVH Dennis



 
 
Jeppe Stig Nielsen (26-03-2003)
Kommentar
Fra : Jeppe Stig Nielsen


Dato : 26-03-03 18:15

Dennis Kristensen wrote:
>
> Hej,
>
> Jeg skal lave et polynomium udfra en række punkter, problemet består i at få
> polynomiet tvunget igennem et bestemt punkt, (x,y)=(20,0), for den er 0 og
> skal altid være 0, men hvordan gør jeg så det?

I stedet for at lede efter generelle polynomier p(x) skal du nok lede
efter polynomier af typen

(x-20)·q(x)

hvor q(x) er et polynomium.

--
Jeppe Stig Nielsen <URL:http://jeppesn.dk/>. «

"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)

Sven Nielsen (26-03-2003)
Kommentar
Fra : Sven Nielsen


Dato : 26-03-03 23:52

In article <3e81c55f$0$213$edfadb0f@dread15.news.tele.dk>,
tolstrup@privat.dk says...

> Jeg skal lave et polynomium udfra en række punkter, problemet består i at få
> polynomiet tvunget igennem et bestemt punkt, (x,y)=(20,0), for den er 0 og
> skal altid være 0, men hvordan gør jeg så det?

Der er to muligheder: Enten er dit polynomium nul-polynomiet P_0(x) = 0
eller også er det et polynomium hvor 20 er en rod. I så fald kan det
polynomium du søger skrives som: P(x) = P'(x) * (x-20).

Hvis du ved hvordan man regner med polynomier (altså polynomiers
multiplikation), burde dette kunne hjælpe dig.

En anden mulighed er, at du vælger en metode til lineær regression (der
er faktisk mange forskellige), hvor du kan vægte de forskellige punkter.
Ved at give (20,0) en passende høj vægt kan du få et polynomium, der
kommer passende "tæt på" dette punkt.

Du kommer desværre ikke med så præcise oplysninger om din opgave, at jeg
kan vejlede dig meget bedre, end jeg nu har gjort. Men du kan jo prøve
at komme med flere oplysninger, hvis du ikke fik hjælp nok.

Med venlig hilsen Sven.

Jeppe Stig Nielsen (27-03-2003)
Kommentar
Fra : Jeppe Stig Nielsen


Dato : 27-03-03 00:03

Sven Nielsen wrote:
>
> Der er to muligheder: Enten er dit polynomium nul-polynomiet P_0(x) = 0
> eller også er det et polynomium hvor 20 er en rod. I så fald kan det
> polynomium du søger skrives som: P(x) = P'(x) * (x-20).

Den første mulighed er jo dog et specialtilfælde af den anden.

--
Jeppe Stig Nielsen <URL:http://jeppesn.dk/>. «

"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)

Sven Nielsen (27-03-2003)
Kommentar
Fra : Sven Nielsen


Dato : 27-03-03 02:01

In article <3E8231A3.2263CBA9@jeppesn.dk>, mail@jeppesn.dk says...
> Sven Nielsen wrote:
> > Der er to muligheder: Enten er dit polynomium nul-polynomiet P_0(x) = 0
> > eller også er det et polynomium hvor 20 er en rod. I så fald kan det
> > polynomium du søger skrives som: P(x) = P'(x) * (x-20).

> Den første mulighed er jo dog et specialtilfælde af den anden.

Det er den jo også. Det var et lille kiks fra min side. Men det kunne
måske være en fordel at chekke det trivielle specialtilfælde først, hvis
man skulle lave en algoritme for løsning af problemet.

Med venlig hilsen Sven.

Dennis Kristensen (27-03-2003)
Kommentar
Fra : Dennis Kristensen


Dato : 27-03-03 09:00


"Sven Nielsen" <sven@SPAMNOTscientist_NOSPAM_.com.SPAMTRAP> wrote in message
news:MPG.18ebf42a1f956840989694@read.news.dk.uu.net...
> In article <3e81c55f$0$213$edfadb0f@dread15.news.tele.dk>,
> tolstrup@privat.dk says...
>
> > Jeg skal lave et polynomium udfra en række punkter, problemet består i
at få
> > polynomiet tvunget igennem et bestemt punkt, (x,y)=(20,0), for den er 0
og
> > skal altid være 0, men hvordan gør jeg så det?
>
> Der er to muligheder: Enten er dit polynomium nul-polynomiet P_0(x) = 0
> eller også er det et polynomium hvor 20 er en rod. I så fald kan det
> polynomium du søger skrives som: P(x) = P'(x) * (x-20).
>
> Hvis du ved hvordan man regner med polynomier (altså polynomiers
> multiplikation), burde dette kunne hjælpe dig.
>
> En anden mulighed er, at du vælger en metode til lineær regression (der
> er faktisk mange forskellige), hvor du kan vægte de forskellige punkter.
> Ved at give (20,0) en passende høj vægt kan du få et polynomium, der
> kommer passende "tæt på" dette punkt.
>
> Du kommer desværre ikke med så præcise oplysninger om din opgave, at jeg
> kan vejlede dig meget bedre, end jeg nu har gjort. Men du kan jo prøve
> at komme med flere oplysninger, hvis du ikke fik hjælp nok.
>
Nej det gik lidt stærkt, undskyld, men jeg har prøvet at, som i siger søge
et polynomium P(x)=P'(x)*(x-20).

Problmet er at jeg har 7 målepunkter som tilnærmelsesvis udgør et
3.gradspoly. og som nævnt krydser det i punktet (20,0), hvorfra det ikke må
forskydes. Hvis jeg søger polynomiet P'(x)*(x-20) kan je få en løsning, hvor
alle de andre nulpunkter bliver forskudt, så meget at det alligevel ikke
kan bruges, håber det hjalp lidt på problemet.

Kunne det hjælpe at gå en grad op i P'(x)???



Kai Birger Nielsen (27-03-2003)
Kommentar
Fra : Kai Birger Nielsen


Dato : 27-03-03 09:44

In <3e82afce$0$248$edfadb0f@dread15.news.tele.dk> "Dennis Kristensen" <tolstrup@privat.dk> writes:


>Problmet er at jeg har 7 målepunkter som tilnærmelsesvis udgør et
>3.gradspoly. og som nævnt krydser det i punktet (20,0), hvorfra det ikke må
>forskydes. Hvis jeg søger polynomiet P'(x)*(x-20) kan je få en løsning, hvor
>alle de andre nulpunkter bliver forskudt, så meget at det alligevel ikke
>kan bruges, håber det hjalp lidt på problemet.

>Kunne det hjælpe at gå en grad op i P'(x)???

Hvis du har syv målepunkter, kan du sagtens være så uheldig at
du skal bruge et syvendegradspolynomie for at ramme dem alle.
Har du nogen grund til at tro at det lige er et tredjegradspolynomie,
der er det bedste at fitte med ? (Generelt tror jeg at du får
en mere ekstrem opførsel af funktionen udenfor målepunkterne, jo
højere grad du bruger, men hvis du kun skal bruge tilnærmelsen
indenfor måleintervallet, kan du formentlig være ligeglad med det.
Men standardrædselsscenariet er fitting af salg af kaburatorsprit
vha et tredjegradspolynomie og baseret på vintersalgstal. Det
fitter salget i sommermånederne ret dårligt

Hvis du bare vil have en pæn kurve, så tror jeg at det er
smartere at dele kurven i småstykker og fitte med en simpel
kurve på en måde så "samlingerne" bliver pæne.

mvh Birger Nielsen (bnielsen@daimi.au.dk)



Dennis Kristensen (27-03-2003)
Kommentar
Fra : Dennis Kristensen


Dato : 27-03-03 13:24


"Kai Birger Nielsen" <bnielsen@daimi.au.dk> wrote in message
news:b5udl7$16cq$1@news.net.uni-c.dk...
> In <3e82afce$0$248$edfadb0f@dread15.news.tele.dk> "Dennis Kristensen"
<tolstrup@privat.dk> writes:
>
>
> Hvis du har syv målepunkter, kan du sagtens være så uheldig at
> du skal bruge et syvendegradspolynomie for at ramme dem alle.
> Har du nogen grund til at tro at det lige er et tredjegradspolynomie,
> der er det bedste at fitte med ?

nu får i lige tallene

x -40 -20 0 20 40 60 80
y 2,22 0,472 -0,134 0 0,632 1,65 2,86

ved at indføre dem i exvel, og tilføre en 'trendline', kan jeg se, at en
3.grads fitting er tilstrækkelig til mig.

> Hvis du bare vil have en pæn kurve, så tror jeg at det er
> smartere at dele kurven i småstykker og fitte med en simpel
> kurve på en måde så "samlingerne" bliver pæne.

Jo tak, jeg ville gerne have en MEGET pæn kurve i området -40 til 80... :)
Men jeg skal bruge et og kun et polynomie der beskriver hele forløbet.


Dennis



Jeppe Stig Nielsen (27-03-2003)
Kommentar
Fra : Jeppe Stig Nielsen


Dato : 27-03-03 13:58

Dennis Kristensen wrote:
>
> nu får i lige tallene
>
> x -40 -20 0 20 40 60 80
> y 2,22 0,472 -0,134 0 0,632 1,65 2,86
>
> ved at indføre dem i exvel, og tilføre en 'trendline', kan jeg se, at en
> 3.grads fitting er tilstrækkelig til mig.

Sådan her:

x -40 -20 0 20 40 60 80
y 2,22 0,472 -0,134 0 0,632 1,65 2,86

y/(x-20) -0,037 -0,01185 0,0067 udef. 0,0316 0,04125 0,04767

Du finder så bedste andengradspolynomium gennem disse seks punkter
(se bort fra den midterste række, y-rækken). Så multiplicerer du det
fundne andengradpolynomium q(x) med (x-20). Så får du dit søgte tredje-
gradspolynomium

p(x) = (x-20)·q(x)

Er det ikke det du vil?

--
Jeppe Stig Nielsen <URL:http://jeppesn.dk/>. «

"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)

Jeppe Stig Nielsen (27-03-2003)
Kommentar
Fra : Jeppe Stig Nielsen


Dato : 27-03-03 14:10

Jeppe Stig Nielsen wrote:
>
> Sådan her:
>
> x -40 -20 0 20 40 60 80
> y 2,22 0,472 -0,134 0 0,632 1,65 2,86
>
> y/(x-20) -0,037 -0,01185 0,0067 udef. 0,0316 0,04125 0,04767
>
> Du finder så bedste andengradspolynomium gennem disse seks punkter
> (se bort fra den midterste række, y-rækken). Så multiplicerer du det
> fundne andengradpolynomium q(x) med (x-20). Så får du dit søgte tredje-
> gradspolynomium
>
> p(x) = (x-20)·q(x)
>
> Er det ikke det du vil?

Nu gjorde jeg det lige på min regnemaskine. Jeg får

p(x) = (x-20)·(-0,0000043550x²+0,00086188x+0,0056949)

--
Jeppe Stig Nielsen <URL:http://jeppesn.dk/>. «

"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)

Dennis Kristensen (27-03-2003)
Kommentar
Fra : Dennis Kristensen


Dato : 27-03-03 14:55

> >
> > Er det ikke det du vil?
>
> Nu gjorde jeg det lige på min regnemaskine. Jeg får
>
> p(x) = (x-20)·(-0,0000043550x²+0,00086188x+0,0056949)
>
Jo lige i øjet, men hvordan har du mon fundet dine koefficienter i
2.gradslign., måske er det i bund og grund fitting jeg generelt gør forkert
:(

Dennis



Kai Birger Nielsen (28-03-2003)
Kommentar
Fra : Kai Birger Nielsen


Dato : 28-03-03 10:37

In <3e82ed87$0$135$edfadb0f@dread15.news.tele.dk> "Dennis Kristensen" <tolstrup@privat.dk> writes:


>"Kai Birger Nielsen" <bnielsen@daimi.au.dk> wrote in message
>news:b5udl7$16cq$1@news.net.uni-c.dk...
>> In <3e82afce$0$248$edfadb0f@dread15.news.tele.dk> "Dennis Kristensen"
><tolstrup@privat.dk> writes:
>>
>>
>> Hvis du har syv målepunkter, kan du sagtens være så uheldig at
>> du skal bruge et syvendegradspolynomie for at ramme dem alle.
>> Har du nogen grund til at tro at det lige er et tredjegradspolynomie,
>> der er det bedste at fitte med ?

Jeg korrigerer lige. Det er nok med et sjettegradspolynomie til
7 punkter.

>nu får i lige tallene

>x -40 -20 0 20 40 60 80
>y 2,22 0,472 -0,134 0 0,632 1,65 2,86

>ved at indføre dem i exvel, og tilføre en 'trendline', kan jeg se, at en
>3.grads fitting er tilstrækkelig til mig.

Ok. For sjov fandt jeg 6. gradspolynomiet til dig:

sub pretty {
my($x) = $_[0];
$x = ($x+40)/20;
my($y) = (
- 0.002275 * $x**6
+ 0.031875 * $x**5
- 0.110875 * $x**4
- 0.529875 * $x**3
+ 7.09715 * $x**2
-22.218000 * $x
+19.980000 )/9.0;
return $y;
}

Det er nemmest at finde hvis de tilhørende x-værdier er 0,1,2,3...
Derfor transformationen x=(x+40)/20. Hvis man godt kan lide
regnearbejde kan man bare sætte det ind for x i formlen og
regne løs. Koefficienterne ser pænere ud hvis man ganger med
9, så det er bare for at slippe for 0.023944444444444444 og
den slags.

>> Hvis du bare vil have en pæn kurve, så tror jeg at det er
>> smartere at dele kurven i småstykker og fitte med en simpel
>> kurve på en måde så "samlingerne" bliver pæne.

>Jo tak, jeg ville gerne have en MEGET pæn kurve i området -40 til 80... :)
>Men jeg skal bruge et og kun et polynomie der beskriver hele
>forløbet.

Ok, ovenstående giver sådan et og den ser ganske rigtigt pæn ud.

mvh Birger Nielsen (bnielsen@daimi.au.dk)




Ole Pagh (28-03-2003)
Kommentar
Fra : Ole Pagh


Dato : 28-03-03 13:25

>
> nu får i lige tallene
>
> x -40 -20 0 20 40 60 80
> y 2,22 0,472 -0,134 0 0,632 1,65 2,86
>
Resultat fra et udemærket 'kurve-fit' program:
------------------------------------------

"CurveExpert 1.3: 5th Degree Polynomial Fit"

"Standard Error:" 0.00598736
"Correlation Coefficient:" 0.999998
Weighting Scheme: Unknown

"nth order Polynomial, y=a+bx+cx^2+dx^3..."
"a:" -0.13104545
"b:" -0.0094217424
"c:" 0.00089023674
"d:" -5.9919508e-006
"e:" 5.2438447e-008
"f:" -3.1510417e-010

"X Data" "Y Data" "Curve fit Data"
-40 2.22 2.2202
-20 0.472 0.470818
0 -0.134 -0.131045
20 0 -0.00393939
40 0.632 0.634955
60 1.65 1.64882
80 2.86 2.8602

---------------------------
mvh Ole




Dennis Kristensen (09-04-2003)
Kommentar
Fra : Dennis Kristensen


Dato : 09-04-03 12:09


"Dennis Kristensen" <tolstrup@privat.dk> wrote in message
news:3e81c55f$0$213$edfadb0f@dread15.news.tele.dk...
> Hej,
>
> Jeg skal lave et polynomium udfra en række punkter, problemet består i at

> polynomiet tvunget igennem et bestemt punkt, (x,y)=(20,0), for den er 0 og
> skal altid være 0, men hvordan gør jeg så det?
>

Hvad nu hvis man vender den og skal skære et punkt (x,y)=(0,1)

Dataerne er nu:
x: -12,323 -8,994 -4,745 0,000 5,312 10,977
17,068
y: 0,9783 0,9953 1,001 1,000 0,9937 0,9838 0,9722

Fra excel med intecept sat til 1 fås:
-2,594E-7*x^4+7,621E-6*x^3-9,052E-5*x^2-1,019E-3*x+1

Men denne ligning kan jeg ikke få.

MVH Dennis



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste