Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Точки пересечения с осью абсцисс
СообщениеДобавлено: 26 дек 2020, 14:36 
Не в сети
Продвинутый
Зарегистрирован:
24 дек 2019, 00:16
Сообщений: 51
Cпасибо сказано: 15
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Доброго времени суток) Помогите, пожалуйста, найти решение.
restart;
with(plots):
tau1:=mu:
H:=beta0:

R2_M:=-(2*lambda)/(beta0^2*psi^2)*ln(1-(beta0*psi*r)/(lambda))-(2*r)/(beta0*psi):
dRdr2_M:=r^2/(R2_M*(lambda-psi*r*H)^2):
I1_M:=dRdr2_M+R2_M/r^2+H^2+psi^2*R2_M+lambda^2:

M:=unapply(Pi*(int(tau1*diff(I1_M,psi)*r, r=0..r0)), lambda, psi, beta0);
mu:=1:
r0:=0.9:

plot(M(1,psi,-0.5), psi=-1.5..1.5, discont=true); #график функции M(psi) при beta0=-0.5

#график функции M(psi) для различных значений beta0 от -0.5 до 0.5 (без beta0=0)
i:=1:
col:=[blue, red, black, green, gray, violet, yellow, brown, gold, pink]:
for x from -0.5 to 0.5 by 0.1 do
if (x<>0) then
gMpsi[i]:=plot(M(1,psi,x),psi=-1.5..1.5, discont=true, thickness=2,color=col[i]);
i:=i+1;
end if:
end do:
K:=i-1:
display([seq(gMpsi[i], i=1..K)]);

Для графиков функции M(psi) нужно найти точки пресечения с осью абсцисс: их численное значение и обозначить эти точки на графике. С помощью solve и fsolve не получилось

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Точки пересечения с осью абсцисс
СообщениеДобавлено: 26 дек 2020, 19:11 
Не в сети
Продвинутый
Зарегистрирован:
14 фев 2020, 10:46
Сообщений: 54
Cпасибо сказано: 6
Спасибо получено:
23 раз в 21 сообщениях
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Нужно использовать fsolve в процедурной форме, например для x=0.3 получаем

fsolve(psi->evalf(M(1,psi,0.3)), -1..1);

-0.4095690078

Считает довольно долго (примерно 2 мин), т.к. на каждой итерации вычисляется численно довольно сложный интеграл. Время вычисления можно уменьшить за счёт уменьшения точности (см. справку fsolve,details ).

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Kitonum "Спасибо" сказали:
Susanna Gaybaryan
 Заголовок сообщения: Re: Точки пересечения с осью абсцисс
СообщениеДобавлено: 29 дек 2020, 10:59 
Не в сети
Продвинутый
Зарегистрирован:
24 дек 2019, 00:16
Сообщений: 51
Cпасибо сказано: 15
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Не могу выполнить, компьютер при каждом выполнении программы зависает.
psi11:=fsolve(psi->evalf(M(0.5,psi,-0.3)), -1.5..1.5);
psi12:=fsolve(psi->evalf(M(0.5,psi,-0.1)), -1.5..1.5);
psi13:=fsolve(psi->evalf(M(0.5,psi,0.1)), -1.5..1.5);
psi14:=fsolve(psi->evalf(M(0.5,psi,0.3)), -1.5..1.5);
psi21:=fsolve(psi->evalf(M(1,psi,-0.3)), -1.5..1.5);
psi22:=fsolve(psi->evalf(M(1,psi,-0.1)), -1.5..1.5);
psi23:=fsolve(psi->evalf(M(1,psi,0.1)), -1.5..1.5);
psi24:=fsolve(psi->evalf(M(1,psi,0.3)), -1.5..1.5);
psi31:=fsolve(psi->evalf(M(1.5,psi,-0.3)), -1.5..1.5);
psi32:=fsolve(psi->evalf(M(1.5,psi,-0.1)), -1.5..1.5);
psi33:=fsolve(psi->evalf(M(1.5,psi,0.1)), -1.5..1.5);
psi34:=fsolve(psi->evalf(M(1.5,psi,0.3)), -1.5..1.5);
psi41:=fsolve(psi->evalf(M(2,psi,-0.3)), -1.5..1.5);
psi42:=fsolve(psi->evalf(M(2,psi,-0.1)), -1.5..1.5);
psi43:=fsolve(psi->evalf(M(2,psi,0.1)), -1.5..1.5);
psi44:=fsolve(psi->evalf(M(2,psi,0.3)), -1.5..1.5);

или
fsolve(psi->evalf(M(2,psi,0.3)), -1.5..1.5);
for x from -0.3 to 0.3 by 0.2 do
for lamb from 0.5 to 2 by 0.5 do
print(fsolve(psi->evalf(M(lamb,psi,x)), -1.5..1.5));
end do:
end do:

Предыдущая часть кода в вопросе
Выполните, пожалуйста, если не сложно)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Точки пересечения с осью абсцисс
СообщениеДобавлено: 30 дек 2020, 10:51 
Не в сети
Продвинутый
Зарегистрирован:
14 фев 2020, 10:46
Сообщений: 54
Cпасибо сказано: 6
Спасибо получено:
23 раз в 21 сообщениях
Очков репутации: 21

Добавить очки репутацииУменьшить очки репутации
Да, по непонятной причине fsolve зависает на ваших примерах. Но хорошо (и очень быстро) работает команда Student:-NumericalAnalysis:-Bisection . Вам только нужно проанализировать все ваши примеры, чтобы под знаком логарифма в подынтегральном выражении не появлялись отрицательные числа (а также нули в знаменателях), иначе сразу появляется сообщение об ошибке. На примере ниже всё OK :

Student:-NumericalAnalysis:-Bisection(evalf(M(2,psi,0.3)), psi=[-1.5,1.5]);
plot(M(2,psi,0.3), psi=-1.5..1.5);

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю Kitonum "Спасибо" сказали:
Susanna Gaybaryan
 Заголовок сообщения: Re: Точки пересечения с осью абсцисс
СообщениеДобавлено: 03 янв 2021, 16:22 
Не в сети
Продвинутый
Зарегистрирован:
24 дек 2019, 00:16
Сообщений: 51
Cпасибо сказано: 15
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Kitonum писал(а):
Да, по непонятной причине fsolve зависает на ваших примерах. Но хорошо (и очень быстро) работает команда Student:-NumericalAnalysis:-Bisection . Вам только нужно проанализировать все ваши примеры, чтобы под знаком логарифма в подынтегральном выражении не появлялись отрицательные числа (а также нули в знаменателях), иначе сразу появляется сообщение об ошибке. На примере ниже всё OK :

Student:-NumericalAnalysis:-Bisection(evalf(M(2,psi,0.3)), psi=[-1.5,1.5]);
plot(M(2,psi,0.3), psi=-1.5..1.5);


Большое спасибо за ответы!!!

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 5 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Точка пересечения касательной с осью абсцисс

в форуме Начала анализа и Другие разделы школьной математики

Kristinadefa

8

1881

06 май 2015, 17:37

Найти координаты точки пересечения с осью Оу касательной

в форуме Аналитическая геометрия и Векторная алгебра

Inessa

4

1872

14 ноя 2011, 21:46

Площадь фигуры ограниченная параболой и осью абсцисс

в форуме Интегральное исчисление

sennikovb

1

1025

17 фев 2013, 01:07

найти координаты точек пересечения с осью Ох

в форуме Пределы числовых последовательностей и функций, Исследования функций

virusha1

11

866

30 ноя 2011, 10:50

Точка пересечения с осью аппликат плоскости

в форуме Аналитическая геометрия и Векторная алгебра

alexander4321

6

1326

15 дек 2012, 21:16

найти тучки пересечения с осью ОУ и при исследовании функции

в форуме Пределы числовых последовательностей и функций, Исследования функций

AySeL

8

352

22 янв 2012, 11:44

Найти длину линии между точками пересечения с осью Ох

в форуме Интегральное исчисление

8m2

6

771

27 мар 2013, 14:07

Через точку пересечения плоскости с осью найти уравнение

в форуме Аналитическая геометрия и Векторная алгебра

Tanya199

9

175

01 июн 2020, 23:15

Точки пересечения

в форуме Аналитическая геометрия и Векторная алгебра

Sweet_blood

1

196

06 май 2014, 11:49

Точки пересечения

в форуме Алгебра

Abbas

3

330

05 янв 2013, 11:40


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2021 MathHelpPlanet.com. All rights reserved