MATLAB Repetitorium - Einführung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Aufgabe 1.1 == Quadrieren Sie die Zahlen 3, pi, −1 und i mithilfe des Operators „^“ und ziehen Sie aus den Ergebnissen jeweils die Wurzel. {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | <strong>Musterlösung </strong> |- | <source line lang="matlab" style="font-size:medium"> % Aufgabe 1.3.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…“)
 
 
(34 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:MATLAB]]
{| class="wikitable"
|-
| '''Autor:'''  || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
|-
| '''Termin:''' || 26.04.2024
|}
= Einstieg =
== Aufgabe 1.1 ==
== Aufgabe 1.1 ==
Quadrieren Sie die Zahlen 3, pi, −1 und i mithilfe des Operators „^“ und ziehen Sie aus den Ergebnissen jeweils die Wurzel.
Quadrieren Sie die Zahlen 3, pi, −1 und i mithilfe des Operators „^“ und ziehen Sie aus den Ergebnissen jeweils die Wurzel.
Zeile 6: Zeile 14:
|-
|-
| <source line lang="matlab" style="font-size:medium">
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 1.3.1:
% Aufgabe 1.1:
%  zi : Variable für die Zahl
%  zi : Variable für die Zahl
%  qi : das Quadrat der Zahl
%  qi : das Quadrat der Zahl
Zeile 29: 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>.
Aufgabe 1.3.3:
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
Erzeugen Sie das 1x5-Array sval, das die fünf Sinus-Werte für die Bogenmaß-Winkel
| <strong>Musterlösung&thinsp;</strong>
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
| <source line lang="matlab" style="font-size:medium">
Bogenmaß umrechnen, da die MATLAB-Funktionen sin und cos ihre Argumente im
% Aufgabe 1.2:
Bogenmaß erwarten – zur Erinnerung: π entspricht 180°.
%  wi : verschiedene Winkel zwischen 0 und pi
Versuchen Sie es auch einmal mit den Funktionen sind und cosd.
%  ei : Summe von sin- und cos-Quadrat zu wi
Aufgabe 1.3.4:
 
Was erhalten Sie, wenn Sie den Spaltenvektor v = [2;3] mit der Matrix A = [1 0;
w1 = 0
0 −1] multiplizieren? Was ist das Ergebnis von A * A?
e1 = sin(w1)^2 + cos(w1)^2
Aufgabe 1.3.5:
 
Erzeugen Sie einen Zeilenvektor, der als Komponenten nicht Zahlen, sondern
w2 = pi
Buchstaben enthält. Überprüfen Sie den Typ des Vektors mit der Funktion whos.
e2 = sin(w2)^2 + cos(w2)^2
Aufgabe 1.3.6:
 
Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen,
w3 = pi/2
um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert.
e3 = sin(w3)^2 + cos(w3)^2
Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits
 
benutzte Befehle zu wiederholen und zu verändern.
w4 = pi/4
Schauen Sie sich auch einmal den Workspace-Editor an, mit dem Sie zum Beispiel
e4 = sin(w4)^2 + cos(w4)^2
die Inhalte von Variablen mittels Copy & Paste nach MS-Excel übernehmen können.
 
w5 = pi/6
e5 = sin(w5)^2 + cos(w5)^2
</source>
|}
== 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 <code>sind</code> und <code>cosd</code>.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% 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 )
</source>
|}
== Aufgabe 1.4==
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"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 1.4:
 
v = [2;3]
A = [1 0; 0 -1]
 
A_v = A * v
 
A_A = A * A
</source>
|}
==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 <code>whos</code>.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp&thinsp;</strong>
|-
| [https://de.mathworks.com/help/matlab/characters-and-strings.html Artikel zum thema String und Char]
|}
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 1.5:
 
s = [ 'H', 'e', 'l', 'l', 'o' ]
 
whos s
</source>
|}
 
==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.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
 
% Aufgabe 1.6:
%  Beispiele für fehlerhafte Anweisungen
 
e0 = 3,4 * 3
 
e1 = 'Hello,
      world'
 
e2 = [5 2] * [3 3]
</source>
|}
----
= Symbolisches Rechnen =
'''Hinweis:''' Statt <code>* / ^</code> verwenden Sie <code>.* ./ .^</code> (Punktoperator vor Operation anwenden):
== Aufgabe 2.1 ==
Definieren Sie folgende Funktionen mit Matlab (Befehle: <code>syms</code>)
 
<!-- <math></math><br> -->
<math>y=2x^2+12x^2+19x+9</math><br>
<math>y=-\frac{1}{58}(x^2-100x-416)</math><br>
<math>y=-\frac{(x-1)(x+5)}{(x+1)^2(x-3)}</math>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% 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
</source>
|}
 
== Aufgabe 2.2 ==
Multiplizieren Sie folgende Ausdrücke aus (Befehle: <code>expand()</code>)
 
