| 
| 
 | Вопрос # 5 418/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!Я не умею программировать совсем и мне срочно нужна ваша помощь, пожалуйста помогите написать программу если для вас не составит труда.
 Вычислить объём:
 тело образовано вращением вокруг оси Ох фигуры, ограниченной линиями: y=2x-x*x,    y+x-2=0,    x=0
 
 Вычислить объём:
 тело образовано вращением вокруг оси Оу фигуры, ограниченной графиком: y=0, y=1, x=0.5, y= корень(x-1)
 
 Очень вас прошу, помогите пожалуйста =)
 
|  |   Вопрос задала: Lena Shatrova (статус: Посетитель)Вопрос отправлен: 16 июня 2011, 17:52
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Толяныч Здравствуйте, Lena Shatrova!
 Что-то нет желающих. Да и зачем - сессия-то, нверное, уже позади ?
 Не студентов ради, а истины для :
 Можно решить методом Монте-Карло. В параллелепипед со сторонами 2, 1 и 1 бросаем точку, координаты которой равномерно распределены на интервале (0..2),(0..1) и (0..1) соответственно.
 Подсчитываем счисло точек, попавших в заданное условие, делим на число реализаций и затем умножаем на объем параллелепипеда ( App.1)
 Приложение:Переключить в обычный режим {code}var  Form1: TForm1  ;  I,N4,Np : Int64 ;  V : double ;implementation {$R *.dfm}   procedure TForm1.FormClick(Sender: TObject);var ix,iy : integer ;x,y,z,r,r1,r2 : double ;begin   Memo1.Lines.Add( 'B') ; N4 := 0 ; Np := 0 ;   for ix := 1 to 10000000 do     begin        x := Random ; y := Random * 2.0 ; z := Random * 2 ;        r := Sqrt (z*z+ y*y) ;        if (r >= (x * (2.0-x))) and (r < (2.0-x)) then Inc(N4) ;        if (r <= (x * (2.0-x)) )  then Inc(Np) ;     end ;   Memo1.Lines.Add( Format('%d %d',[N4,Np]) ) ;   x := N4 * 0.0000016 ;   Memo1.Lines.Add( Format('%12.8f',[x]) ) ;end ; end.{/code} 
|  | Ответ отправил: Толяныч (статус: 4-ый класс)Время отправки: 20 июня 2011, 14:59
 Оценка за ответ: 5
 Комментарий к оценке: спасибо! |  
 Мини-форум вопросаВсего сообщений: 11; последнее сообщение — 21 июня 2011, 00:39; участников в обсуждении: 5. 
|   | min@y™ (статус: Доктор наук), 16 июня 2011, 18:59 [#1]:А по каким формулам вычисляются объёмы данных фигур? Тут попахивает двойными интегралами. Программировать ты не умеешь, а как на счёт математики-то? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Lena Shatrova (статус: Посетитель), 16 июня 2011, 19:15 [#2]:с математикой у меня всё нормально, только с интегралами не очень, у меня есть программа, которая считает эти объёмы, но не мои значения, я не знаю как там исправить, так как она написана не мной и я её не понимаю. |  
|   | Егор (статус: 10-ый класс), 16 июня 2011, 19:35 [#3]:пива поставишь?  я решу. не впервой   Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | Lena Shatrova (статус: Посетитель), 16 июня 2011, 19:44 [#4]:насчёт пива это ты серьёзно?   |  16 июня 2011, 21:05: Вопрос перемещён из тематического раздела Delphi » Прочее в раздел Лабораторный практикум » Delphi модератором Ерёмин А.А. 
|   | Lena Shatrova (статус: Посетитель), 17 июня 2011, 05:14 [#5]:Толяныч: я интегралы последний раз решала года 2 назад, и сейчас вспоминая их у меня возникают трудности. |  
|   | min@y™ (статус: Доктор наук), 17 июня 2011, 08:19 [#6]: Цитата (Lena Shatrova): я интегралы последний раз решала года 2 назад, и сейчас вспоминая их у меня возникают трудности.  А я решал интегралы в 1997 году. И сейчас, вспоминая их, я понимаю, что они мне в жизни так и не пригодились.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | bugmenot (статус: 3-ий класс), 17 июня 2011, 10:16 [#7]: Цитата (Толяныч): я вожу машину хорошо, но только по прямой, и чтоб светофоров не было Поезд монорельсовой дороги подходит =)
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | Толяныч (статус: 4-ый класс), 20 июня 2011, 15:06 [#8]:Но такой экзотичный вариант покажется преподу подозрительным. Поэтому более тривиальное : из объема усеченного конуса вычитаем объем параболоида вращения. 
 фрагмент кода
 
 Результаты :
 
 1-й способ ( взято несколько реализаций )
 5,65614880
 5,65644000
 5,65639360
 5,65419680
 
 2-й способ
 4 5,698227 5,6982273001
 8 5,665758 -0,0324692600
 16 5,657593 -0,0081652519
 32 5,655548 -0,0020443090
 64 5,655037 -0,0005112645
 128 5,654909 -0,0001278278
 256 5,654877 -0,0000319577
 512 5,654869 -0,0000079895
 1024 5,654867 -0,0000019974
 2048 5,654867 -0,0000004993
 
 Как видно, метод Монте-Карло дает величины с разбросом, что и понятно - метод-то вероятностный.
 Набирая достаточное число реализаций и усредняя, можем получить приемлемую точность.
 
 Второй вариант решается абсолютно так же, только там надо отдельно посчитать объем цилиндра, а потом из него "вырезать объем" параболоида.
 |  
|   | Lena Shatrova (статус: Посетитель), 20 июня 2011, 17:17 [#9]:Сессию я уже сдала, у меня в данный момент проходит практика. Спасибо вам огромное за программу, я взяла второй способ. |  
|   | Толяныч (статус: 4-ый класс), 21 июня 2011, 00:16 [#10]:А отметку 5 мне Пушкин поставит ? |  
|   | bugmenot (статус: 3-ий класс), 21 июня 2011, 00:39 [#11]:Утром оценка - вечером ответ; вечером оценка - утром ответ. виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |