[matlab] Fläche unter Kurve einfärben

Neue Frage »

tigerbine Auf diesen Beitrag antworten »
[matlab] Fläche unter Kurve einfärben
Servus Wink

Ich wollte mit matlab Integrale berechnen und nachher ein Bidl ausgeben lassen, das die Fläche unter der Kurve einfärbt. Geht das?

LG,
tigerbine
Dual Space Auf diesen Beitrag antworten »
RE: [matlab] Fläche unter Kurve einfärben
Schon das Integrieren sollte schwierig werden, denn das bewerkstelligt Matlab nur "symbolisch".
tigerbine Auf diesen Beitrag antworten »
RE: [matlab] Fläche unter Kurve einfärben
Das würde noch gehen, soll Umsetzung von "SimpsonRegel" und so werden. Welches Programm wäre denn eine Alternative, so dass ich via code Ausgabe hier was einfügen kann?
Dual Space Auf diesen Beitrag antworten »
RE: [matlab] Fläche unter Kurve einfärben
Mathematica?
tigerbine Auf diesen Beitrag antworten »
RE: [matlab] Fläche unter Kurve einfärben
Was kostet das? Gib es trial Versionen?
nschlange Auf diesen Beitrag antworten »

Matlab integriert im Normalfall nicht symbolisch, sondern numerisch.
Mit installierter Symbolic Math Toolbox kann es aber auch symbolisch
integrieren.
Und mit dem Befehl 'area' kann man Kurven einfärben.
Vielleicht hilft das kleine Beispiel:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
clear all;
close all;
clc;
f=inline('3*sin(2*x.^2)');
A=-pi/2;
B=pi/2;
x=linspace(A,B,200);
y=f(x);
area(x,y);
I_num=quad(f,A,B);

syms t;
I_sym=int(3*sin(2*t.^2));

text(-1,-1,['Integral numerisch: 'num2str(I_num)]);
text(-1,-2,strvcat('Stammfunktion: ', char(vectorize(I_sym))));

Die Ausgabe kann man mittels Tex-Interpretation bestimmt noch schöner machen.

Viele Grüße
nschlange
 
 
Dual Space Auf diesen Beitrag antworten »
RE: [matlab] Fläche unter Kurve einfärben
Zitat:
Original von tigerbine
Was kostet das? Gib es trial Versionen?

Für Studenten gibt es wohl Versionen ab $49. Trial versions gibt es meines Wissens nach nicht.
tigerbine Auf diesen Beitrag antworten »

Zitat:
Original von nschlange
Matlab integriert im Normalfall nicht symbolisch, sondern numerisch.
Mit installierter Symbolic Math Toolbox kann es aber auch symbolisch
integrieren.
Und mit dem Befehl 'area' kann man Kurven einfärben.
Vielleicht hilft das kleine Beispiel:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
clear all;
close all;
clc;
f=inline('3*sin(2*x.^2)');
A=-pi/2;
B=pi/2;
x=linspace(A,B,200);
y=f(x);
area(x,y);
I_num=quad(f,A,B);

syms t;
I_sym=int(3*sin(2*t.^2));

text(-1,-1,['Integral numerisch: 'num2str(I_num)]);
text(-1,-2,strvcat('Stammfunktion: ', char(vectorize(I_sym))));

Die Ausgabe kann man mittels Tex-Interpretation bestimmt noch schöner machen.

Viele Grüße
nschlange


code:
1:
2:
3:
??? Error: File: C:\matlabR12\work\integral.m Line: 12 Column: 6
Missing operator, comma, or semicolon.
nschlange Auf diesen Beitrag antworten »

mach hier mal ein Leerzeichen hin:

code:
1:
text(-1,-1,['Integral numerisch: 'num2str(I_num)]);

code:
1:
text(-1,-1,['Integral numerisch: ' num2str(I_num)]);
tigerbine Auf diesen Beitrag antworten »

Done, aber der Fehler ist ja in Zeile 12. verwirrt
nschlange Auf diesen Beitrag antworten »