<math>(3x-2y)^3</math><br>
<math>(4x-y)^4</math><br>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 2.2:
syms x y
expand((3.*x - 2.*y)^3);
expand((4.*x - y)^4);
clear x y
</source>
|}
== Aufgabe 2.3 ==
Vereinfachen Sie folgende Ausdrücke (Befehle: <code>exp(), log(), simplify()</code>)
 
<math>sin(x)^2+cos(x)^2</math><br>
<math>e^{ln(x)}</math><br>
<math>\frac{a^2-b^2}{a-b}</math><br>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% 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
</source>
|}
 
== Aufgabe 2.4 ==
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>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% 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
</source>
|}
 
== Aufgabe 2.5 ==
Lösen Sie folgende Gleichungen (Befehl: <code>sqrt(), log10(), solve()</code>).
 
'''Hinweis:''' Benutzen Sie „==“ statt „=“
 
<math>11-\sqrt{x+3}=6</math><br>
<math>3^x=4^{x-2}\cdot 2^x</math><br>
<math>lg(6x+10)-lg(x-3)=1</math><br>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% 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
</source>
|}
 
== Aufgabe 2.6 ==
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 \infty}\frac{1}{x}</math><br>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 2.6:
syms x
limit((2.*x^2 + 5.*x)./(3.*x),x,1);
limit(1./x,x,inf);
clear x
</source>
|}
 
== Aufgabe 2.7 ==
Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: <code>diff()</code>).
 
<math>x^5\cdot \ln(x)</math><br>
<math>4\cdot \sin(x)\cdot \tan(x)</math><br>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% 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
</source>
|}
 
== Aufgabe 2.8 ==
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{e^{2x}}{1+e^x}dx</math><br>
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 2.8:
syms x
int((3.*x.^8)./(x.^3 +1),x);
int(exp(2.*x)./(1+exp(x)),x);
clear x
</source>
|}
 
== Aufgabe 2.9 ==
Berechnen Sie das bestimmte Integral folgender Funktion (Befehle: <code>int()</code>).
 
<math>\int^1_0\frac{x}{(1+x^2)^2}dx</math><br>
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 2.9:
syms x y
int(x./((1 + x.^2).^2),x,0,1)
clear x y
</source>
|}
== Aufgabe 2.10 ==
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 Wendestellen
# Berechnen des y-Achsenabschnittes
Wenden Sie die Berechnungen auf die Aufgaben aus Teil 2.1 an.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% 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*');
</source>
|}
 
----
→ Termine [[MATLAB_Repetitorium_-_Einführung|1]] <br>
→ [[MATLAB-Befehle| MATLAB<sup>®</sup> Befehlsübersicht]]<br>
→ zurück zum Hauptartikel: [[MATLAB_Repetitorium|MATLAB Repetitorium]]

Aktuelle Version vom 26. April 2024, 09:13 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.

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).

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.

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?

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.

Aufgabe 1.6

  1. Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen, um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert.
  2. Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits benutzte Befehle zu wiederholen und zu verändern.
  3. 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.

Symbolisches Rechnen

Hinweis: Statt * / ^ verwenden Sie .* ./ .^ (Punktoperator vor Operation anwenden):

Aufgabe 2.1

Definieren Sie folgende Funktionen mit Matlab (Befehle: syms)



Aufgabe 2.2

Multiplizieren Sie folgende Ausdrücke aus (Befehle: expand())



Aufgabe 2.3

Vereinfachen Sie folgende Ausdrücke (Befehle: exp(), log(), simplify())




Aufgabe 2.4

Verwenden Sie simplify zur Ausführung der Polynomdivision P3/P1.


Aufgabe 2.5

Lösen Sie folgende Gleichungen (Befehl: sqrt(), log10(), solve()).

Hinweis: Benutzen Sie „==“ statt „=“




Aufgabe 2.6

Berechnen Sie folgende Grenzwerte (Befehle: limit(), inf).



Aufgabe 2.7

Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: diff()).



Aufgabe 2.8

Berechnen Sie das unbestimmte Integral folgender Funktionen (Befehle: int()).



Aufgabe 2.9

Berechnen Sie das bestimmte Integral folgender Funktion (Befehle: int()).


Aufgabe 2.10

Für die Schnellen: Erkundigen Sie sich über folgende Berechnungen zur Funktionsanalyse bzw. Kurvendiskussion in Matlab (Befehle: diff(), subs(), solve(), vpa()):

  1. Berechnen von lokalen Extremstellen
  2. Berechnen von Wendestellen
  3. Berechnen des y-Achsenabschnittes

Wenden Sie die Berechnungen auf die Aufgaben aus Teil 2.1 an.


→ Termine 1
MATLAB® Befehlsübersicht
→ zurück zum Hauptartikel: MATLAB Repetitorium