1

Die Aufgabe besteht darin, einen Kegelhut in Matlab zu erzeugen, indem eine entwickelbare Oberfläche mit numerischen Methoden erstellt wird. Es gibt 3 Teile, von denen ich 2 gemacht habe. Meine Frage bezieht sich auf Teil 3, wo ich die am wenigsten rechteckige Papieroberfläche berechnen muss, die den Hut enthalten kann. Und ich muss die Materialverschwendung des Papiers berechnen.Lösen von Integral in Matlab mit unbekannten Variablen?

DU VIELLEICHT DEN LANGEN HINTERGRUND SKIP UND ZUM LETZTEN ABSATZ


HINTERGRUND GO:

Der Kegel-Hut mit einem schiefen Kegel mit seiner Spitze in (a befindet geschaffen werden kann; 0; b) und mit einer kreisförmigen Basis.

x = Rcos u, 
y = Rsin u 
z = 0 
0<_ u >_2pi 

mit bekannten Werten für R, a und b

Given differentialequations

epsilon und eta ('n') ist, die Kurven x- und y-Werte, wenn der Parameter u von 0 geht zu 2pi und Alpha ist der Neigungswinkel für die Kurve am Punkt (Epsilon, Eta). Startwerte bei A: u=0, alhpa=0, epsilon=0, eta=0.

Die Kurve stoppt bei B, wo der Parameter u 2pi erreicht hat.

1. aufgetragen ich die Kurve unter Verwendung von Runge-Kutta-4 und zeigte, dass die Spitze bei P = (0, sqrt(b^2 + (R-alpha)^2)) befindet

2. ich gezeigt, dass ich immer noch durch die Verwendung von kleineren Intervallen in RK4 recht gute Genauigkeit erhalten, aber Das Problem ist dann, dass die Kurve nicht glatt ist. Deshalb habe ich Hermite-Interpolation von Epsilon und Eta als Funktionen von u in jedem Intervall verwendet, um eine bessere Kurve zu erhalten.

3. Ok, jetzt muss ich die am wenigsten rechteckige Papieroberfläche berechnen, die den Hut und die Größe der Materialverschwendung des Papiers enthalten kann. Wenn der Endwinkel Alpha (2pi) in der Schablone Pi oder Pi/2 ist, ist der Materialabfall geringer. Ich bekomme nun Werte für R & Alpha (R = 7,8 und Alpha = 5,5) und meine Aufgabe ist es, zu berechnen, welche Höhe, b der Kegelhut mit dem Konstruktionskriterium alpha (2pi) = pi (und dann für alpha (2pi) = pi/2 für eine andere Größe Hut).

Also nahm ich die erste Gleichung oben (der Ausdruck enthält, b) und schrieb es wie ein Integral: The integral


AUF DIE

Was ich verstehe, ist, dass ich dieses Problem zu lösen müssen Integral in Matlab und wählen Sie dann b, so dass Alpha (2pi) -pi = 0 (mit den oben genannten Kriterien). Die Werte für R und Alpha sind gegeben und t ist definiert als ein Intervall früher (in Teil 1, wo ich die RK4 gemacht habe). Wenn also das Integral gelöst ist, bekomme ich f (b) = 0 was ich zum Beispiel mit der Sekantenmethode lösen könnte? Aber ich bin nicht in der Lage, das Integral mit der Matlab-Funktion 'Integral' zu lösen. Denn ich habe natürlich nicht den Wert von b, das ist es wonach ich suche. Also, wie soll ich das machen? Gibt es eine Funktion in Matlab, die verwendet werden kann?

Antwort

1

Sie können die Differentialgleichung für alpha verwenden und verschiedene Werte für b testen, bis die Bedingung alpha(2pi)=pi erfüllt ist.Zum Beispiel:

b0=1 %initial seed 
b=fsolve(@find_b,b0) %use the function fsolve or any of your choice 

Die Funktion gelöst werden soll:

function[obj]=find_b(b) 
    alpha0=0 %initual valur for alpha at u=0 
    uspan=[0 2*pi] %range for u 
    %Use the internal ode solver or any of your choice 
    [u,alpha] = ode45(@(u,alpha) integrate_alpha(u,alpha,b), uspan, alpha0); 

    alpha_final=alpha(end) %Get the last value for alpha (at u=2*pi) 

    obj=alpha_final-pi %Function to be solved 
end 

und die Integration kann wie folgt geschehen:

function[dalpha]=integrate_alpha(u,alpha,b) 

     a=1; %you can use the right value here 
     R=1; %you can use the right value here 

     dalpha=(R-a*cos(u))/sqrt(b^2+(R-a*cos(u))^2); 

end 
Verwandte Themen