22.07.2017, 03:41 [+3 UTC]
в нашей команде: 2 065 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
21.07.2017, 11:30

Последний вопрос:
20.07.2017, 15:47

Последний ответ:
21.07.2017, 15:17

Последняя рассылка:
21.07.2017, 15:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
03.06.2010, 06:21 »
Amfisat
Четко, ясно, с расстановкой ... ))) [вопрос № 178788, ответ № 261826]

РАЗДЕЛ • Математика

Консультации и решение задач по алгебре, геометрии, анализу, дискретной математике.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Гордиенко Андрей Владимирович
Статус: Модератор
Рейтинг: 2976
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 295
Megaloman
Статус: Академик
Рейтинг: 154

Перейти к консультации №:
 

Консультация онлайн # 190706
Раздел: • Математика
Автор вопроса: SAW (4-й класс)
Отправлена: 16.03.2017, 08:52
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Я неплохо разбираюсь в математике, но испытываю трудности с геометрией и возникла такая задача, которая вроде простая, но сам сообразить не могу.

Дано:
У нас есть плоскость координат XY, на этой плоскости проведен отрезок, который никогда не является строго вертикальным или строго горизонтальным, всегда имеет определенный угол к осям координат.
Так же у нас есть несколько точек которые входят в область отрезка по оси Х и могут быть как выше отрезка так и ниже его.
Нам известны только координаты крайних точек отрезка (А и В) и координаты каждой точки.

Что нужно:
Нужно определить какие точки лежат выше отрезка, а какие ниже. По сути нужно просто математическая формула и все.

Дополнительно:
Больше не знаю какую еще информацию можно дать, спрашивайте, если что.

Картинка:

Состояние: Консультация закрыта

Здравствуйте, SAW!

Если заданы точки и требуется установить, расположена ли точка абсцисса которой не меньше меньшей и не больше большей из абсцисс первых двух точек, выше или ниже отрезка то при


точка расположена выше отрезка при

точка расположена ниже отрезка


Консультировал: Гордиенко Андрей Владимирович (Модератор)
Дата отправки: 26.03.2017, 06:41

5
нет комментария
-----
Дата оценки: 26.03.2017, 06:47

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 190706

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 1

= общий = | 16.03.2017, 09:00 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Зная координаты концов отрезка, можно вывести уравнение прямой, частью которой является этот отрезок, в виде уравнения с угловым коэффициентом y=kx+l. Как я понимаю, координаты (X, Y) точек плоскости, которые расположены выше этой прямой, удовлетворяют неравенству Y>kX+l, а координаты точек, которые расположены ниже этой прямой, удовлетворяют неравенству Y<kX+l. Попробуйте проверить.

=====
Facta loquuntur.

• Отредактировал: Гордиенко Андрей Владимирович (Модератор)
• Дата редактирования: 16.03.2017, 09:01

SAW
4-й класс

ID: 400526

# 2

 +1 
 
= общий = | 16.03.2017, 09:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Гордиенко Андрей Владимирович
Зная координаты концов отрезка, можно вывести уравнение прямой, частью которой является этот отрезок, в виде уравнения с угловым коэффициентом y=kx+l. Как я понимаю, координаты (X, Y) точек плоскости, которые расположены выше этой прямой, удовлетворяют неравенству Y>kX+l, а координаты точек, которые расположены ниже этой прямой, удовлетворяют неравенству Y<kX+l. Попробуйте проверить.


Спасибо! Вроде сообразил как получить линейное уравнение и из него получается то, что вы написали Y>kX+l и Y<kX+l.

Сейчас сразу начну использовать, посмотрим, что из этого выйдет.

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 3

= общий = | 16.03.2017, 09:34 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Сообщите, пожалуйста, что у Вас получится.

=====
Facta loquuntur.

Megaloman
Академик

ID: 137394

# 4

= общий = | 16.03.2017, 10:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Имеем А(x1,y1), B(x2,y2)
Для любого х,y на этой прямой (х-х1)/(х2-х1)=(y-y1)/(y2-y1)
y=y1+(х-х1)(y2-y1)/(х2-х1)
Для точки имеем T(X,Y)
Подставим X в уравнение, и если Y>y то точка выше прямой, иначе - ниже

=====
Нет времени на медленные танцы

SAW
4-й класс

ID: 400526

# 5

 +1 
 
= общий = | 16.03.2017, 10:42 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Гордиенко Андрей Владимирович
Сообщите, пожалуйста, что у Вас получится.

