%% 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) %% 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) %% 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) %% 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');