Contents
IMP 12.01.2012
Ziege-Weide Aufgabe loesen mittels des symbolischen Pakets
clc; clf; clear;
Variablen
symbolisch (gesuchte Groessen)
syms l real positive; % Leinenlaenge syms x real positive; % x-wert des Schnittpunktes Wiesenkreis mit Leinenkreiss % gegebene Groessen, hier als Zahlenwert R = 10; % Wiesenradius
Die beiden Kurven (symbolisch)
yR = R - sqrt(R^2-x^2); yL = sqrt(l^2-x^2);
bestimme den Schnittpunkt
X = solve(yL - yR, x); % Ausgabe disp('Schnittpunkt der beiden Kurven') pretty(yR); pretty(yL) disp('ist') pretty(X)
Schnittpunkt der beiden Kurven
2 1/2
10 - (100 - x )
2 2 1/2
(l - x )
ist
/ 2 \1/2
| l |
l | 4 - --- |
\ 100 /
----------------
2
unbestimmtes integrieren
I = int(yL - yR, x);
Einsetzen der Integrationsgrenzen
==> abgegrasten Flaeche, symbolische Funktion A(l)
A = 2*(subs(I, x, X) - subs(I, x, 0)); %A = 2*int(yL - yR, x, 0,X); % doesn't work although it should % results in: "Warning: Explicit integral could not be found." % Ausgabe disp('abgegrasten Flaeche, Funktion A(l)') pretty(A)
abgegrasten Flaeche, Funktion A(l)
/ / 2 \1/2 \ / / 2 \1/2 \
| | l | | | | l | |
| l | 4 - --- | | / 2 \1/2 | | 4 - --- | |
| \ 100 / | | l | 2 | \ 100 / |
100 asin| ---------------- | - 10 l | 4 - --- | + l asin| -------------- | +
\ 20 / \ 100 / \ 2 /
/ / 2 \ \1/2 / / 2 \ \1/2
| 2 | l | | | 2 | l | |
| l | --- - 4 | | / 2 \1/2 / 2 \1/2 | l | --- - 4 | |
| \ 100 / | | l | | l | | \ 100 / 2 |
l | -------------- + 100 | | 4 - --- | l | 4 - --- | | -------------- + l |
\ 4 / \ 100 / \ 100 / \ 4 /
-------------------------------------------- + -------------------------------------------
2 2
Aufstellen der Gleichung, dass die halbe Flaeche abgegrast wurde
F = @(L) subs(A - pi*R^2/2, l, L);
% numerisches Bestimmen der Nullstellen (= Loesung)
L = fzero(F, R)
L = 11.5873
Grafik
n = 100; % Leinenkurve xxL = linspace(-L, L, n); yyL = subs(subs(yL,l,L),x,xxL); % Wiesenkurve xxR = linspace(-R, R, n); yyR = subs(yR,xxR); plot(xxL,yyL,'r'); hold on; plot(xxR,yyR); plot(xxR,2*R-yyR); plot(xxL,R); axis equal title(['Weidenradius ',num2str(R),' m und Leinenlaenge ',num2str(L),' m']); legend('Leine','Weide'); % publish('ziege_wiese.m');