Условие задачи: На дно сферы радиусом R=0.2 м насыпали горсть песка. Определить, где будут находиться песчинки после того, как сферу привели во вращение вокруг вертикальной оси с угловой скоростью w=10*Pi. Коэфициент трения песчинок о дно сферы принять равным m=0,01. Всё решение задачи сводится к уравнению: 9.8*((sinx+m*cosx)/(cosx-m*sinx))-(w^2)*R*sinx=0.
Lapp
23.11.2008 16:48
А в чем, собственно, загвоздка? Вот решение методом простой дихотомии. Если не разберешься, спрашивай.
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.
Добавлено через 1 мин. Я там еще оставил распечатку значений функции с шагом 0.1. Делал для прикидки, чтоб понять общий ход функции, а потом не убрал..
Casatik
23.11.2008 18:42
Загвоздка заключается в том, что я не могу вычислить угол на который поднимутся песчинки. Зная угол можно очень легко и просто вычислить длину дуги по которой поднимаются песчинки.
Lapp
23.11.2008 18:52
Цитата(Casatik @ 23.11.2008 14:42)
Загвоздка заключается в том, что я не могу вычислить угол на который поднимутся песчинки. Зная угол можно очень легко и просто вычислить длину дуги по которой поднимаются песчинки.
Погоди. Это что ли уже физика начинается? Ты попросил решить уравнение, я это сделал. Что еще? Я даже не вникал в физику - ты же сам сказал, что это не нужно. Более того, я даже не знаю, что такое x - угол или еще что-то.. Для меня это просто неизвестная в уравнении.
Этот раздел - Паскаль, Задачи. Если тебе неясны физические стороны процесса - иди в соответствующий раздел.
Casatik
23.11.2008 19:52
Извините, я наверно не правильно выразился. Ситуация такая: я решил задачу по физике и пришёл к уравнению данного вида. Теперь мне необходимо принять полученное выражение за функцию f(x) и найти численное значение х. Осталось лишь произвести арифметическое вычисление, никакой физики. Не вижу разницы между тем, как обозначить неизвестную переменную - х или другой буквой латинского алфавита.
Lapp
23.11.2008 20:03
Цитата(Casatik @ 23.11.2008 15:52)
Теперь мне необходимо принять полученное выражение за функцию f(x) и найти численное значение х.
Ничего не понимаю. Но я же тебе это сделал! Нашел x. Совершенно не понимаю, что ты имеешь в виду.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.