в среде это g будет, естественно, меньше, так как на шарик действует выталкивающая сила.
найдём это g.
по 2 закону ньютона f = p-fa = pш*v*g0 - рс*v*g0=v*g0*(pш-рс)=m*g = pш*v*g
откуда g = g0*(1-pc/pш)
я использовал обозначения
g0 - стандартное ускорение свободного падения
рш - плотность шарика
рс - плотность среды
v - объём шарика.
то, что я написал, это просто закон архимеда, не более того. а закон ньютона - как скобки.
подставим в исходную формулу, получим
t = 2pi*sqrt(l/g0*(1-pc/pш))
подставим исходные данные
t = 2*pi*sqrt(0.1/g0*(1-1/1.2)) =2*pi*sqrt(6/(10*g0))=2*pi*sqrt(3/(5*g0)) = 2*3.14159*sqrt(3/(5*9.81)) = 1.556c = 1.56c
замечание1. в приближённых вычислениях часто принимают во внимание тот факт, что g = pi^2 c хорошей точностью. это значительно вычисления.
в нашем случае сразу получаем
t = 2*pi*sqrt(l/(g0*(1-1/1. = 2*sqrt(0.1*1.2/0.2) = 2*sqrt(0.6)=1.55 = 1.55c
то есть совпадение до сотых! а вычислять проще.
замечание2 это соотношение действительно только в системе си и его не сложно "доказать". нужно только вспомнить, что такое метр, когда его вводили при наполеоне.
вот вроде и всё.
хотя нет. попробуй исследовать полученную формулу. а что если плотность среды выше плотности шарика?
ну и последнее. при таких плотностях среды(сравнимых с плотностью шарика) пренебрегать сопротивлением среды - рискованно, это сопротивление, как правило, большое и существенно влияет на поведение маятника.
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
function NewMatrix(n:integer):array[,] of integer; begin Result:=MatrRandom(n,n,-50,50); Result.Println(4); Writeln(4*n*'-') end;
function KS(a:array[,] of integer):(integer,integer); begin var (k,s,n):=(0,0,a.RowCount-1); for var i:=0 to n-1 do for var j:=i+1 to n do if a[i,j]<0 then (k,s):=(k+1,s+a[i,j]); Result:=(k,s) end;
begin var d:=NewMatrix(8); var (l,c):=KS(d); var t:=NewMatrix(10); var (n,a):=KS(t); var q:=NewMatrix(7); var (m,b):=KS(q); Writeln($'l={l}, c={c}, n={n}, a={a}, m={m}, b={b}'); var (lp,rp):=(c/n+b/l,a/m); Writeln($'c/n+b/l={lp}{lp=rp?'' = '':'' <> ''}{rp}'); end.
t = 2pi*sqrt(l/g)
в среде это g будет, естественно, меньше, так как на шарик действует выталкивающая сила.
найдём это g.
по 2 закону ньютона f = p-fa = pш*v*g0 - рс*v*g0=v*g0*(pш-рс)=m*g = pш*v*g
откуда g = g0*(1-pc/pш)
я использовал обозначения
g0 - стандартное ускорение свободного падения
рш - плотность шарика
рс - плотность среды
v - объём шарика.
то, что я написал, это просто закон архимеда, не более того. а закон ньютона - как скобки.
подставим в исходную формулу, получим
t = 2pi*sqrt(l/g0*(1-pc/pш))
подставим исходные данные
t = 2*pi*sqrt(0.1/g0*(1-1/1.2)) =2*pi*sqrt(6/(10*g0))=2*pi*sqrt(3/(5*g0)) = 2*3.14159*sqrt(3/(5*9.81)) = 1.556c = 1.56c
замечание1. в приближённых вычислениях часто принимают во внимание тот факт, что g = pi^2 c хорошей точностью. это значительно вычисления.
в нашем случае сразу получаем
t = 2*pi*sqrt(l/(g0*(1-1/1. = 2*sqrt(0.1*1.2/0.2) = 2*sqrt(0.6)=1.55 = 1.55c
то есть совпадение до сотых! а вычислять проще.
замечание2 это соотношение действительно только в системе си и его не сложно "доказать". нужно только вспомнить, что такое метр, когда его вводили при наполеоне.
вот вроде и всё.
хотя нет. попробуй исследовать полученную формулу. а что если плотность среды выше плотности шарика?
(подсказка - маятник перевернётся "вверх ногами").
ну и последнее. при таких плотностях среды(сравнимых с плотностью шарика) пренебрегать сопротивлением среды - рискованно, это сопротивление, как правило, большое и существенно влияет на поведение маятника.
Внимание! Если программа не работает, обновите версию!
function NewMatrix(n:integer):array[,] of integer;
begin
Result:=MatrRandom(n,n,-50,50);
Result.Println(4); Writeln(4*n*'-')
end;
function KS(a:array[,] of integer):(integer,integer);
begin
var (k,s,n):=(0,0,a.RowCount-1);
for var i:=0 to n-1 do
for var j:=i+1 to n do
if a[i,j]<0 then (k,s):=(k+1,s+a[i,j]);
Result:=(k,s)
end;
begin
var d:=NewMatrix(8);
var (l,c):=KS(d);
var t:=NewMatrix(10);
var (n,a):=KS(t);
var q:=NewMatrix(7);
var (m,b):=KS(q);
Writeln($'l={l}, c={c}, n={n}, a={a}, m={m}, b={b}');
var (lp,rp):=(c/n+b/l,a/m);
Writeln($'c/n+b/l={lp}{lp=rp?'' = '':'' <> ''}{rp}');
end.
Пример
-25 12 43 -8 -15 15 -30 23
7 49 50 4 38 -37 46 44
17 21 -37 20 13 -27 -19 -20
0 -50 -12 -37 23 -33 16 -37
-43 -6 -35 30 27 11 48 12
3 15 -8 -25 -38 -47 23 34
-49 23 -27 -27 -28 -13 -17 -49
-20 13 42 -16 -24 -43 -50 -10
--------------------------------
-17 36 -4 -6 48 -34 -33 -44 23 2
-34 48 32 -45 -32 -3 -22 4 -39 -50
44 -8 42 20 -39 -36 -1 -36 20 14
-15 -5 15 -48 43 -24 7 -21 37 36
5 -33 1 20 -30 -15 -31 -26 -5 -6
-44 22 46 -50 -4 41 45 26 -17 33
17 -47 -14 -42 -33 22 -17 30 -37 42
40 49 18 -24 -5 27 42 -29 0 26
46 -26 20 -25 7 13 -1 15 6 -48
-18 31 46 -47 -32 2 31 -8 3 -1
----------------------------------------
-48 -11 -39 3 5 -43 -46
20 5 19 50 23 -24 7
38 -7 -16 -39 2 4 -28
19 -27 -39 9 -42 -47 15
-43 43 47 -1 19 -50 24
6 -38 -34 21 0 9 30
-41 38 -48 9 5 -12 -35
----------------------------
l=10, c=-275, n=25, a=-654, m=10, b=-369
c/n+b/l=-47.9 <> -65.4