Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2015, 22:10   #1
craSu
Новичок
Джуниор
 
Регистрация: 25.03.2015
Сообщений: 3
Хорошо Fortran, решение нелинейного

Надо решить нелинейное уравнение 0,5^x-(x+2)^2=3
Пробовала методом Ньютона (касательных)
но не выходит, спасибо заранее



module mod
implicit none
contains
function prsv(x) result(prF)
integer, intent(in) :: x !input
integer :: prF !output
prF=(0.5**x)*log(0.5)-2x-4
return
end function prsv

function func(x) result(F)
integer, intent(in) :: x !input
integer :: F ! output
F=(0.5**x)-(x+2)**2-3
return
end function func

end module mod

program nelin
use mod
integer :: x
! integer :: func, prsv
integer :: x1, x2, eps, n

eps=0.0001
x1=0.5
n=0
if ((abs(x2-x1)<eps).or.(abs(func(x1))<eps)) then
x2=x1-func(x1)/prsv(x1)
n=n+1
else
print*,x2,n
end if
craSu вне форума Ответить с цитированием
Старый 25.03.2015, 23:15   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Метод касательных не всегда сходится.
Попробуйте метод бисекций ( половинного деления) , он более всеядный.
Или нужно именно секущих ?
type_Oleg вне форума Ответить с цитированием
Старый 26.03.2015, 22:44   #3
craSu
Новичок
Джуниор
 
Регистрация: 25.03.2015
Сообщений: 3
По умолчанию

Допускается использование метод касательных, метод бисекции, метод хорд, метод простых итераций (если что-то не забыла).
Какой тогда может будет проще в реализации?
craSu вне форума Ответить с цитированием
Старый 26.03.2015, 22:45   #4
craSu
Новичок
Джуниор
 
Регистрация: 25.03.2015
Сообщений: 3
По умолчанию

да, допускается.
тогда попробую
craSu вне форума Ответить с цитированием
Старый 26.03.2015, 23:01   #5
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Да, лучше бисекций.
Посмотрите про https://Метод Ньютона - для него условия применения аж целый академик и нобелевский лауреат Канторович вычисил.

А для бисекций каких-то особых требований к функции нет.
type_Oleg вне форума Ответить с цитированием
Старый 27.03.2015, 22:09   #6
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Простите, а почему x и функции - типа integer ?!
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение нелинейного уравнения stuxjkee Помощь студентам 4 18.04.2014 17:37
Решение нелинейного уравнения Medioon Помощь студентам 1 12.06.2011 13:25
Решение нелинейного уравнения на С++ Влад09 Общие вопросы C/C++ 0 05.12.2010 22:21
Проблема с нахождением корня нелинейного уравнения (Fortran 77) reafantu Помощь студентам 7 03.03.2010 19:42