Уже отправил для проверки. Если все ОК, то еще сам потом перепроверю для убедительности и скину результат.

SAW
4-й класс

ID: 400526

# 6

= общий = | 16.03.2017, 10:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Megaloman
Имеем А(x1,y1), B(x2,y2)
Для любого х,y на этой прямой (х-х1)/(х2-х1)=(y-y1)/(y2-y1)
y=y1+(х-х1)(y2-y1)/(х2-х1)

У меня немного другая формула получилась, но смысл вроде тот же. Жду результатов проверки.

Megaloman
Академик

ID: 137394

# 7

= общий = | 16.03.2017, 10:47 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

© Цитата:
У меня немного другая формула получилась, но смысл вроде тот же. Жду результатов проверки.
Формулу в студию, пожалуйста.

=====
Нет времени на медленные танцы

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 8

 -1 
 
= общий = | 16.03.2017, 10:48 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Megaloman:

Я не хочу лишать автора вопроса шанса вывести формулу самостоятельно. А дебатов в этом мини-форуме нет. Если только Вы не станете их организовывать. smile

=====
Facta loquuntur.

SAW
4-й класс

ID: 400526

# 9

= общий = | 16.03.2017, 11:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Проверяющий сказал, что свяжется со мной только завтра. Напишу, всю информацию, когда проблема на 100% будет решена. Всем спасибо!

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 10

= общий = | 16.03.2017, 11:28 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Что ж, успехов Вам! Будем надеяться, что Вы правильно вывели уравнение прямой. До завтра! smile

=====
Facta loquuntur.

SAW
4-й класс

ID: 400526

# 11

= общий = | 17.03.2017, 09:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Добрый день! Получил первые результаты проверки.
Пока все работает не так как задумывалось, где-то работает, где-то нет, конечно это моя ошибка, но пока не понял где, поэтому выкладываю свои расчеты.

Описание:
ось X - время (time)
ось Y - цена (price)


Отталкиваясь от этой формулы
y = kx + b

получаю вот это
price = k*time + b

отсюда выражаю "b"
b = price - k*time

из этого получаем систему уравнений
b = price1 - k*time1
b = price2 - k*time2


далее преобразование и выражаем "k"
price1 - k*time1 = price2 - k*time2
k*time2 - k*time1 = price2 - price1
k*(time2 - time1) = price2 - price1
k = (price2 - price1) / (time2 - time1)


После этого мы можем посчитать "b" и "k", после чего я получаю координату Y (price) на нашем отрезке (Line)
priceLine = k*timePoint + b;

и сравниваю ее с координатой (ценой) точки (Point) из чего становится понятно, точка лежит выше или ниже отрезка.

Если не сложно посмотрите, может я где накосячил и расчет получился не правильный, если нет, то ошибка у меня в другом.

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 12

= общий = | 17.03.2017, 09:46 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Я в программировании не разбираюсь, поэтому помочь Вам с кодом не могу. Возможно, это сделает уважаемый Megaloman. Но мне хотелось бы увидеть формулу, которую Вы получили для решения задачи. Я писал о ней в своём первом сообщении этого мини-форума.

=====
Facta loquuntur.

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 13

= общий = | 17.03.2017, 10:43 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Приведенные расчеты правильные.
Может ошибка в подстановке конкретных значений? Мало ли?

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 14

= общий = | 17.03.2017, 11:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Почему-то Вы игнорируете мою просьбу показать формулу, которую Вы вывели... smile

У меня получилось, что если заданы точки и требуется установить, расположена ли точка выше или ниже прямой то при


точка расположена выше прямой при

точка расположена ниже прямой

=====
Facta loquuntur.

SAW
4-й класс

ID: 400526

# 15

= общий = | 17.03.2017, 11:56 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Гордиенко Андрей Владимирович
Почему-то Вы игнорируете мою просьбу показать формулу, которую Вы вывели... smile

Я не игнорирую, просто вы сильно торопитесь, у меня свет на пару часов отключали... )))

Мне тяжело сообразить в ваших формулах, но я объясню как я сделал.
Формулой:
priceLine = k*timePoint + b;
Я получаю координату Y для линии, а координату Х я беру равной координате X проверяемой точки.
Когда я получаю Y-линии, то я могу сравнить ее с Y-точки и узнать что выше, заранее зная, что координата X у них равны.

