|
|
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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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>
| |
| |}
| |
|
| |
|
| ---- | | ---- |
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
.
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]
|
→ Termine 1
→ MATLAB® Befehlsübersicht
→ zurück zum Hauptartikel: MATLAB Repetitorium