MATLAB Repetitorium - Einführung: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 37: | Zeile 37: | ||
== Aufgabe 1.2 == | == Aufgabe 1.2 == | ||
Wählen Sie unterschiedliche Winkel w zwischen 0 und π. Berechnen Sie für jeden | Wählen Sie unterschiedliche Winkel w zwischen 0 und π. Berechnen Sie für jeden | ||
Winkel die Summe der Quadrate von sin(w) und cos(w). | Winkel die Summe der Quadrate von <code>sin(w)</code> und <code>cos(w)</code>. | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Musterlösung </strong> | | <strong>Musterlösung </strong> | ||
Zeile 91: | Zeile 91: | ||
|} | |} | ||
== Aufgabe 1.4== | == Aufgabe 1.4== | ||
Was erhalten Sie, wenn Sie den Spaltenvektor v = [2;3] mit der Matrix A = [1 0;0 −1] multiplizieren? Was ist das Ergebnis von A * A? | Was erhalten Sie, wenn Sie den Spaltenvektor <code>v = [2;3]</code> mit der Matrix <code>A = [1 0;0 −1]</code> multiplizieren? Was ist das Ergebnis von <code>A * A</code>? | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Musterlösung </strong> | | <strong>Musterlösung </strong> | ||
Zeile 107: | Zeile 107: | ||
|} | |} | ||
==Aufgabe 1.5== | ==Aufgabe 1.5== | ||
Erzeugen Sie einen Zeilenvektor, der als Komponenten nicht Zahlen, sondern Buchstaben enthält. Überprüfen Sie den Typ des Vektors mit der Funktion whos. | Erzeugen Sie einen Zeilenvektor, der als Komponenten nicht Zahlen, sondern Buchstaben enthält. Überprüfen Sie den Typ des Vektors mit der Funktion <code>whos</code>. | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Tipp </strong> | | <strong>Tipp </strong> | ||
Zeile 127: | Zeile 127: | ||
==Aufgabe 1.6== | ==Aufgabe 1.6== | ||
Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen, | # Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen, um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert. | ||
um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert. | # Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits benutzte Befehle zu wiederholen und zu verändern. | ||
Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits | # Schauen Sie sich auch einmal den Workspace-Editor an, mit dem Sie zum Beispiel die Inhalte von Variablen mittels Copy & Paste nach MS-Excel übernehmen können. | ||
benutzte Befehle zu wiederholen und zu verändern. | |||
Schauen Sie sich auch einmal den Workspace-Editor an, mit dem Sie zum Beispiel | |||
die Inhalte von Variablen mittels Copy & Paste nach MS-Excel übernehmen können. | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>Musterlösung </strong> | | <strong>Musterlösung </strong> | ||
Zeile 151: | Zeile 148: | ||
---- | ---- | ||
= Symbolisches Rechnen = | = Symbolisches Rechnen = | ||
'''Hinweis:''' Statt | '''Hinweis:''' Statt <code>* / ^</code> verwenden Sie <code>.* ./ .^<7code> (Punktoperator vor Operation anwenden): | ||
== Aufgabe 2.1 == | == Aufgabe 2.1 == | ||
Definieren Sie folgende Funktionen mit Matlab (Befehle: syms) | Definieren Sie folgende Funktionen mit Matlab (Befehle: <code>syms<7code>) | ||
<!-- <math></math><br> --> | <!-- <math></math><br> --> | ||
Zeile 173: | Zeile 170: | ||
== Aufgabe 2.2 == | == Aufgabe 2.2 == | ||
Multiplizieren Sie folgende Ausdrücke aus (Befehle: expand()) | Multiplizieren Sie folgende Ausdrücke aus (Befehle: <code>expand()</code>) | ||
<math>(3x-2y)^3</math><br> | <math>(3x-2y)^3</math><br> | ||
Zeile 189: | Zeile 186: | ||
|} | |} | ||
== Aufgabe 2.3 == | == Aufgabe 2.3 == | ||
Vereinfachen Sie folgende Ausdrücke (Befehle: exp(), log(), simplify()) | Vereinfachen Sie folgende Ausdrücke (Befehle: <code>exp(), log(), simplify()</code>) | ||
<math>sin(x)^2+cos(x)^2</math><br> | <math>sin(x)^2+cos(x)^2</math><br> | ||
Zeile 208: | Zeile 205: | ||
== Aufgabe 2.4 == | == Aufgabe 2.4 == | ||
Verwenden Sie simplify zur Ausführung der Polynomdivision P3/P1. | Verwenden Sie <code>simplify</code> zur Ausführung der Polynomdivision P3/P1. | ||
<math>P_3(x)=x^3-6x^2-x+6=0,\ P_1(x)=x-1</math><br> | <math>P_3(x)=x^3-6x^2-x+6=0,\ P_1(x)=x-1</math><br> | ||
Zeile 225: | Zeile 222: | ||
== Aufgabe 2.5 == | == Aufgabe 2.5 == | ||
Lösen Sie folgende Gleichungen (Befehl: sqrt(), log10(), solve()). | Lösen Sie folgende Gleichungen (Befehl: <code>sqrt(), log10(), solve()</code>). | ||
'''Hinweis:''' Benutzen Sie „==“ statt „=“ | '''Hinweis:''' Benutzen Sie „==“ statt „=“ | ||
Zeile 246: | Zeile 243: | ||
== Aufgabe 2.6 == | == Aufgabe 2.6 == | ||
Berechnen Sie folgende Grenzwerte (Befehle: limit(), inf). | Berechnen Sie folgende Grenzwerte (Befehle: <code>limit(), inf</code>). | ||
<math>^{lim}_{x\rightarrow 0}\frac{2x^2+5x}{3x}</math><br> | <math>^{lim}_{x\rightarrow 0}\frac{2x^2+5x}{3x}</math><br> | ||
Zeile 263: | Zeile 260: | ||
== Aufgabe 2.7 == | == Aufgabe 2.7 == | ||
Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: diff()). | Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: <code>diff()</code>). | ||
<math>x^5\cdot \ln(x)</math><br> | <math>x^5\cdot \ln(x)</math><br> | ||
Zeile 289: | Zeile 286: | ||
== Aufgabe 2.8 == | == Aufgabe 2.8 == | ||
Berechnen Sie das unbestimmte Integral folgender Funktionen (Befehle: int()). | Berechnen Sie das unbestimmte Integral folgender Funktionen (Befehle: <code>int()</code>). | ||
<math>\int\frac{3x^8}{x^3+1}dx</math><br> | <math>\int\frac{3x^8}{x^3+1}dx</math><br> | ||
Zeile 307: | Zeile 304: | ||
== Aufgabe 2.9 == | == Aufgabe 2.9 == | ||
Berechnen Sie das bestimmte Integral folgender Funktion (Befehle: int()). | Berechnen Sie das bestimmte Integral folgender Funktion (Befehle: <code>int()</code>). | ||
<math>\int^1_0\frac{x}{(1+x^2)^2}dx</math><br> | <math>\int^1_0\frac{x}{(1+x^2)^2}dx</math><br> | ||
Zeile 322: | Zeile 319: | ||
|} | |} | ||
== Aufgabe 2.10 == | == Aufgabe 2.10 == | ||
Für die Schnellen: Erkundigen Sie sich über folgende Berechnungen zur Funktionsanalyse bzw. Kurvendiskussion in Matlab (Befehle: diff(), subs(), solve(), vpa()): | Für die Schnellen: Erkundigen Sie sich über folgende Berechnungen zur Funktionsanalyse bzw. Kurvendiskussion in Matlab (Befehle: <code>diff(), subs(), solve(), vpa()</code>): | ||
# Berechnen von lokalen Extremstellen | # Berechnen von lokalen Extremstellen | ||
# Berechnen von Wendestellen | # Berechnen von Wendestellen |
Version vom 26. April 2024, 10:10 Uhr
Autor: | Prof. Dr.-Ing. Schneider |
Termin: | 26.04.2024 |
Einstieg
Aufgabe 1.1
Quadrieren Sie die Zahlen 3, pi, −1 und i mithilfe des Operators „^“ und ziehen Sie aus den Ergebnissen jeweils die Wurzel.
Musterlösung |
% Aufgabe 1.1:
% zi : Variable für die Zahl
% qi : das Quadrat der Zahl
% wi : die Wurzel aus dem Quadrat
z1 = 3
q1 = z1^2
w1 = sqrt( q1 )
z2 = pi
q2 = z2^2
w2 = sqrt( q2 )
z3 = -1
q3 = z3^2
w3 = sqrt( q3 )
z4 = i
q4 = z4^2
w4 = sqrt( q4 )
|
Aufgabe 1.2
Wählen Sie unterschiedliche Winkel w zwischen 0 und π. Berechnen Sie für jeden
Winkel die Summe der Quadrate von sin(w)
und cos(w)
.
Musterlösung |
% Aufgabe 1.2:
% wi : verschiedene Winkel zwischen 0 und pi
% ei : Summe von sin- und cos-Quadrat zu wi
w1 = 0
e1 = sin(w1)^2 + cos(w1)^2
w2 = pi
e2 = sin(w2)^2 + cos(w2)^2
w3 = pi/2
e3 = sin(w3)^2 + cos(w3)^2
w4 = pi/4
e4 = sin(w4)^2 + cos(w4)^2
w5 = pi/6
e5 = sin(w5)^2 + cos(w5)^2
|
Aufgabe 1.3
Erzeugen Sie das 1x5-Array sval, das die fünf Sinus-Werte für die Bogenmaß-Winkel 0, π/6, π/4, π/2 und π enthält. Führen Sie die gleichen Rechnungen für die Grad-Winkel 0, 30°, 45°, 90° und 180° durch. Hierzu müssen Sie die Winkel ins Bogenmaß umrechnen, da die MATLAB-Funktionen sin und cos ihre Argumente im Bogenmaß erwarten – zur Erinnerung: π entspricht 180°.
Versuchen Sie es auch einmal mit den Funktionen sind
und cosd
.
Musterlösung |
% Aufgabe 1.3:
% rval : Array mit verschiedenen Winkeln
rval = [ 0, pi/6, pi/4, pi/2, pi ]
sval = [ sin(0), sin(pi/6), sin(pi/4), sin(pi/2), sin(pi) ]
frsin = sin( rval )
frcos = cos( rval )
c = pi/180
wval = [ 0, 30, 45, 90, 180 ]
cval = [ sin(0*c), sin(30*c), sin(45*c), sin(90*c), sin(180*c) ]
fwsin = sin( wval * c )
dval = [ sind(0), sind(30), sind(45), sind(90), sind(180) ]
fsind = sind( wval )
fcosd = cosd( wval )
|
Aufgabe 1.4
Was erhalten Sie, wenn Sie den Spaltenvektor v = [2;3]
mit der Matrix A = [1 0;0 −1]
multiplizieren? Was ist das Ergebnis von A * A
?
Musterlösung |
% Aufgabe 1.4:
v = [2;3]
A = [1 0; 0 -1]
A_v = A * v
A_A = A * A
|
Aufgabe 1.5
Erzeugen Sie einen Zeilenvektor, der als Komponenten nicht Zahlen, sondern Buchstaben enthält. Überprüfen Sie den Typ des Vektors mit der Funktion whos
.
Tipp |
Artikel zum thema String und Char |
Musterlösung |
% Aufgabe 1.5:
s = [ 'H', 'e', 'l', 'l', 'o' ]
whos s
|
Aufgabe 1.6
- Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen, um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert.
- Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits benutzte Befehle zu wiederholen und zu verändern.
- Schauen Sie sich auch einmal den Workspace-Editor an, mit dem Sie zum Beispiel die Inhalte von Variablen mittels Copy & Paste nach MS-Excel übernehmen können.
Musterlösung |
% Aufgabe 1.6:
% Beispiele für fehlerhafte Anweisungen
e0 = 3,4 * 3
e1 = 'Hello,
world'
e2 = [5 2] * [3 3]
|
Symbolisches Rechnen
Hinweis: Statt * / ^
verwenden Sie .* ./ .^<7code> (Punktoperator vor Operation anwenden):
Aufgabe 2.1
Definieren Sie folgende Funktionen mit Matlab (Befehle: syms<7code>)
Musterlösung
% Aufgabe 2.1:
syms x y
y = 2.*x.^3 + 12.*x.^2 + 19.*x + 9;
y = (-1./58)*(x.^2 - 100.*x -416);
y = ((x-1).*(x+5))./((x+1).^2 .* (x-3));
clear x y
Aufgabe 2.2
Multiplizieren Sie folgende Ausdrücke aus (Befehle: expand()
)
Musterlösung
% Aufgabe 2.2:
syms x y
expand((3.*x - 2.*y)^3);
expand((4.*x - y)^4);
clear x y
Aufgabe 2.3
Vereinfachen Sie folgende Ausdrücke (Befehle: exp(), log(), simplify()
)
Musterlösung
% Aufgabe 2.3:
syms x y
simplify(sin(x).^2 + cos(x).^2);
simplify(exp(log(x)));
simplify((x.^2 - y.^2)./(x-y));
clear x y
Aufgabe 2.4
Verwenden Sie simplify
zur Ausführung der Polynomdivision P3/P1.
Musterlösung
% Aufgabe 2.4:
syms x P1 P3
P1 = x - 1;
P3 = x.^3 - 6.*x.^2 - x + 6;
simplify(P3/P1);
clear x P1 P3
Aufgabe 2.5
Lösen Sie folgende Gleichungen (Befehl: sqrt(), log10(), solve()
).
Hinweis: Benutzen Sie „==“ statt „=“
Musterlösung
% Aufgabe 2.5:
syms x
solve(11-sqrt(x+3) == 6, x);
solve(3.^x == 4.^(x-2) .* 2.^x, x);
solve(log10(6.*x + 10) - log10(x - 3) == 1, x);
clear x
Aufgabe 2.6
Berechnen Sie folgende Grenzwerte (Befehle: limit(), inf
).
Musterlösung
% Aufgabe 2.6:
syms x
limit((2.*x^2 + 5.*x)./(3.*x),x,1);
limit(1./x,x,inf);
clear x
Aufgabe 2.7
Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: diff()
).
Musterlösung
% Aufgabe 2.7:
syms y x
y = x.^5 + log(x);
ydiff = diff(y);
ydiffdiff = diff(ydiff);
subplot(121)
fplot(y);
subplot(122);
fplot(ydiff);
y = 4.*sin(x).*tan(x);
ydiff = diff(y);
ydiffdiff = diff(ydiff);
clear x y
Aufgabe 2.8
Berechnen Sie das unbestimmte Integral folgender Funktionen (Befehle: int()
).
Musterlösung
% Aufgabe 2.8:
syms x
int((3.*x.^8)./(x.^3 +1),x);
int(exp(2.*x)./(1+exp(x)),x);
clear x
Aufgabe 2.9
Berechnen Sie das bestimmte Integral folgender Funktion (Befehle: int()
).
Musterlösung
% Aufgabe 2.9:
syms x y
int(x./((1 + x.^2).^2),x,0,1)
clear x y
Aufgabe 2.10
Für die Schnellen: Erkundigen Sie sich über folgende Berechnungen zur Funktionsanalyse bzw. Kurvendiskussion in Matlab (Befehle: diff(), subs(), solve(), vpa()
):
- Berechnen von lokalen Extremstellen
- Berechnen von Wendestellen
- Berechnen des y-Achsenabschnittes
Wenden Sie die Berechnungen auf die Aufgaben aus Teil 2.1 an.
Musterlösung
% Aufgabe 2.10:
syms x y1 y2 y3
y1 = 2.*x.^3 + 12.*x.^2 + 19.*x + 9;
y2 = (-1./58)*(x.^2 - 100.*x -416);
y3 = ((x-1).*(x+5))./((x+1).^2 .* (x-3));
%% y1
y1diff1 = diff(y1);
y1diff2 = diff(y1diff1);
ycrossY1 = subs(y1,0);
ycrossX1 = 0;
max = solve(y1diff1 == 0,x);
extremaX1 = vpa(max);
extremaY1 = subs(y1,extremaX1);
inflection = solve(y1diff2 == 0,x);
inflectionX1 = vpa(inflection);
inflectionY1 = subs(y1,inflectionX1);
subplot(131);
fplot(y1);
hold on;
plot(ycrossX1,ycrossY1,'b*');
hold on;
plot(extremaX1,extremaY1,'r*');
hold on;
plot(inflectionX1,inflectionY1,'g*');
%% y2
y2diff1 = diff(y2);
y2diff2 = diff(y2diff1);
ycrossY2 = subs(y2,0);
ycrossX2 = 0;
max = solve(y2diff1 == 0,x);
extremaX2 = vpa(max);
extremaY2 = subs(y2,extremaX2);
inflection = solve(y2diff2 == 0,x);
inflectionX2 = vpa(inflection);
inflectionY2 = subs(y2,inflectionX2);
subplot(132);
fplot(y2);
hold on;
plot(ycrossX2,ycrossY2,'b*');
hold on;
plot(extremaX2,extremaY2,'r*');
hold on;
plot(inflectionX2,inflectionY2,'g*');
%% y3
y3diff1 = diff(y3);
y3diff2 = diff(y3diff1);
ycrossY3 = subs(y1,0);
ycrossX3 = 0;
max = solve(y3diff1 == 0,x);
extremaX3 = vpa(max);
extremaY3 = subs(y3,extremaX3);
inflection = solve(y3diff2 == 0,x);
inflectionX3 = vpa(inflection);
inflectionY3 = subs(y3,inflectionX3);
subplot(133);
fplot(y3);
hold on;
plot(ycrossX3,ycrossY3,'b*');
hold on;
plot(extremaX3,extremaY3,'r*');
hold on;
plot(inflectionX3,inflectionY3,'g*');
→ zurück zum Hauptartikel: MATLAB Repetitorium