IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Помогите решить задачу по физие в Pascal, впринципе нужно решить только уравнение
Casatik
сообщение 23.11.2008 10:35
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Условие задачи: На дно сферы радиусом R=0.2 м насыпали горсть песка. Определить, где будут находиться песчинки после того, как сферу привели во вращение вокруг вертикальной оси с угловой скоростью w=10*Pi. Коэфициент трения песчинок о дно сферы принять равным m=0,01.
Всё решение задачи сводится к уравнению: 9.8*((sinx+m*cosx)/(cosx-m*sinx))-(w^2)*R*sinx=0.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 23.11.2008 12:48
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


А в чем, собственно, загвоздка?
Вот решение методом простой дихотомии. Если не разберешься, спрашивай.

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. Делал для прикидки, чтоб понять общий ход функции, а потом не убрал..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"