0 Daumen
8,3k Aufrufe

Hallo Community!

Wie der Titel verrät bin ich auf der suche nach einer Logarithmus Funktion anhand mehreren Punkten.

Für ein Projekt soll ich einen Preiskalkulator, welcher zukünftig auf einem Onlineshop eingesetzt werden soll, entwickeln.

Nun zur genauen Aufgabenstellung:

Auf diesem Onlineshop sollten Tischplatten nach maß Konfigurierbar sein (Länge und Breite). Die Problem ist, dass ich eine Preisliste bekommen habe, an die ich mich "grob" halten soll (muss nicht zu 100% der Genau Preis sein und darf Kommastellen haben).

Dies sind die Werte:

140 cm 80 cm 4 cm 475€
150 cm 80 cm 4 cm 510€
160 cm 90 cm 4 cm 615€
190 cm 100 cm 4 cm 710€
200 cm
100 cm 4 cm 720€
210 cm 100 cm 4 cm 750€
220 cm 100 cm 4 cm 780€
230 cm 110 cm 4 cm 820€


Die 4 cm wäre die Höhe der Tische (brauchen wir hier aber nicht weil ich nur nach der Fläche gehe).
______________________________________________________________________________________________

Als ersters wollte ich es mir einfach machen und schauen, ob ich mit einer linearen Funktion auf die Preise komme.

Für meinen x Wert verwende ich die Fläche der Tischplatten (cm^2). Logischerweise sollte der y Wert den Preis ergeben. 

f(x) = m*x + n              A (11200 / 475)            B (25300 / 820)

Dies wäre schon fast zu einfach gewesen. Leider komme ich nicht an die Zwischenpreise heran.

______________________________________________________________________________________________

Das einzige was ich mir noch vorstellen könnte ist eine Logarithmusfunktion.

Bevor ich aber wild herumrechne wollte ich mir mal eure Meinungen anhören... Ob dies überhaupt möglich ist mit den oben genannten Werten eine brauchbare Funktion zu definieren.

Wie der genaue Ansatz einer solchen Aufgabe aussieht und und und ...

Freue mich schon aufs dazulernen und :)!


Avatar von

Wenn du dir mal die Mühe machst das Ganze grafisch darzustellen, dann merkt man das sich die Tischplatten von 140 bis 160 anders im Preis verhalten als die von 190 bis 230. Evtl wäre es sinnvoll also für die kleinen Tische eine andere Funktion zu nehmen als für die großen.

Generell richten sich aber Preiskalkulationen nicht an Flächen sondern an den Einkaufspreisen und an den Gemeinkosten und Gewinnaufschlägen.

Das Problem ist, dass die Preise "nach Gefühl" gewählt worden sind".

Einkaufspreis ist immer derselbe (Platten werden zugeschnitten).
Gewinnaufschläge sind in den Preisen enthalten.

Generell hat sich leider niemand mühe gemacht diese anständig zu kalkulieren bzw. zu dokumentieren und ich steh jetzt da und soll einen Kalkulator für einen Onlineshop entwickeln.

Am Liebsten wäre mir wenn die "Preissteigerung" wie eine Logarithmusfunktion verläuft. Die sich an die vorgegebnen Preise annähert. 0-40€ + - wäre kein Problem.

Bild Mathematik

nach etwas längerer Zeit darf ich euch nun ein Feedback geben. Die hier gezeigten Formeln verwenden wir nun im Livesystem. Die Preise weichen maximal um € 40 ab und damit können wir echt super leben. Also erst mal klasse Arbeit an alle Genies!

Die Kurve haben wir aufgrund eines Minimal-, eines Maximalwertes und anhand Anhaltspunkten berechnet. Logischerweise lässt sich diese Formel auch nur bis 230 x 110 verwenden. Danach beginnt die Formel schon bald zu fallen.

Jetzt hatten wir die Idee das ganze bis 5 Meter zu machen. Eine Vorgabe habe ich wieder bekommen. Zählen tun nur die BK Preise.

Meine Frage ist wie ich die Formel von vorhin berechnen kann. Wie erhalte ich die neuen Werte für die Formel. Wie berechne ich das? Gibt es da ein Programm oder eine Excel-Tabelle was mir da hilft? Die alte Formel bleibt unangetastet.

Bild Mathematik

Soll eine Ausgleichsfunktion für alle BK-Werte der gelben Tabelle
erstellt werden ?
Mit welcher Formel wird derzeit gearbeitet ?

Die gesuchte Funktion ist eine Gerade

Länge in cm
Preis ( Länge ) = 3.24375 * Länge + 68.925

oder

Fläche in cm^2
Preis ( Fläche ) = 0.02703 * Fläche + 68.925

3 Antworten

+1 Daumen
 
Beste Antwort