Я просто не стал дописывать, а Вы наверно именно это и имели ввиду.
После последней формулы я делаю проверку:
pricePoint >= priceLine
(если точка выше или лежит на линии)
И выполняю соот. действие...
Так понятнее или нет? )))

© Цитата: Лысков Игорь Витальевич
Приведенные расчеты правильные.
Может ошибка в подстановке конкретных значений? Мало ли?

Спасибо! Мне главное убедиться, что они правильные, буду искать ошибку в другом, хотя я подозреваю, что ошибка тут в голове проверяющего, он этим часто грешит! )))

• Отредактировал: SAW (4-й класс)
• Дата редактирования: 17.03.2017, 11:57

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 16

= общий = | 17.03.2017, 14:57 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

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

© Цитата: SAW
k = (price2 - price1) / (time2 - time1)

Это правильно.

А как Вы вычисляете свободный член ?

=====
Facta loquuntur.

SAW
4-й класс

ID: 400526

# 17

= общий = | 17.03.2017, 15:54 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Гордиенко Андрей Владимирович
А как Вы вычисляете свободный член ?

Просто "k" в начальную формулу подставил и все.
k = (price2 - price1) / (time2 - time1);
b = price1 - k*time1;

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 18

 +1 
 
= общий = | 17.03.2017, 16:03 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Мне трудно читать и понимать написанное не в виде привычных формул. Поэтому я остановлюсь на том, чем смог Вам посодействовать... smile

=====
Facta loquuntur.

Megaloman
Академик

ID: 137394

# 19

 +1 
 
= общий = | 17.03.2017, 16:40 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Мы должны быть сами себе проверяющими, если правильно понимаем задачу.
Зенченко Константин Николаевич по другому поводу привёл полезный пример. Повторюсь: имеем координаты двух крайних точек прямой
и
тогда:

Для точки имеем:

Так как я, как всем известно, и я этого не скрываю, склонен ошибаться, то проверим:
Пусть

тогда

тогда

То есть элементарная проверка проходит успешно.
Не берусь вчитываться в вашу формулу, попробуйте сами, такая проверка у Вас проходит?

Ставим реальные X точки в уравнение, и и если Y>y то точка выше прямой, иначе - ниже
Вот я Вам наваял простейший vbs-скрипт для проверки

time1 = 1
time2 = 365

price1 = 10
price2 = 3650
    
Answer = "      Исходные данные прямой:"
Answer = Answer + vbCrLf + "time1= " + CStr(time1)
Answer = Answer + vbCrLf + "time2= " + CStr(time2)
Answer = Answer + vbCrLf + "price1= " + CStr(price1)
Answer = Answer + vbCrLf + "price2= " + CStr(price2)
Answer = Answer + vbCrLf


Do
    Ttime = InputBox(Answer + vbCrLf + "Ведите координату Ttime точки")
    If Ttime = "" Then Exit Do
    Ttime = CDbl(Replace(Ttime, ".", ","))
    
    Answer1 = Answer + vbCrLf + "      Исходные данные точки:"
    Answer1 = Answer1 + vbCrLf + "Ttime= " + CStr(Ttime)
    
    Tprice = InputBox(Answer1 + vbCrLf + "Введите координату Tprice точки")
    If Tprice = "" Then Exit Do
    Tprice = CDbl(Replace(Tprice, ".", ","))
    
    Price = price1 + (Ttime - time1) * (price2 - price1) / (time2 - time1)
    
    Answer1 = Answer1 + vbCrLf + "Tprice= " + CStr(Tprice)
    Answer1 = Answer1 + vbCrLf
    Answer1 = Answer1 + vbCrLf + "      Ответ:"
    Answer1 = Answer1 + vbCrLf + "Для точки на прямой Ttime= " + CStr(Ttime)
    Answer1 = Answer1 + vbCrLf + "                                        Price= " + CStr(Price)
    
    If Tprice = Price Then Znak = "="
    If Tprice < Price Then Znak = "<"
    If Tprice > Price Then Znak = ">"
    
    Answer1 = Answer1 + vbCrLf + "Tprice=" + CStr(Tprice) + Znak + "Price=" + CStr(Price)
    MsgBox Answer1
Loop
Сохраните код, например, блокнотом с расширением .vbs и запустите на выполнение, для этого в систему ничего доустанавливать не нужно.
Можете сами изменить исходные данные, формула работает.
Она в одну строчку
Price = price1 + (Ttime - time1) * (price2 - price1) / (time2 - time1)
Всё остальное - ввод-вывод
Ваши выкладки тяжело читать. Мне привычней терминология x,y В чём загвоздка обозначить:






