Przykład nr 1
Środek masy fragmentu jednorodnej linii o równaniu y = (x^2) .
Jest to linia, dla której naturalnym parametrem jest x.
Podamy ogólny wynik dla środka masy tej linii, zakładając, że rozważamy fragment, gdzie  0 < x1 < x < x2.

y=x*x;

dydx=D[y,x]

dldx=Sqrt[1+dydx^2]

Liczę najpierw całki nieoznaczone, a z nich całki oznaczone. Stała gęstość liniowa masy λ=(dm/dl) nie ma wpływu na wynik.

i1=Integrate[dldx,x]

i2=Integrate[x*dldx,x]

i3=Integrate[y*dldx,x]

M=λ*FullSimplify[(i1/.{x-> x2})-(i1/.{x->x1})]

xcm=λ*FullSimplify[((i2/.{x-> x2})-(i2/.{x->x1}))/M]

ycm=λ*FullSimplify[((i3/.{x-> x2})-(i3/.{x->x1}))/M]

Teraz podstawiamy konkretne wartości dla x1 i x2

x1=-1;x2=2;

FullSimplify[M]

N[M]

FullSimplify[xcm]

N[xcm]

FullSimplify[ycm]

N[ycm]

p1=Plot[x*x,{x,-1,2},AxesLabel->{"x","y"},PlotLabel->"y=(x^2)"]

p2=ListPlot[{{xcm,ycm}},PlotMarkers->{Automatic,Small}]

Show[p1,p2]

Przykład nr 2
Środek masy fragmentu jednorodnego okręgu o równaniu ϱ=R=const,  0 < φ < α.
Jest to linia, dla której naturalnym parametrem jest φ.
Podamy ogolny wynik dla srodka masy tej linii, zależny od wartości α. Teraz używamy postaci parametrycznej (fragmentu) okręgu. Moglibyśmy też równie dobrze używać współrzędnych biegunowych.

ClearAll["Global`*"]

x=R*Cos[φ];

y=R*Sin[φ];

dxdφ=D[x,φ]

dydφ=D[y,φ]

dldφ=Simplify[Sqrt[dxdφ^2+dydφ^2],R>0]

Liczę najpierw całki nieoznaczone, a z nich całki oznaczone. Stala gęstość liniowa masy λ=(dm/dl) nie ma wpływu na wynik.

i1=Integrate[dldφ,φ]

i2=Integrate[x*dldφ,φ]

i3=Integrate[y*dldφ,φ]

M=λ*FullSimplify[(i1/.{φ-> α})-(i1/.{φ->0})]

xcm=λ*FullSimplify[((i2/.{φ-> α})-(i2/.{φ->0}))/M]

ycm=λ*FullSimplify[((i3/.{φ-> α})-(i3/.{φ->0}))/M]

Warto sprawdzić najprostszy przypadek: α=2π, czyli cały okrąg. Środek masy pokrywa się z geometrycznym środkiem okręgu.

Simplify[xcm/.{α->2π}]

Simplify[ycm/.{α->2π}]

Teraz mniej trywialny przypadek: R=2 i α=1

α=1; R=2;

FullSimplify[M]

FullSimplify[xcm]

N[xcm]

FullSimplify[ycm]

N[ycm]

p1=PolarPlot[2,{φ,0,1},PlotRange->{{0,2.05},{0,2.05}},AxesLabel->{"x","y"},PlotStyle->Thick]

p2=ListPlot[{{xcm,ycm}},PlotMarkers->{Automatic,Small}]

p3=ListPlot[{{0,0},{2*Cos[1],2*Sin[1]}},Joined->True,PlotStyle->Thin]

Show[p1,p2,p3]

Przykład nr 3a
Środek masy fragmentu jednorodnej spirali o równaniu we współrzędnych biegunowych ϱ=1/(1+φ),  0 < φ < α.
Jest to linia, dla której naturalnym parametrem jest φ. Używam współrzędnych biegunowych, by dostać równania parametryczne x=x(φ) i y=y(φ). Tym razem podanie ogólnego wyniku dla środka masy tej linii, zależnego od wartości α, nie jest możliwe.

ClearAll["Global`*"]

ϱ=1/(1+φ);

x=ϱ*Cos[φ];

y=ϱ*Sin[φ];

dxdφ=D[x,φ]

dydφ=D[y,φ]

dldφ=Simplify[Sqrt[dxdφ^2+dydφ^2],φ>0]

Teraz liczę całki po prostu numerycznie dla jednego α, przyjmując, że λ=1 !

α=12;

M=NIntegrate[dldφ,{φ,0,α}]

xcm=NIntegrate[x*dldφ,{φ,0,α}]/M

ycm=NIntegrate[y*dldφ,{φ,0,α}]/M

p1=ParametricPlot[{x,y},{φ,0,α},AxesLabel->{"x","y"},PlotStyle->Thick,PlotRange->All]

p2=ListPlot[{{xcm,ycm}},PlotMarkers->{Automatic,Small},PlotRange->All]

Show[p1,p2]

Przykład nr 3b
Środek masy fragmentu jednorodnej spirali o równaniu we współrzędnych biegunowych ϱ=1/(1+φ),  0 < φ < α. Tym razem długość krzywej i położenie środka masy liczę bezpośrednio we współrzędnych biegunowych.

ClearAll["Global`*"]

ϱ=1/(1+φ);

dϱdφ=Simplify[D[ϱ,φ]]

dldφ=FullSimplify[Sqrt[dϱdφ^2+ϱ^2],φ>0]

Liczę całki numerycznie dla jednego α, przyjmując, że λ=1 !

α=12;

M=NIntegrate[dldφ,{φ,0,α}]

xcm=NIntegrate[ϱ*Cos[φ]*dldφ,{φ,0,α}]/M

ycm=NIntegrate[ϱ*Sin[φ]*dldφ,{φ,0,α}]/M

p1=PolarPlot[1/(1+φ),{φ,0,α},AxesLabel->{"x","y"},PlotStyle->Thick,PlotRange->All]

p2=ListPlot[{{xcm,ycm}},PlotMarkers->{Automatic,Small},PlotRange->All]

Show[p1,p2]