Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.09.2018
Сообщений: 11

Решение уравнения перебором

14.11.2018, 19:42. Показов 3710. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с кодом. Суть такая: нужно найти x,y,z из уравнения https://www.cyberforum.ru/cgi-bin/latex.cgi?r=\sqrt{(x_{1}-x){^{2}+(y_{1}-y){^{2}+(z_{1}-z){^{2}} . r, x_1, y_1, z_1 - задаю сам,т.е. они известны. Я решил попробовать методом перебора. Но результатом являются числа, которые пишу в условии цикла,т.е. 360 и потом вместо x,y,z в уравнение подставляется 360.
Может быть кто нибудь подскажет что и где нужно изменить в коде ? набросок кода ниже


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int X_1 = StrToFloat(Edit1->Text);
int Y_1 = StrToFloat(Edit2->Text);
int Z_1 = StrToFloat(Edit3->Text);
int x;
int y;
int z;
 
for (x = 0; x<360; x=x+1)
    for (y = 0; y<360; y=y+1)
        for (z = 0; z<360; z=z+1)
 
 
 
r = sqrt((pow((X_1-x),2)+ pow((Y_1-y),2) + pow((Z_1-z),2)));
Memo1->Lines->Strings[0] = FloatToStr(x);
Memo1->Lines->Strings[1] = FloatToStr(y);
Memo1->Lines->Strings[2] = FloatToStr(z);

Буду очень благодарен кто поможет))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2018, 19:42
Ответы с готовыми решениями:

Решение задачи перебором
Дана задача в общем виде: Имеются предметы ценой x, y, z. Найти все возможные наборы предметов такие, что суммы их цен была равна w. ...

Решение задачи компоновки элементов схемы полным перебором
Доброго времени суток, необходимо найти все возможные разбиение графа на подграфы. На вход количество вершин и матрица смежности графа....

Определить тип уравнения, указать метод решения, общее решение дифференциального уравнения
дано дифференциальное уравнение первого порядка: (x+y+1)dx+(x-y2+3)dy=0. Определить тип уравнения, указать метод решения, общее решение...

28
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,184
17.11.2018, 04:47
Студворк — интернет-сервис помощи студентам
Denis68koltsov, Уточните, пожалуйста условие. То что у Вас в программе переменные - целые, наводит на мысль, что может быть задача формулируется так: Найти, если они есть, точки с целыми координатами лежащие на заданной сфере радиуса R. ?
0
0 / 0 / 0
Регистрация: 19.09.2018
Сообщений: 11
17.11.2018, 09:57  [ТС]
В конечном итоге нужно осуществить этот метод. Для начала мне просто сказали написать программу для одного уравнения. Но если кто-то может помочь написать сразу для данного метода, то будет только лучше

Миниатюры
Решение уравнения перебором  
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
18.11.2018, 03:51
Цитата Сообщение от Denis68koltsov Посмотреть сообщение
написать программу для одного уравнения
Кто это Вам такое посоветовал? Решение пространственной засечки не решается методом перебора. Решается в 2 этапа, сначала находят приближенные координаты, потом вычисляются невязки и координаты уравниваются.
0
0 / 0 / 0
Регистрация: 19.09.2018
Сообщений: 11
18.11.2018, 10:57  [ТС]
TrollHammer, тогда я вообще в тупике
и как это всё начать реализовать?
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,014
18.11.2018, 22:32
Если задание то, что на картинке, то ничего не мешает найти неизвестные тем же методом перебора.
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
19.11.2018, 03:00
gunslinger, Не получится, я уже об этом написал. Открываем "Глобальные системы позиционирования" Серапинас Б. Б. Задача решается так
1. Находим приближенные координаты последовательно от двух реперов (в данном случае - спутников) A-B, A-C, B-C
2. Получаем невязки (расхождения координат)
3. Из невязок находим поправку к координатам
1
0 / 0 / 0
Регистрация: 19.09.2018
Сообщений: 11
13.12.2018, 17:07  [ТС]
TrollHammer, всю голову изломал и весь интернет перерыл, но ничего так и не получилось сделать ((
можешь помочь? Просто уже время сдачи на исходе
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
14.12.2018, 00:34
Denis68koltsov, в google - "решение пространственной линейной засечки". А так попробую порыться в загашниках, где-то была курсовая, но не обещаю
0
483 / 275 / 57
Регистрация: 08.10.2015
Сообщений: 1,184
14.12.2018, 10:46
Denis68koltsov, месяц задача висит и нет ни каких сдвигов, удивительно.
Начну с того, что задача решается точно - нужны только бумажка и карандаш. Для упрощения (что бы не возится с радикалами) обычно переносят центр одной из сфер в начало координат, а центр другой помещают на одну из осей. Потом, после получения решения, делают обратные преобразования. На слух - страшно, но если начать делать - все просто. Если Вам требуется именно численное решение, без формул, то посмотрите вот это:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <vcl.h>
#pragma hdrstop
#include <math.h>
//#include <stdio.h>
//#include <iostream>
#include "Us0.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double Xmin=-20,Xmax=20,Ymin=-20,Ymax=20,Zmin=-20,Zmax=20;
double step =1.;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int X1 = 105, X2=10, X3=-3;     //StrToFloat(Edit1->Text);
int Y1 = -5,  Y2=100,  Y3=0;    //StrToFloat(Edit2->Text);
int Z1 = 10,  Z2=2, Z3=-111;    //StrToFloat(Edit3->Text);
double R1=100, R2=105, R3=110,r1,r2,r3, S1,S2,S3;
double x,y,z, a=0,eps,xmin=R3,xmax=-R3,ymin=R3,ymax=-R3,zmin=R3,zmax=-R3;
eps=(R3*8*step);
r1=R1*R1; r2=R2*R2; r3=R3*R3;
Edit1->Text= FloatToStr(eps);
for (x=Xmin; x<Xmax; x=x+step)
  for (y = Ymin; y < Ymax; y=y+step)
     for (z = Zmin; z< Zmax; z=z+step)
       {
        S1=(X1-x)*(X1-x)+ (Y1-y)*(Y1-y) + (Z1-z)*(Z1-z);
        S2=(X2-x)*(X2-x)+ (Y2-y)*(Y2-y) + (Z2-z)*(Z2-z);
        S3=(X3-x)*(X3-x)+ (Y3-y)*(Y3-y) + (Z3-z)*(Z3-z);
        if((fabs(r1-S1)< eps) && (fabs(r2-S2)< eps) && (fabs(r3-S3)< eps))
          {
           if(x<xmin)xmin=x; else if(x>xmax)xmax=x;
           if(y<ymin)ymin=y; else if(y>ymax)ymax=y;
           if(z<zmin)zmin=z; else if(z>zmax)zmax=z; a=1;
          }
       }
Xmin=xmin; Xmax=xmax; Ymin=ymin; Ymax=ymax; Zmin=zmin; Zmax=zmax; step=step/2;
if(a)
 {
  Label1->Caption="xmin ="+FloatToStr(Xmin)+"  ymin ="+FloatToStr(Ymin)+"  zmin ="+FloatToStr(Zmin);
  Label2->Caption="xmax ="+FloatToStr(Xmax)+"  ymax ="+FloatToStr(Ymax)+"  zmax ="+FloatToStr(Zmax);
 }
  else {Label3->Visible=1; Label3->Caption = "xi-xi";}
}
Набросал без "красивостей", в стареньком билдере-5, но как образец может сгодиться. На форму бросьте кнопку Label- 3 шт. и Edit1-1 шт., ну поймете, что для чего.
Конечно надо сделать цивильный ввод данных, а также проверку их совместимости, думаю, разберетесь.
Образец рабочий. При первом нажатии кнопки делается прогонка по x,y,z в заданном диапазоне (Xmin,Xmax,...) c исходным шагом и устанавливаются новые границы для x,y,z и новый шаг - для следующей итерации (по нажатию кнопки). На каждой итерации в Label-ях отображаются диапазоны. Сходится быстро. Будут вопросы - задавайте.

Добавлено через 7 минут
Исходные границы можно просто задать по максимальному R.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2018, 10:46
Помогаю со студенческими работами здесь

Алгоритмизация решения уравнения для банковского IT-шника (или просто решение уравнения)
Добрый день. Нужна помощь (в идеале) с алгоритмизацией решения уравнения или (тоже отлично) способом численного решения уравнения для...

Найти решение уравнения, изоклинную и интегральную кривые, решение задачи Коши
Помогите пожалуйста! а) Найти решение вида: x=a,y=b,y=kx+b y'=\frac{y^2-4}{xy},\\ y'=x-y+2 б) Какая кривая является одновременно...

Найти общее решение или частное решение уравнения первого порядка
Помогите решить: 2*x*sqrt(1-y^2)=y' * (1+x^2). Я не понимаю как решить это, т.к. dx и dy получаются в знаменателе...

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru