Условие задачи: На дно сферы радиусом R=0.2 м насыпали горсть песка. Определить, где будут находиться песчинки после того, как сферу привели во вращение вокруг вертикальной оси с угловой скоростью w=10*Pi. Коэфициент трения песчинок о дно сферы принять равным m=0,01.
Всё решение задачи сводится к уравнению: 9.8*((sinx+m*cosx)/(cosx-m*sinx))-(w^2)*R*sinx=0.
А в чем, собственно, загвоздка?
Вот решение методом простой дихотомии. Если не разберешься, спрашивай.
const
e = 0.000000001; // precision
R = 0.2;
w = 10*Pi;
m = 0.01;
function f(x:real):real;
begin
f:=9.8*((sin(x)+m*cos(x))/(cos(x)-m*sin(x)))-(w*w)*R*sin(x)
end;
var
x,y,x1,x2: real;
i:integer;
begin
x1:=0;
x2:=Pi/2;
x:=x1;
while x<x2 do begin
WriteLn('x=',x:8:3,' f=',f(x):8:3);
x:=x+0.1
end;
i:=0;
repeat
Inc(i);
x:=(x1+x2)/2;
y:=f(x);
if f(x)*f(x1)>0 then x1:=x else x2:=x
until Abs(y)<e;
WriteLn('Solution: x=',x:12:9,' f(x)=',y:12:9,' iterations: ',i);
ReadLn
end.
Загвоздка заключается в том, что я не могу вычислить угол на который поднимутся песчинки. Зная угол можно очень легко и просто вычислить длину дуги по которой поднимаются песчинки.
Извините, я наверно не правильно выразился. Ситуация такая: я решил задачу по физике и пришёл к уравнению данного вида. Теперь мне необходимо принять полученное выражение за функцию f(x) и найти численное значение х. Осталось лишь произвести арифметическое вычисление, никакой физики. Не вижу разницы между тем, как обозначить неизвестную переменную - х или другой буквой латинского алфавита.