А вот в программах там уже по готовым формулам можно писать всё что нравится.

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 17.03.2017, 17:12

Megaloman
Академик

ID: 137394

# 20

= общий = | 17.03.2017, 16:59 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

На всякий случай прикрепляю скрипт, переименуйте его в файл с расширением .vbs

=====
Нет времени на медленные танцы

-----
 Прикрепленный файл:  скачать (TXT) » [1.4 кб]

Megaloman
Академик

ID: 137394

# 21

= общий = | 17.03.2017, 17:09 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Можно, наверное, это изобразить в Excel графиками, но не чувствую моральных сил продолжать, не понимая, зачем это всё нужно.

=====
Нет времени на медленные танцы

SAW
4-й класс

ID: 400526

# 22

= общий = | 20.03.2017, 06:54 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Megaloman

Спасибо вам огромное, что вы заморочились так подробно все расписали, мне на самом деле хватило того, что было до этого. Сейчас мне нужно найти совсем другие ошибки решить другие проблемы, которые к теме конкретно этого вопроса уже отношения не имеет.

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 23

= общий = | 25.03.2017, 10:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Какова судьба Вашей задачи?
Другие ошибки найдены?

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

SAW
4-й класс

ID: 400526

# 24

= общий = | 25.03.2017, 17:38 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Лысков Игорь Витальевич
Какова судьба Вашей задачи?
Другие ошибки найдены?

Пока по неизвестной мне причине, программа в некоторых местах считает не правильно, хотя я подозревая, что это особенность платформы.
Конкретнее не могу объяснить, слишком сложно... )))

Megaloman
Академик

ID: 137394

# 25

= общий = | 25.03.2017, 17:56 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

© Цитата:
программа в некоторых местах считает не правильно,
Надеюсь, Ваша программа, не моя? smile Если моя, то при каких данных? Моё твёрдое убеждение, ищи у себя а не на платформе.

=====
Нет времени на медленные танцы

SAW
4-й класс

ID: 400526

# 26

= общий = | 26.03.2017, 05:20 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Megaloman
Надеюсь, Ваша программа, не моя? smile Если моя, то при каких данных? Моё твёрдое убеждение, ищи у себя а не на платформе.

Постараюсь, конечно сначала у себя ошибку поискать, а потом проверить результаты расчетов вручную...

SAW
4-й класс

ID: 400526

# 27

= общий = | 26.03.2017, 05:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Если успею, то отпишу сюда в форум о результатах ручной проверки, но это может быть не скоро.
А когда консультация закроется в этот форум можно будет дальше писать? Если да, то обязательно напишу...

SAW
4-й класс

ID: 400526

# 28

= общий = | 26.03.2017, 06:16 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Результаты ручной проверки ничего не дали, так как получаются слишком большие числа, на калькуляторе посчитать невозможно.
Пробовал сделать расчеты с помощью самой платформы, но вместо нормальных чисел с плавающей точкой, он мне выдает что-то типа: "1е-08"

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 29

= общий = | 26.03.2017, 07:55 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:


В записанном Вами коде предусмотрена проверка того, что абсцисса точки не меньше меньшей и не больше большей из абсцисс точек и ?

© Цитата: SAW
Пробовал сделать расчеты с помощью самой платформы, но вместо нормальных чисел с плавающей точкой, он мне выдает что-то типа: "1е-08"

"Он" выдал Вам число

=====
Facta loquuntur.

SAW
4-й класс

ID: 400526

# 30

= общий = | 26.03.2017, 08:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Гордиенко Андрей Владимирович
В записанном Вами коде предусмотрена проверка того, что абсцисса точки не меньше меньшей и не больше большей из абсцисс точек и ?

Да.

© Цитата: Гордиенко Андрей Владимирович
"Он" выдал Вам число

Это я понял, только похоже он сам не хочет с этими числами правильно работать, формула то простая...

• Отредактировал: SAW (4-й класс)
• Дата редактирования: 26.03.2017, 08:32

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 31

= общий = | 26.03.2017, 08:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

© Цитата: SAW
Это я понял, только похоже он сам не хочет с этими числами правильно работать, формула то простая...

Я думаю, что есть специалисты, знающие язык программирования используемой Вами платформы и могущие Вам помочь. Посмотрите, есть ли на нашем портале соответствующий раздел, и задайте вопрос туда. Если такого раздела нет, то попробуйте обратиться за помощью на форумы программистов в Интернете.

=====
Facta loquuntur.

SAW
4-й класс

ID: 400526

# 32

= общий = | 26.03.2017, 09:15 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Гордиенко Андрей Владимирович
Я думаю, что есть специалисты, знающие язык программирования используемой Вами платформы и могущие Вам помочь. Посмотрите, есть ли на нашем портале соответствующий раздел, и задайте вопрос туда. Если такого раздела нет, то попробуйте обратиться за помощью на форумы программистов в Интернете.

Это понятно, теперь мне путь только туда остался, но я уже давно подозревал, что платформа слишком ограниченная, а разработчики особо не шевелятся, чтобы это исправить, сначала года уже решил сменить квалификацию.

Спасибо еще раз!

Megaloman
Академик

ID: 137394

# 33

= общий = | 26.03.2017, 09:31 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

это непрофессиональный подход. Есть, с Вашей точки зрения, ошибка. Не надо рассуждать, надо искать её. Посчитать вручную? Это ведь не эпоха логарифмической линейки, есть Excel.
А в программе, уверен, какая бы платформа ни была, возможно разбить формулу на части, организовать отображение промежуточных результатов. Ошибку надо локализовать, а не рассуждать о платформе. Изнываю от любопытства, о чём идёт речь?

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 26.03.2017, 09:33

SAW
4-й класс

ID: 400526

# 34

= общий = | 26.03.2017, 11:37 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Megaloman
Посчитать вручную? Это ведь не эпоха логарифмической линейки, есть Excel.

Да там считать не так много, но попробую и в Excel.

© Цитата: Megaloman
возможно разбить формулу на части, организовать отображение промежуточных результатов. Ошибку надо локализовать

Сейчас обратился на форум, если не помогут, то попробую этот способ, в принципе должно сработать. Спасибо!

• Отредактировал: SAW (4-й класс)
• Дата редактирования: 26.03.2017, 11:37

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 35

= общий = | 26.03.2017, 11:53 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

© Цитата: Megaloman
Изнываю от любопытства, о чём идёт речь?
Ага, поделитесь же, наконец, что за платформа такая...
© Цитата: SAW
А когда консультация закроется в этот форум можно будет дальше писать?
Можно. По теме данного вопроса пишите, сколько Вам захочется. smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Megaloman
Академик

ID: 137394

# 36

= общий = | 26.03.2017, 16:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Гордиенко Андрей Владимирович:

© Цитата:
В записанном Вами коде предусмотрена проверка того, что абсцисса точки не меньше меньшей и не больше большей из абсцисс точек и ?
Позвольте с Вами не согласиться. Совершенно неважно, где находится точка, у уравнения пямой нет такого ограничения. Не важно, в каком виде записано уравнение (если оно, конечно правильн записано). Для уравнения прямой, проведенной через две точки, важно чтобы x1<>x2. Всё остальное неважно.

=====
Нет времени на медленные танцы

Гордиенко Андрей Владимирович
Модератор

ID: 17387

# 37

= общий = | 26.03.2017, 18:13 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Megaloman:

Можете не соглашаться. Я всё равно не собираюсь с Вами спорить. Но советую Вам прочитать написанное автором вопроса:

© Цитата: SAW
Так же у нас есть несколько точек которые входят в область отрезка по оси Х и могут быть как выше отрезка так и ниже его.

=====
Facta loquuntur.

SAW
4-й класс

ID: 400526

# 38

= общий = | 27.03.2017, 06:29 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Добрый день всем! )))
Сделал я все расчеты вручную и у меня получилось НЕ правильное число, на которое программа реагирует адекватно, т.е. в конечном счете НЕ правильно.

Привожу все расчеты:

напомню, у нас есть плоскость внизу ВРЕМЯ (Х) справа ЦЕНА (Y).
точки отрезка:
А (time1, price1)
B (time2, price2)


анализируемая точка
С (time3, price3)

далее расчеты
(буду делать вставки из кода с готовыми значениями, кто не поймет поясню...)

Дано:
time1 = 1464984000
time2 = 1465444800
time3 = 1465243200

price1 = 1.13728
price2 = 1.14148
price3 = 1.13921


опираемся на формулу
price = k*time + b;

выделяем из нее коэффициенты
k = (price2 - price1) / (time2 - time1);
b = price1 - k*time1;


k = (1.14148 - 1.13728) / (1465444800 - 1464984000) = 0.0042/460800 = 0.0000000091145833;
b = 1.13728 - 0.0000000091145833 * 1464984000 = 1.13728 - 13.3527187011672 = -12.2154387011672;

Далее, ищем цену точки на линии, которая соответствует времени нашей точки С
формула такая:
priceLine = k*time3 + b;

priceLine = 0.0000000091145833 * 1465243200 + -12.2154387011672 = 13,35508120115856 + -12.2154387011672 = 1,13964249999136;

округляем до 5-ти знаков:
priceLine = 1,13964;

В итоге мы получаем, что якобы точка С лежит НИЖЕ линии
1.13921 < 1,13964 (price3 < priceLine)

НО, реально на графике, точка лежит ВЫШЕ этой линии, т. к. реальная цена точки на линии соответствует = 1,13850
1.13921 > 1,13850 (price3 > priceLine)

Не мог ли кто-нибудь посмотреть, может я где-то ошибся в расчетах!!!

Megaloman
Академик

ID: 137394

# 39

= общий = | 27.03.2017, 09:34 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Результат моего скрипта (могли бы и сами использовать)

Результат по расчетам Excel

Моё мнение: вы считываете неверные данные с графика либо Ваша пресловутая платформа неверно считает: при приведенных данных если платформа работает с 7, например, знаками, её расчёты будут кривыми.

=====
Нет времени на медленные танцы

• Отредактировал: Megaloman (Академик)
• Дата редактирования: 27.03.2017, 09:39

Megaloman
Академик

ID: 137394

# 40

= общий = | 27.03.2017, 10:15 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Решим обратную задачу: найдём x (у Вас time) по имеющемуся y (у Вас price)

Результат вычисления по Вашим данным

То есть, для формулы расчёта, либо координаты точки заданы неверно, либо координаты точек прямой неверны.
Арифметика (при достаточной точности расчётов) врать не может.


=====
Нет времени на медленные танцы

SAW
4-й класс

ID: 400526

# 41

= общий = | 27.03.2017, 10:53 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Megaloman
Моё мнение: вы считываете неверные данные с графика

© Цитата: Megaloman
То есть, для формулы расчёта, либо координаты точки заданы неверно, либо координаты точек прямой неверны.

У меня тоже такие мысли возникли, сейчас проверю все данные еще на раз...

SAW
4-й класс

ID: 400526

# 42

= общий = | 27.03.2017, 10:54 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Megaloman:

Спасибо, что проверили мои расчеты, мне было важно знать, что я сам не ошибся, по крайней мере в этом.

SAW
4-й класс

ID: 400526

# 43

= общий = | 27.03.2017, 13:15 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

ВСЕМ ОГРОМНОЕ СПАСИБО!!!
Я нашел ошибку, дело все в том, что на оси абсцисс есть разрывы в данных, это особенность такая заложенная разработчиками и как уже это исправить я пока не знаю, но это уже другая проблема, буду решать отдельно если понадобиться.

А формула считает вроде правильно, проверил часть вручную и наткнулся на разрыв в данных, там сбой то и произошел, отрезок в формуле как бы прыгнул сильно вверх. )))

Вот такие дела....

Megaloman
Академик

ID: 137394

# 44

= общий = | 27.03.2017, 13:25 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Может, интерполяцию применить?

=====
Нет времени на медленные танцы

SAW
4-й класс

ID: 400526

# 45

= общий = | 27.03.2017, 14:02 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Megaloman
Может, интерполяцию применить?

Это как?

Megaloman
Академик

ID: 137394

# 46

= общий = | 27.03.2017, 14:19 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
SAW:

Интерполяция -это здесь Сложно рассуждать, когда Вы так тщательно скрываете подробности задачи. Но если не хватает данных, их можно с некоторой степенью достоверности предугадать. Гогда Вы рисуете карандашом график по точкам, Вы занимаетесь интерполяцией. Существуют мат методы для получения значений функции по имеющимся данным.

=====
Нет времени на медленные танцы

SAW
4-й класс

ID: 400526

# 47

= общий = | 08.04.2017, 04:16 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Добрый день, все!
Я пока не уверен на 100%, но проблема вроде как решилась.
Дело в том, что у каждой точки рядом с отрезком есть свой порядковый номер, так вот мне порекомендовали вместо времени (time) использовать этот порядковый номер в формуле. После этого расчеты вроде стали точнее, но мы их до сих пор на 100% не проверили поэтому я и не писал.
Если будут еще новости, то напишу...

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.17918 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн