численные методы. решение нелинейных уравнений
leahov:
VerZer спасибо, ошибки по синтаксису исчезли. Расчитывает всё кроме combi выдает сразу Данные: a и b неправильные. Вот стал вопрос математики.
VerZer:
хм, а у этого блока есть шанс не сработать? :)
операнды слева и справа от "==" в обоих случаях одинаковы
Код:
if ((f(a)*fd2x(a) == f(a)*fd2x(a)) &&
(f(b)*fd2x(b) == f(b)*fd2x(b)))
{
ShowMessage("Данные: a и b неправильные");
return;
}
leahov:
а как тогда сделать? здесь имелось в виду логическое приравнивание
VerZer:
Код:
if ( (x == x) && (y == y) )
в таком исполнении это не имеет смысла - x и всегда равен x, с игреком аналогично :)
или я чего-то не пойму..
leahov:
смотри как в питоне это реализовано
Код
...
def combined():
data = input('\n\nData (a, b, epsilon): ')
ain, bin, epsilonin = data
a, b, epsilon = float(ain), float(bin), float(epsilonin)
if abs(f(a)*fd2x(a)) == f(a)*fd2x(a) \
and \
abs(f(b)*fd2x(b)) == f(b)*fd2x(b):
print '\nInvalid range'
combined()
else:
x0 = a
t0 = b
if f(x0)*fd2x(x0) > 0:
x0 = b
t0 = a
print('===================================')
go_combined(x0, t0, epsilon, 1)
print('===================================\n\n')
...
то есть как я понял тут идет логическое приравнивание, или я чего то не понял
Навигация