|
Вопрос # 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сця, де призупинилося.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|