Hi,
wenn Du eine logarithmische Ausgleichskurve durch Deine Daten legen möchtest, macht man den Ansatz
$$ f(x;a,b) = a \cdot \ln(x) + b  $$ Für diese Funktion wird nach der Methode der kleinsten Quadrate die Parameter \( a \) und \( b \) bestimmt. Ich erhalte \( a = 420.737 \) und \( b = -3436.870 \).
Damit sieht die Kurve so aus

Bild Mathematik


Und die Abweichungen betragen
-10.941
-4.969
23.322
1.689
-9.892
-0.42
10.007
-8.796

D.h. man hat eine maximale Abweichung von ca. \( 23 € \)

Avatar von 39 k

Hi, ich habe das auch nochmal mit dem Ansatz

$$  a \cdot \ln(x+c) + b $$ durchgerechnet. Hier kommt man auf die Werte \( a = 249.501 \), \( b = -1640.325 \) und \( c = -6383.194 \) und maximalen Abweichungen von

-0.412
-3.748
12.485
-5.661
-14.692
-2.373
11.116
3.286

also besser als in meinem ersten Post. Hier ist die maximale Abweichung ca \( 15 € \)

Danke an alle für eure Ansätze! Damit kann ich bestimmt arbeiten und eine Lösung für mein E-Commerce Problem finden :) !!!

Noch mal großes Lob an euch !

0 Daumen
tischplatten.xlsx (13 kb)

Das ist ein Interpolationsproblem.

Da gibt es viele Methoden.

Du kannst ja zu jeder gegebenen Fläche mal den

Preis in ein Koordinatensystem eintragen und du sagst ja

schon: linear ist es nicht. Vielleicht macht stückweise linear

einen Sinn, je zwei Punkte durch eine Strecke verbinden.

( s. beiliegende Excel-Tabelle).

Oder sowas wie Lagrange oder Bezier - Interpolation.

Avatar von 289 k 🚀
0 Daumen

Ich probiere derzeit das Plotten aus.

-56,95 * x^2 + 456,06 * x + 35,62

~plot~ -56,95 * x^2 + 456,06 * x + 35,62 ; { 1,12 | 475 } ; { 1,4 | 510 } ; { 1,44 | 615 } ; { 1,9 | 710 } ;{2 | 720 } ;{2.1 |750 } ;{2.2 | 780 } ;{2.53|820 } ; [[ 1  | 2,6 |  400 | 850 ]] ~plot~

Avatar von 123 k 🚀

Wie man sieht läßt sich keine Funktion durch alle Punkte legen.

Am einfachsten wäre eine Ausgleichsgerade oder eine Ausgleichsfunktion
2.Grades

Die Punkte 2 und 3 sind dann allerdings etwas weit entfernt von der Ausgleichs-
funktion.

Ich frage mich allerdings ob dies schlimm ist. Sind alle Maße frei wählbar und
werden alle Flächen in etwa gleich nachgefragt gleicht sich alles wieder aus.

Die Funktion kann ich gern bestimmen.

Die Punkte sind jetzt keine Werte die erfüllt werden müssen. Sie sind nur ein Richtwert. Sie sollten halt nicht 100 Euro abweichen.

Folgende Funktion würde meiner Ansicht nach am meisten Sinn ergeben. Leider fehlt mir noch der Ansatz um die Aufgabenstellung zu bewältigen :(

Bild Mathematik

EDIT: Du Funktion müsste nicht zwangsläufig von 0 Anfangen, denn die Tische sind nur

von der Länge 140 - 230  und Breite 80 - 120 wählbar.

Da hast du schon einmal eine schöne Ausgleichsfunktion
durch die Werte gelegt.

Bei dieser handelt es sich um eine Logarithmusfunktion oder?

f(x)=log(x)

Ich hätte dazu 2 Punkte verwendet um diese zu bestimmen?

Wenn ich jetzt wüsste wie der Funktionstyp aussieht, könnte ich die Werte einsetzen und die Funktion bestimmen oder?

Mit Logarithmusfunktionen arbeite ich fast nie. Wenn dann wäre wohl
eine vollständige Funktion angesagt

f ( x ) = a * log ( x + b ) + c

Ich würde, dies ist bestimmt einfacher zu rechnen, eine Funktion
2.Grades nehmen

f ( x ) = a * x^2 + b *x + c

und 3 Stützwerte verwenden.

Ich habe einmal 3 Stützwerte ermittelt

f ( 1.12 ) = 475
f ( 2 ) = 720
f ( 2.53 ) = 825

Die Webseite

http://www.arndt-bruenner.de/mathe/scripts/steckbrief.htm

ermöglicht dir eine Funktion 2.Grades damit berechnen zu lassen.
Du kopierst die obigen 3 Zeilen in das dort vorhandene Eingabefeld

Die Funktion 2.Grades lautet

f ( x ) = -56,95 * x^2 + 456,06 * x + 35,62

Ich habe die Funktion in meine 1.Antwort einmal eingezeichnet.

Danke an alle für eure Ansätze! Damit kann ich bestimmt arbeiten und eine Lösung für mein E-Commerce Problem finden :) !!!

Noch mal großes Lob an euch !

ich glaube hier mit Stützwerten zu arbeiten ist der falsche Ansatz. Meiner Meinung nach ist das definitiv ein Ausgleichsproblem. Bei Deiner Methode bekommt man eine Standardabweichung von \( 7.972 \) heraus, bei der logarithmischen Ausgleichskurve eine Standarabweichung von \( 3.937 \). D.h. die logaritmische Ausgleichskurve ist deutlich besser als das Polynom zeiten Grades mit festen Stützstellen.

@ullim
ich kann auch eine Ausgleichsfunktion 2.Grades berechnen.
Da ich kein Mathe-Programm dafür habe habe ich
" nach Ansicht " die 3 Stützwerte genommen.
Für den Zweck könnte es reichen.

@landomat
Gern geschehen.

(* Scherzmodus an *)
Mein Tip : nimm anstelle
f ( x ) = -56,95 * x2 + 456,06 * x + 35,62
die Formel
f ( x ) = -56,95 * x2 + 456,06 * x + 36,62
Dann verdienst du an jeder Platte 1 € mehr.
(* Scherzmodus aus *)


ich habe das gemacht, aber das Ausgleichspolynom 2-ter Ordnung ist immer noch deutlich schlechter als die Logarithmus Funktion. Einmal hat man eine Standardabweichung von 5.149 und beim Logarithmus eine von 3.937.

Wenn die Werte Meßwerte in einem Laborversuch wären wo es auf Genauigkeit
ankommt dann würde ich mich zunächst fragen ob der 2. oder 3. Wert
überhaupt stimmt.

Stimmen die beiden Werte würde ich keine Ausgleichsfunktion durchlegen
da ich beiden Werten damit nicht gerecht werde, sondern mich nach dem
theoretischen Hintergrund für die beiden Werte fragen.

Da dies aber festgelegte Werte ( pi mal Daumen ) sind, deren Zustandekommen
wir eh nicht kennen, können wirs gut sein lassen.

Dein zweiter Messwert P(1,4|510) ist falsch berechnet, richtig ist P(1,2|510). Damit
muss man sich über Ausreisser keine Gedanken mehr machen.

Außerdem ist die Ausgleichsrechnung ja gerade dafür da, solche Unregelmäßigkeiten auszubügeln. Bei einer Quadratischen Lösung aber irgendwelche Punkte raus zu picken, von denen man meint die könnten passen und dann dadurch eine deterministische Funktion legen, halte ich für nicht zielführend.

Wenn ich nochmals zu den "festgelegten" Werten einen kommentar liefern darf.

Diese sind nicht mal "pi mal Daumen". Da hat man sich gedacht: "Ohhh, der Preis sieht aber optisch schön aus"!

Und dann wird die Webentwicklungsabteilung damit beauftrag sich was einfallen zu lassen um die "schönen Preise" in einen Kalkulator zu verwandeln, welcher die "schönen Preise" noch beinhaltet.

Dazu möchte ich nochmal für alle Antworten DANKE SAGEN. Ihr habt mir meinen Tag gerettet :)

vielen Dank für den Fehlerhinweis.
Der zweite Punkt ist ( 1.2 | 510 )

ich schlage daher als Funktion vor
f ( x ) = -107 * x2 + 635 * x -102
Dies ist die blaue Kurve. x = m^2

Die rote Kurve ist die Funktion von ullim
f ( x ) = 249.5 * ln ( x *10000- 6383.2 ) - 1640.3
x in cm^2 einsetzen.

~plot~ {1,2|510};{1,44|615};{1,9|710};{2|720};{2,1|750};{2,2|780};{2,53|820}2|475};{ 1.12 |475 }; -107 * x2 + 635 * x -102 ;  249.5 * ln ( x *10000- 6383.2 ) - 1640.3 ; [[ 1  | 2,6 |  400 | 850 ]] ~plot~

@ullim
Ich habe einmal vor Jahrzehnten den Beruf eines Physiklaboranten gelernt.
Damals gab es noch keine elektronischen Rechner wie heutzutage.
Durch eine Werteschar wurde nach Augenschein eine Ausgleichsfunktion
eingezeichnet. ( Horizontal über das Blatt schauen und dann einzeichnen.
Dies ist mit Worten jetzt etwas schwer beschreibbar ).

Da du ja ein entsprechendes Matheprogramm zur Verfügung hast kannst
du eine ja einmal eine Ausgleichsfunktion 2.Grades durch die Werte
berechnen und einen genauen Vergleich der gefundenen Funktion 2.Grades /
ln-Funktion anstellen.
Manuell ist mir der Arbeitsaufwand zu hoch.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community