Kelluva sylinteri

Tehtävä. Miten syvällä kelluu alumiiniputki, jonka säde [Maple Math] ja vaipan paksuus [Maple Math] ? Alumiinin tiheys [Maple Math] .

Piirrämme kuvan, jossa näkyy putki ja vedenpinta

> restart:

Piirretään ensin sylinteri. Tähän voidaan käyttää plots -pakkauksen plot3d -funkitota, jolla saadaan yleinen parametrimuotoinen pinta piirretyksi. (Tämä menee hieman yli koulukurssin, mutta nyt on pääasia, että saadaan kuva tavalla tai toisella aikaan.)

> with(plots):

> x:=t;y:=cos(theta);z:=sin(theta);

[Maple Math]

[Maple Math]

[Maple Math]

> X:=t:Y:=1.2*cos(theta);Z:=1.2*sin(theta);

[Maple Math]

[Maple Math]

Muodostamme 1-säteisen sylinterin [x,y,z] ja 1.2-säteisen [X,Y,Z], joiden akselina on x-akseli. Jos kiinnitetään t, saadaan ympyrä tasossa x=t, sylinteripinta muodostuu, kun annetaan t:n vaihdella. Piirrämme eri mitoilla, liioiqttelemme havainnollisuuden vuoksi putken paksuutta.

> sisasylinteri:=plot3d([x,y,z],t=-2..2,theta=0..2*Pi,axes=none,grid=[2,50],scaling=constrained,orientation=[20,60],style=patchnogrid,shading=zgreyscale):

> ulkosylinteri:=plot3d([X,Y,Z],t=-2..2,theta=0..2*Pi,axes=none,grid=[2,50],scaling=constrained,style=patchnogrid,shading=zgreyscale):

> vesi:=plot3d(1/3,xx=-4..2,yy=-2.5..2.5,shading=zgreyscale):

> display({sisasylinteri,ulkosylinteri,vesi});

Kuva pohjaympyrästä ja vedenalaisen segmentin alan laskennasta

> x:='x':y:='y':z:='z':

Käytämme ainakin y:tä vapaana symbolina, joten se täytyy vapauttaa edellisestä arvostaan.

Nosteen laskemiseksi tarvitsemme vedenalaisen lieriösegmentin tilavuuden, jota varten laskemme ulkolieriön pohjasegmentin pinta-alan. Piirretään pohjaympyrä ja vedenpinta.

> restart:with(plots):

> R:=30:x:=R*cos(theta);y:=R*sin(theta):
ympyra:=plot([x,y,theta=0..2*Pi]):
t1:=-Pi/6;t2:=Pi+Pi/6;
x1:=R*cos(t1);y1:=R*sin(t1);
x2:=R*cos(t2);y2:=R*sin(t2);
kolmio:=plot([[0,0],[x1,y1],[x2,y2],[0,0]]):
vesi:=plot(y1,xaks=-40..40,color=blue):
mittaviiva:=plot([[32,y1],[32,0]],color=black):
y:='y':yteksti:=textplot([33.5,-7.5,"y"]):
alteksti:=textplot([3,-5,"a"]):
display({kolmio,ympyra,vesi,mittaviiva,yteksti,alteksti},scaling=constrained,title="Ulkolieriön pohjaympyrä sinisen vedenpinnan yllä",labels=["",""]);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

>

Ratkaisu

Olemme käyttäneet monia muuttujia, nyt on syytä aloittaa puhtaalta pöydältä.

> restart:

> kolmion_ala:=y*sqrt(R^2-y^2);

[Maple Math]

Huom! Tässä muodostettiin merkillä varustettu ala.

> sektorin_ala:=(2*alpha)/(2*Pi)*Pi*R^2;

[Maple Math]

> segmentin_ala:=sektorin_ala-kolmion_ala;

[Maple Math]

> noste:=g*segmentin_ala*syl_pituus;

[Maple Math]

> putken_tilavuus:=(Pi*R^2-Pi*(R-d)^2)*syl_pituus;

[Maple Math]

> putken_paino:=simplify(rho*g*putken_tilavuus);

[Maple Math]

Muodostamme taspainoehtoyhtälön.

> ehto:=noste=putken_paino;

[Maple Math]

Maple ei suorita puolittain jakamista, ennekuin vaadimme sitä:

> ehto:=ehto/(g*syl_pituus);

[Maple Math]

Yhtälön sieventäminen käy parhaiten muodostamalla vasemman puolen ( lhs - left hand side) ja oikean puolen ( rhs - right hand side) erotus.

> ehto:=simplify(rhs(ehto)-lhs(ehto))=0;

[Maple Math]

> alpha:=arccos(y/R);

[Maple Math]

Tarkistetaanpa, miten Maple ymmärtää arccos-funktion päähaaran. Kuva näyttää, että se sopii juuri tarkoituksemme.

> plot(arccos(x),x=-1..1);

> ehto;

[Maple Math]

Tässä vaiheessa otamme numeroarvot mukaan. Muistamme, että kun lausekkeessa esiintyville muuttujille annetaan arvoja, ne sijoittuvat automaattisesti lausekkeeseen.

> R:=30;d:=1;rho:=2.7;

[Maple Math]

[Maple Math]

[Maple Math]

> ehto;

[Maple Math]

Edelleenkin näyttää jokseenkin kaamealta yhtälöltä. Vaan onpa meillä välineet sen selvittelyyn. Katsotaan ensin, miltä yhtälön vasemman puolen kuvaaja näyttää, jotta saamme käsityksen ratkaisujen olemassaolosta, lukumäärästä ja sijainnista.

> F:=lhs(ehto);

[Maple Math]

> plot(F,y=0..30);

Annamme kuvasta katsomamme karkean likiarvon y=15 numeerisen ratkaisijan lähtöpisteeksi.

> yarvo:=fsolve(ehto,y=15);

[Maple Math]

> syvyys:=R-yarvo;

[Maple Math]

Lopullinen kuva

Piirrämme lopuksi putken ja vedenpinnan oikeilla arvoilla.

> X:=t;Y:=R*cos(theta);Z:=R*sin(theta);x:=t;y:=(R-d)*cos(theta);z:=(R-d)*sin(theta);

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> sisasylinteri:=plot3d([x,y,z],t=-40..40,theta=0..2*Pi,axes=none,grid=[2,50],scaling=constrained,orientation=[20,60],style=patchnogrid,shading=zgreyscale,axes=boxed):ulkosylinteri:=plot3d([X,Y,Z],t=-40..40,theta=0..2*Pi,axes=boxed,grid=[2,50],scaling=constrained,style=patchnogrid,shading=zgreyscale):
vesi:=plot3d(-yarvo,xakseli=-40..40,yakseli=-30..30,shading=zgreyscale,axes=boxed):
display({sisasylinteri,ulkosylinteri,vesi});

Huomaamme, että oikeilla mitoilla varustettuna sylinteri näyttää hyvin ohuelta, niinpä ei olekaan ihme, että se kelluu näin ylhäällä.