Ich paste mal mein Original-Skipt, dmit geht es bei mir.
Aber der Editor scheint die Zeilenumbrüche zu entfernen.
code:
1:
clear all;close all;clc;f=inline('3*sin(2*x.^2)');A=-pi/2;B=pi/2;x=linspace(A,B,200);y=f(x);area(x,y);I_num=quad(f,A,B);syms t;I_sym=int(3*sin(2*t.^2));text(-1,-1,['Integral numerisch: ' num2str(I_num)]);text(-1,-2,strvcat('Stammfunktion: ', char(vectorize(I_sym))));
nschlange Auf diesen Beitrag antworten »

Was natürlich sein kann,
Du hast die Symbolic Math Toolbox gar nicht...
dann müsstest Du
syms t;
I_sym....
und
den zweiten text-Befehl wegnehmen
tigerbine Auf diesen Beitrag antworten »

Zitat:
Original von nschlange
Ich paste mal mein Original-Skipt, dmit geht es bei mir.
Aber der Editor scheint die Zeilenumbrüche zu entfernen.
code:
1:
clear all;close all;clc;f=inline('3*sin(2*x.^2)');A=-pi/2;B=pi/2;x=linspace(A,B,200);y=f(x);area(x,y);I_num=quad(f,A,B);syms t;I_sym=int(3*sin(2*t.^2));text(-1,-1,['Integral numerisch: ' num2str(I_num)]);text(-1,-2,strvcat('Stammfunktion: ', char(vectorize(I_sym))));


Mmh, immer noch der gleiche Fehler, das syms t will er nicht...
nschlange Auf diesen Beitrag antworten »

dann kannst Du nicht symbolisch integrieren...
Aber wenn ich das richtig verstanden habe wolltest Du das eh nicht.
So sieht das bei mir aus:
tigerbine Auf diesen Beitrag antworten »

Ja, so ein Bild wollte ich. Das Programm sollte Simpson Regel und so umsetzen. Augenzwinkern
nschlange Auf diesen Beitrag antworten »

dann brauchst Du ja nur den area-Befehl und den Integrations-Krams
schreibst Du selbst. Hammer
tigerbine Auf diesen Beitrag antworten »

Oki, versuche mich.
tigerbine Auf diesen Beitrag antworten »

Danke, nschlange. Freude
DGU Auf diesen Beitrag antworten »

Noch Interesse an dem Simpson-Verfahren? Wir haben das irgendwann mal gemacht:

code:
1:
2:
3:
4:
5:
6:
7:
  function Q = simpson(fhandle, a, b, n)
    h = (b - a) / (2 * n);
    x = a : h : b;
    f = fhandle(x);
    w = [1; repmat([4; 2], n-1, 1); 4; 1];
    Q = f * w * h / 3;
  end
tigerbine Auf diesen Beitrag antworten »

Klar, auch an anderen Newton-Cotes Formeln^^
DGU Auf diesen Beitrag antworten »

sorry, ich glaub die haben wir nicht gemacht...
tigerbine Auf diesen Beitrag antworten »

Bei Plot kann man ja Punkte einringeln lassen.

code:
1:
plot(x,If,a,fa,'ro',b,fb,'ro')


Kann man das bei bei area auch? Ich wollte die Stützstellen der Newton-Cotes Formeln markieren.
nschlange Auf diesen Beitrag antworten »

Du kannst einfach nach dem area()-Befehl schreiben:
code:
1:
2:
hold on;
plot(x,If,a,fa,'ro',b,fb,'ro')


Oder andersrum,
erst den plot-Befehl zum markieren der Punkte,
dann hold on; und area().
tigerbine Auf diesen Beitrag antworten »

Ah, hold on. Mir hast das nämlich immer "überplottet". Ich versuchs gleich mal.

Edit: Freude
tigerbine Auf diesen Beitrag antworten »

So, hier mal das Ergebnis. Habe noch den Befehl "subplot" entdeckt. Tanzen
nschlange Auf diesen Beitrag antworten »

Sieht gut aus.
Guck Dir mal "Adding Text Annotations to Graphs" in der Hilfe an.
Damit kannst Du Formeln in LaTeX-Qualität in die Diagramme
basteln.
tigerbine Auf diesen Beitrag antworten »

Ok, werde das mal versuchen. Kann man auch Werte, also die Berechneten Flächen automatisch einfügen?
nschlange Auf diesen Beitrag antworten »

Da hab ich keine Idee, ausser mit zwei Textbefehlen
das Integral und das Ergebnis hintereinander zu basteln.
Das wird aber nicht mehr schön aussehen.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »