MATLAB Repetitorium - Einführung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 147: Zeile 147:
|}
|}
----
----
= 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]]
→ zurück zum Hauptartikel: [[MATLAB_Repetitorium|MATLAB Repetitorium]]

Aktuelle Version vom 16. September 2024, 14:52 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.


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