Математический форум Math Help Planet
http://mathhelpplanet.com/

Как построить поверхность яйца в MathCad?
http://mathhelpplanet.com/viewtopic.php?f=22&t=40118
Страница 1 из 2

Автор:  Ev_Che [ 06 апр 2015, 15:29 ]
Заголовок сообщения:  Как построить поверхность яйца в MathCad?

В сети есть формула Картера, описывающая форму профиля яйца:
y=+- sqrt (b(0,25-(x^p-0,5)^2)

Как, зная эту формулу, построить яйцо в MathCad?

Автор:  vvvv [ 06 апр 2015, 20:58 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Ev_Che писал(а):
В сети есть формула Картера, описывающая форму профиля яйца:
y=+- sqrt (b(0,25-(x^p-0,5)^2)

Как, зная эту формулу, построить яйцо в MathCad?

Завращайте кривую вокруг оси ОХ и получите яйцо.

Автор:  Avgust [ 06 апр 2015, 23:50 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Ev_Che, в формуле что вы привели, отсутствует равенство скобок.

Автор:  Avgust [ 07 апр 2015, 08:36 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Задача заинтересовала. В инете нашел фотку куриного яйца, скопировал в Paint, координаты верхней части контура выразил через пикселы, перевел в удобный масштаб, получил следующие данные икса и игрека:
0.0389 0
0.0778 0.1556
0.2056 0.3111
0.3667 0.4056
0.4889 0.4389
0.5778 0.4444
0.7833 0.4111
0.9722 0.3278
1.1278 0.1944
1.1889 0.0778
1.2 0


Составил прогу поиска оптимальных параметров для уравнения:

[math]y=\sqrt{a[b-(x^c-d)^2]}[/math]

Текст проги случайного поиска:

open #1,"egg.txt","r"
open #2,"egg0.txt","w"
dim x(15),y(15)
for i=1 to 11
input #1 x(i),y(i)
next i
a0=1:b0=0.5:c0=1:d0=0.5:m=2
z=.01:s1=10^50:nn=20000000
for j=1 to nn
a=a0*(1+z*(ran()-.5))
b=b0*(1+z*(ran()-.5))
c=c0*(1+z*(ran()-.5))
d=d0*(1+z*(ran()-.5))
s=0
for i=1 to 11
x=x(i):y=y(i)
f=sqrt(a*(b-(x^c-d)^m))
s=(f-y)^2+s
next i
if s<=s1 then
ak=a:bk=b:ck=c:dk=d:sk=s:s1=s
a0=a:b0=b:c0=c:d0=d
print a,b,c,d,s
if s<0.001 then z=0.001:fi
fi
next j
print ak,bk ,ck,dk,sk
print #2,ak,bk ,ck,dk,sk

Оптимальные коэффициенты:

[math]a=0.590311\, ; \quad b=0.320996\, ; \quad c=0.922491\, ; \quad d= 0.616596[/math]

Минимум суммы квадратов отклонений : [math]0.000688348[/math]

В итоге получил формулу Александрова для куриного яйца:

[math]y^2=0.2-0.6 \left (x^{0.9}-0.62 \right )^2[/math]

Вот оно: http://www.wolframalpha.com/input/?i=pl ... .62%29%5E2

Изображение

Таким способом можно найти коэффициенты для яиц других видов птиц. Замечательное дело для диссертации!

Автор:  Avgust [ 07 апр 2015, 10:04 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Аппроксимировал другое яйцо: более характерная форма
http://www.wolframalpha.com/input/?i=pl ... D0..1.3%29

Изображение

Теперь ясно: меняя чуть-чуть параметры уравнения, можно искусственно получать различные контуры.

Автор:  Avgust [ 07 апр 2015, 14:24 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Вот какая здравомыслящая идея пришла мне в голову. Если рассуждать, как с эллипсом, то можно опираться на измерения полуосей. Тут три легко измеряемых параметра: [math]a\, , \, b_1 \, , \, b_2[/math]
Но в формуле четыре параметра и каждый влияет на форму яйца. Какой еще можно измерить параметр яйца, чтобы замкнуть задачу? С кривизной, наверное. сложно будет. Может, измерять периметр гибким метром? У кого есть мысли поинтересней?

Изображение

Автор:  Avgust [ 07 апр 2015, 15:56 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

А вот и каноническое уравнение этого яйца:
http://www.wolframalpha.com/input/?i=y% ... 55%5E2%3D1

Ура, товарищи!

Автор:  Avgust [ 08 апр 2015, 13:42 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Ev_Che, я работаю в Maple и обнаружил там блок построения тела вращения. Цепочка доступа такая:
Tools -> Tutors -> Calculus-SingleVariable ->Surface of Revolution.
В появившемся окне ввести функцию (наша верхняя кривая
sqrt(0.18-0.6*(x^0.85-0.6)^2)
которую я максимально упростил), ввести интервал, на котором будет произведено построение, выбрать ось вращения и заполнить табличку с параметрами графика. Когда в превью все будет построено, то нажать кнопку Close, и появится окно графика, который можно поворачивать как угодно мышкой. У меня, к сожалению, график не получился - что-то нарушено в моем Maple.
В Маткаде тоже нечто подобное должно быть.

Автор:  Ev_Che [ 08 апр 2015, 15:15 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Avgust
Вы знаете, мне все таки кажется, что в MathCad каноническое уравнение нужно выразить параметрически.
И только тогда получится построить поверхность. :-(

Автор:  Avgust [ 08 апр 2015, 15:32 ]
Заголовок сообщения:  Re: Как построить поверхность яйца в MathCad?

Ev_Che, нужно просто найти способ построения эллипсоида. Я сделал небольшое открытие: эллипсоид - есть частный случай яйца! Если найти пример создания рисунка эллипсоида, то достаточно только дать дробную степень при иксе - и будет яйцо. Через часик дам здесь трансформацию яйца из эллипса в общем виде.

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/