0 Daumen
1k Aufrufe

Hallo,

ich brauch Hilfe bei einer Aufgabe zu dem Programm Maxima, folgende Aufgabe ist gestellt:

1. Aufgabe Datenbeschreibung (8 Punkte) Ziel dieser Aufgabe ist es, die Kennwerte von Daten mit Hilfe von Maxima zu bestimmen und zu visualisieren. Die Daten werden mit Hilfe einer Liste in Maxima modelliert.

Erstellen Sie eine Blockformel stat, die als Eingabe eine Liste der reellen Zahlen \( L \) annimmt. Die Ausgabe muss folgende Ergebnisse enthalten:
1. Median \( (\mathbf{1 P}) \);
2. Empirisches Mittel \( (\mathbf{1 P}) \);
3. Empirische Varianz \( (\mathbf{2 P}) \);
4. Stabdiagram \( (\mathbf{2 P}) \) und Boxplot \( (\mathbf{2 P}) \) für gegebenen Daten.

So soll das Ergebnis aussehen: Bildschirmfoto 2021-08-30 um 12.57.00.png

Text erkannt:

Beispiel der Eingabe und Ausgabe:

Kann mir jemand helfen und sagen wie ich diese Blockformel stat verwende? Auch im Internet habe ich nichts zu dieser Blockformel gefunden.. Ich bin leider komplett überfordert mit diesem Programm

Avatar von

1 Antwort

0 Daumen

Grundsätzlich

blob.png

Grafik und Ausgestaltung ist klar?

oder siehe

http://riotorto.users.sourceforge.net/

Avatar von 21 k

danke für die schnelle Antwort,

von der Form her kann ich nachvollziehen wie man einen Blockbefehl schreibt, aber was sind die Befehle in Maxima für die empirische Varianz und ein Stabdiagramm? Also bisher habe ich herausgefunden:

Median: median(Liste)

empirisches Mittel: mean(Liste)

empirische Varianz: ?

Stabdiagram: ?

Boxplot: Boxplot(Liste)

Zu den Auswertungen. am besten nimmst Du die Musterlösung und gleichst das mit den maxima funktionen ab. ich denke var ist die Varianz.

Stabdiagram

blob.png

Schon mal F1 ausprobiert:

Function: barsplot (data1, data2, …, option_1, option_2, …)
Function: barsplot_description (…)
Plots bars diagrams for discrete statistical variables, both for one or multiple samples.

data can be a list of outcomes representing one sample, or a matrix of m rows and n columns, representing n samples of size m each.
Available options are:

Mit gnuplot hab schon lange nix mehr gemacht - mein letztes projekt war eine Bib zur analytischen Geometrie ~2009?

Ich würde es jetzt folgendes Maßen eingegeben:

stat(list):=block(Median:median(list),Mittel:mean(list),Varianz:var(list),Stabdiagramm:wxbarsplot(list),Boxplot:boxplot(list),[Median,Mittel,Varianz,Stabdiagramm,Boxplot])

kann man das so machen? oder fehlt da irgendwas?

Sieht gut aus. Etwas aufhübschen?

ich würde dann beide plots einbetten und mit print kannst Du besser hübschen:

stat(list):=block(
  Median:median(list),
  Mittel:mean(list),
  Varianz:var(list),
  Stabdiagramm:wxbarsplot(list),
  Boxplot:wxboxplot(list),
  print(Median,Mittel,Varianz),
  Stabdiagramm,
  Boxplot
 
);

oder mit Reihenfolge eingehalten

stat(list):=block(
  Median:median(list),
  Mittel:mean(list),
  Varianz:var(list),
  print(Median,Mittel,Varianz),
  wxbarsplot(list),
  wxboxplot(list)
 
);

sieht super so aus, Dankeschön !!

Vielleicht können Sie mir auch noch bei der 2. Aufgabe helfen einen Ansatz zu finden?

2. Aufgabe Lineare Regression

Ziel dieser Aufgabe ist es, eine Lineare Regression in Maxima durchzuführen. Es werden dabei zwei Variablen betrachtet: Regressor \( X \) und abhängige Variable \( Y \). Die Werte für \( X \) und \( Y \) werden in Form von zwei gleichlangen Listen in Maxima angegeben.

Erstellen Sie eine Blockformel regression, die folgendes tut:
1. Als Eingabe erwartet sie zwei listen von reellen Zahlen \( X \) und \( Y \) der gleichen Länge;
2. Die Blockformel überprüft, ob die Eingabe sinnvoll ist: wenn die Listen \( X \) und \( Y \) nicht gleichlang sind, wird die Fehleranzeige ausgegeben \( (\mathbf{2 P}) \).
3. Die Blockformel bestimmt die Regressionsgerade und gibt deren Gleichung aus \( (\mathbf{3 P}) \);
4. Anschließend wird die Gerade und die Beobachtungen \( (X, Y) \) in einer Graphik gezeichnet \( (\mathbf{5 P}) \).

(Vorsicht! Wenn Sie die in Maxima eingebauten Funktionen für Durchführung von Linearen Regression benutzen, wird diese Aufgabe mit 0 Punkten bewertet.)

Du gehst am besten über die Normalengleichung:

https://www.geogebra.org/m/BpqJ28eP#material/YjjE9nwR

wie allgemein soll es werden. Sollen auch Polynome erschlagen werden oder reicht es eine Gerade zu fitten? Z.B.

blob.png

%i5 kannst auslassen - nur zur Erklärung..

ok.. das habe ich jetzt noch nicht so ganz verstanden.. wie erstelle ich daraus jetzt den block Befehl?

nun, Du fasst die Befehle in einem Block zusammen und übergibst die Liste als Funktions-Argument. Im Wesentlich sind das die 3 Zeilen

   A:transpose(apply(matrix,makelist(X^j ,j,0,1))),
  b:transpose(apply(matrix,[Y])),
  (transpose(A).A)^^(-1).transpose(A).b

Halt, DU mußt L als 2 Listen X,Y übergeben und überprüfen ob die gleich lang sind - hab das eingearbeitet...

linReg(X,Y)

\( \begin{pmatrix}\frac{809}{3}\cr -20\end{pmatrix}\)

okay, ich verstehe den Ansatz, aber wie gibt mir das dann die Regressionsgerade aus? Weil unter Punkt 4. soll es dann ja auch noch in einer Grafik angezeigt werden..

Hm,

was die dritte Zeile ausgibt sind Achsenabschnitt und die Steigung der Geraden - die musst Du in eine Geradengleichung setzen und die Du dann plotten (wxplot2d)  kannst, nach 4. Musst Du die Stützpunkte auch andrucken - also in eine Punkteliste schreiben.

Zeig mal was Du hast....

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community