Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/64: Рейтинг темы: голосов - 64, средняя оценка - 5.00
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8

Как решать уравнения

16.02.2017, 13:53. Показов 13295. Ответов 66

Студворк — интернет-сервис помощи студентам
В этой теме я решил на простом примере показать, как
можно найти все корни уравнения. Пример COS(2x) = 0.5
Собственно говоря это уравнение имеет базовые корни
на интервале [0; pi]. Все остальные корни отличаются от
исходных слагаемым pi*n, где n - целое число

QBasic/QuickBASIC
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
REM
REM  COS(2x) = 0.5
REM
REM   [0; pi]
REM
REM  x = 0.52357   x = 2.61798
REM
 
DECLARE FUNCTION f! (x!)
 
CLS
CONST pi = 3.141593
h = .00005
 
f1 = f(0)
 
FOR x = h TO pi STEP h
   f2 = f(x)
   IF f1 * f2 <= 0 THEN PRINT x
   f1 = f2
NEXT
END
 
FUNCTION f (x)
   f = COS(2 * x) - .5
END FUNCTION
примечание
Идеальный код этой программы не оставит
равнодушным даже терминатора серии Т 2017.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.02.2017, 13:53
Ответы с готовыми решениями:

Как решать уравнения?
что означают def input data итд в бейсике? как вводить в бейсике уравнения?

Как решать уравнения?
есть уравнение A(x)=A0+(i=n E i=1)*n*cos(x*n+k) подскажите как это можно решить

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

66
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
18.03.2017, 21:05
Студворк — интернет-сервис помощи студентам
и еще два:
81404 130119 139974
99800 104383 128692

Добавлено через 24 минуты
49 решений:
Кликните здесь для просмотра всего текста
1 6 8 9
2 71 138 144
3 135 138 172
4 236 1207 1210
5 242 720 729
6 372 426 505
7 426 486 577
8 566 823 904
9 575 2292 2304
10 791 812 1010
11 1124 5610 5625
12 1851 8675 8703
13 1943 6702 6756
14 1943 11646 11664
15 1938 2820 3097
16 2196 5984 6081
17 2676 3230 3753
18 3086 21588 21609
19 3318 16806 16849
20 3453 24965 24987
21 4607 36840 36864
22 6560 59022 59049
23 7251 49409 49461
24 7676 11903 12884
25 8999 89970 90000
26 10230 37887 38134
27 10866 17328 18649
28 11978 131736 131769
29 15218 66198 66465
30 15551 186588 186624
31 17328 27630 29737
32 17384 78244 78529
33 25765 33857 38239
34 28182 31212 37513
35 29196 66167 68010
36 31212 34566 41545
37 32882 69479 71852
38 34199 46212 51762
39 51293 64165 73627
40 54101 56503 69709
41 58462 87383 95356
42 75263 94904 108608
43 81404 130119 139974
44 84507 89559 109747
45 86103 153422 161976
46 93066 152526 163297
47 99800 104383 128692
48 105570 237095 243876
49 146996 204290 227033
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
18.03.2017, 22:11
Цитата Сообщение от m-ch Посмотреть сообщение
x^3 + y^3 = z^3 - 1
1 мин 26сек на C#.NET.
Распределил на 8 потоков.
Пока в произвольном порядке.
Алгоритм от m-ch,
Вложения
Тип файла: rar ConsoleApp1.rar (2.7 Кб, 1 просмотров)
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
18.03.2017, 22:38
до 100 000

Добавлено через 5 минут
окончание числаокончания в ^3
11
28
37
44
55
66
73
82
99
00
Как видно из таблицы все числа четные в степени 3 то же четные и наоборот. Пока не придумал как это прикрутить к проверке, для обрезки циклов.

Добавлено через 16 минут
Итого что бы вариант проходил сумма x+y+z всегда четная.

Добавлено через 2 минуты
до 200 000 - 6 мин. - 47 ответов.
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
19.03.2017, 10:21  [ТС]
bedvit
Вы конечно видели формулу, которую я вывел случайно.
А как вы думаете есть ли смысл написать программу,
которая будет перебирать по 4-5 решений в поисках
аналитической формулы?
То есть алгоритм должен выглядеть так
1. 4-5-кратный цикл (числа целые и небольшие)
проверяет три решения
2. если они не подходят, то "забывает" про них
3. если подходят, то проверяет дополнительно еще
пару решений.
4. Для ускорения можно проверять по модулю простого числа
А смысл? Мою формулу он найдет. А другие? Их может и не быть..
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
19.03.2017, 17:31
Думаю навряд ли это будет эффективнее. Как по моему так сравнение на четность, а это быстрая побитовая операция
Visual Basic
1
"число" and 1  'True - нечетное
, будет эффективнее при переборе.
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
23.03.2017, 12:21
Поиск переменных в уравнении x^3 + y^3 = z^3 - 1 до 1 млн. - 35 мин.
m-ch, немного оптимизировал ваш алгоритм под С#
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Threading;
 
namespace ConsoleApplication1
{
    //поиск переменных для решения уравнения x^3 + y^3 = z^3 - 1
    class Program
    {
        static long n; static long k = 0; static long[] a;
        static long threadsN = 8;  //задать 8 потоков
 
        static void Main(string[] args)
        {
            var threads = new List<Thread>();
 
            for (int i = 1; i <= threadsN; i++)
            {
                int k = i;
                threads.Add(new Thread(() => func(k)));
            }
 
            Console.Write("Задайте диапазон расчета переменных, до..., нажмите Enter: ");
            n = Convert.ToInt64(Console.ReadLine());
            a = new long[n + 1];
 
            DateTime dold = DateTime.Now;
 
            for (long i = 1; i <= n; i++) a[i] = (i * i * i); // Math.Pow не использовал из-за ошибок округления
 
            threads.ForEach(t => t.Start());//стартуем потоки
            threads.ForEach(t => t.Join()); //ждем выполнения всех потоков
 
            TimeSpan sp = DateTime.Now - dold;
            Console.WriteLine(sp);
            Console.Write("Программа завершена. Нажмите Enter для выхода...");
            Console.ReadLine();
        }
 
        static void func(long start)
        {
            // здесь код, который будет выполняться в отдельном потоке
            long m = n;
            for (long x = start; x <= (long)Math.Pow(((a[n]) - 1) / 2, 1.0 / 3.0); x = x + threadsN)//на 8 потоков
            {
                long s = 1;
                while (a[m] > (a[n]) - 1 - a[x]) m--;
 
                for (long y = x; y <= m; y++)
                {
                    long z3 = a[x] + a[y] + 1;
                    while ((a[s]) <= z3)
                    {
                        if (a[s] == z3)
                        {
                            k++;
                            Console.WriteLine(k + "   " + x + "   " + y + "   " + s);
                        }
                        s++;
                    }
 
                }
            }
        }
 
    }
}
xyz
689
71138144
135138172
372426505
426486577
242720729
566823904
7918121010
23612071210
57522922304
193828203097
267632303753
112456105625
219659846081
194367026756
185186758703
19431164611664
76761190312884
33181680616849
108661732818649
30862158821609
34532496524987
173282763029737
46073684036864
281823121237513
102303788738134
257653385738239
312123456641545
72514940949461
341994621251762
65605902259049
152186619866465
291966616768010
541015650369709
328826947971852
512936416573627
173847824478529
89998997090000
584628738395356
7526394904108608
8450789559109747
99800104383128692
11978131736131769
81404130119139974
86103153422161976
93066152526163297
15551186588186624
146996204290227033
105570237095243876
19772257010257049
152526249972267625
120039275616283006
57055339590340126
24695345702345744
113208342719346788
289511331954393316
315750340623414082
151499434305440365
293999403346449846
30374455580455625
36863589776589824
257118664572677161
197144708282713337
44216751638751689
309874746831764206
283896815498826809
658625743413886447
375703902654923848
52487944730944784
-отсортировано по Z.
Оптимизация в общих чертах: В C# вычисление корня медленнее, чем линейный перебор в массиве с некоторыми хитростями.
Прилагаю и скомпилированный EXE.
Вложения
Тип файла: rar ConsoleApplication1.rar (2.9 Кб, 1 просмотров)
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
23.03.2017, 12:28
Итого 69 решений, с значениями переменных до 1 млн. (без перестановок x,y)

Добавлено через 4 минуты
Пока у меня это максимум по скорости, далее или С или ассемблер ИМХО.
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.03.2017, 12:33  [ТС]
bedvit
Спасибо! Я бы один не сумел так подробно исследовать
это уравнение. Да и VB6 столько бы не насчитал. У него
самый подходящий тип данных - это DOUBLE - 15-16 знаков
точности. А считать до миллиона - надо 18 знаков точности.
То есть в принципе задача решаемая, но это будет год счёта.
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
23.03.2017, 12:48
Цитата Сообщение от bedvit Посмотреть сообщение
Поиск переменных в уравнении x^3 + y^3 = z^3 - 1 до 1 млн. - 35 мин.
Запускал свой алгоритм на Freebasic до 1млн и более, времени занимало больше.
Дома есть файл на 75 решений, если не забуду, вечером выложу
1
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
23.03.2017, 13:14
Попробуйте поменять алгоритм на поиск в массиве вместо вычисления кубического корня, может скорость подрастет на Freebasic? Сравнить с моим exe, ведь ПК разные, скорость и время то же соответственно, результаты могут быть сопоставимые. С# не самый быстрый язык, ведь exe двигается через CLR, а не как нативный код.
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
23.03.2017, 16:12
echs, в VB6 нет 64 разрядного целого (int64)?
Release - сборка. Поиск до 1 млн. -15 мин.
Вложения
Тип файла: rar ConsoleApplication1.rar (2.9 Кб, 6 просмотров)
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.03.2017, 16:42  [ТС]
bedvit
Вообще говоря в VB6 есть тип Decimal. Но его напрямую
не объявишь. Но не это главное. Им практически никто
не пользуется и я тоже. Вот и выходит, что никто не знает,
что с ним можно делать. Можно ли применить при решении
данного уравнения?
...
Вы правы! Если я не попробую, то никто другой за меня это
не сделает.
0
 Аватар для Sasha_Smirnov
5562 / 1370 / 150
Регистрация: 08.02.2009
Сообщений: 4,109
Записей в блоге: 30
23.03.2017, 17:06
Цитата Сообщение от echs Посмотреть сообщение
практически никто

Не по теме:

Почти никто — это как почти никто не занимается математикой или почти никто не входит в управляемый занос. Кому это надо, тот ещё как и входит, и выходит!


Вот Decimal только из тем с моим участием:
  1. Генератор ПСЧ, получить число в диапазоне от -х до х
  2. Теория чисел: печать простых делителей
  3. Найти числа, запись которых совпадает с последними цифрами их квадрата. VBA
  4. Сосчитать сколько всего чисел в строке
  5. Вычислить значение выражения (Казанский)
  6. Найти сумму бесконечного ряда
  7. Программа печати k-го члена в виде обыкновенной несократимой дроби
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.03.2017, 18:29  [ТС]
Sasha_Smirnov
Спасибо! Я попробовал этот тип чисел на скорость
вычислений. Он работает медленнее чем DOUBLE.
Точность дает - а скорость теряет...
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
23.03.2017, 19:14
Цитата Сообщение от bedvit Посмотреть сообщение
Попробуйте поменять алгоритм на поиск в массиве вместо вычисления кубического корня, может скорость подрастет на Freebasic?
Производительность увеличилась,
до 1 млн считалось 16,8 минут на FB
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
23.03.2017, 19:53
А для инфо мой ехе? Похоже скорость сопоставимая С# и FB.
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
23.03.2017, 20:30
Цитата Сообщение от bedvit Посмотреть сообщение
А для инфо мой ехе?
Программа из 31го сообщения выполнялась 21 минуту
i7-3630QM 2.40GHz 8ГБ win8.1 x64
Миниатюры
Как решать уравнения  
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
23.03.2017, 20:45
Исходник на FB и скомпилированный код во вложении
Вложения
Тип файла: zip xyz.zip (33.2 Кб, 7 просмотров)
0
 Аватар для bedvit
1210 / 261 / 22
Регистрация: 20.05.2016
Сообщений: 1,147
Записей в блоге: 22
23.03.2017, 21:42
Все возможные значения на текущем алгоритме (с int64). См.под спойлер
Кликните здесь для просмотра всего текста
№xyz
1689
271138144
3135138172
4372426505
5426486577
6242720729
7566823904
87918121010
923612071210
1057522922304
11193828203097
12267632303753
13112456105625
14219659846081
15194367026756
16185186758703
1719431164611664
1876761190312884
1933181680616849
20108661732818649
2130862158821609
2234532496524987
23173282763029737
2446073684036864
25281823121237513
26102303788738134
27257653385738239
28312123456641545
2972514940949461
30341994621251762
3165605902259049
32152186619866465
33291966616768010
34541015650369709
35328826947971852
36512936416573627
37173847824478529
3889998997090000
39584628738395356
407526394904108608
418450789559109747
4299800104383128692
4311978131736131769
4481404130119139974
4586103153422161976
4693066152526163297
4715551186588186624
48146996204290227033
49105570237095243876
5019772257010257049
51152526249972267625
52120039275616283006
5357055339590340126
5424695345702345744
55113208342719346788
56289511331954393316
57315750340623414082
58151499434305440365
59293999403346449846
6030374455580455625
6136863589776589824
62257118664572677161
63197144708282713337
6444216751638751689
65309874746831764206
66283896815498826809
67658625743413886447
68375703902654923848
6952487944730944784
7031199910525401061600
7138655910766641093024
726173011728321172889
739262719516901183258
7434264812401191248778
7559581512245161269838
7629424112983451303363
7797129811593521352601
787199914399401440000
7994290213091081455241
80115078213886721613673
81107793615689781722969
8266457217177101750249
838334817502661750329
84155784617244422073025

Итого 84 решения. Диапазон переменных 1:2097151=(2^63)^(1/3)-1 Дальше через длинную арифметику.
Расчет занял 1ч:26м:16сек

Добавлено через 19 минут
У меня решение - пост38 быстрее решения пост31 на 16-24% (прирост идет на бОльших диапазонах переменных)
О как
Тип ЦП QuadCore Intel Core i7-3770, 3700 MHz (37 x 100)
Системная память 8156 МБ (DDR3-1333 DDR3 SDRAM)

Добавлено через 5 минут
Интересно за счет чего...
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
23.03.2017, 22:59
Цитата Сообщение от bedvit Посмотреть сообщение
Итого 84 решения. Диапазон переменных 1:2097151=(2^63)^(1/3)-1
Аналогично 84 решения:
Кликните здесь для просмотра всего текста
1 6 8 9
2 71 138 144
3 135 138 172
4 236 1207 1210
5 242 720 729
6 372 426 505
7 426 486 577
8 566 823 904
9 575 2292 2304
10 791 812 1010
11 1124 5610 5625
12 1851 8675 8703
13 1943 6702 6756
14 1943 11646 11664
15 1938 2820 3097
16 2196 5984 6081
17 2676 3230 3753
18 3086 21588 21609
19 3318 16806 16849
20 3453 24965 24987
21 4607 36840 36864
22 6560 59022 59049
23 7251 49409 49461
24 7676 11903 12884
25 8999 89970 90000
26 10230 37887 38134
27 10866 17328 18649
28 11978 131736 131769
29 15218 66198 66465
30 15551 186588 186624
31 17328 27630 29737
32 17384 78244 78529
33 19772 257010 257049
34 24695 345702 345744
35 25765 33857 38239
36 28182 31212 37513
37 29196 66167 68010
38 31212 34566 41545
39 30374 455580 455625
40 32882 69479 71852
41 34199 46212 51762
42 36863 589776 589824
43 44216 751638 751689
44 51293 64165 73627
45 52487 944730 944784
46 54101 56503 69709
47 57055 339590 340126
48 58462 87383 95356
49 61730 1172832 1172889
50 71999 1439940 1440000
51 75263 94904 108608
52 81404 130119 139974
53 83348 1750266 1750329
54 84507 89559 109747
55 86103 153422 161976
56 93066 152526 163297
57 99800 104383 128692
58 105570 237095 243876
59 113208 342719 346788
60 120039 275616 283006
61 146996 204290 227033
62 151499 434305 440365
63 152526 249972 267625
64 197144 708282 713337
65 257118 664572 677161
66 283896 815498 826809
67 294241 1298345 1303363
68 289511 331954 393316
69 293999 403346 449846
70 309874 746831 764206
71 311999 1052540 1061600
72 315750 340623 414082
73 342648 1240119 1248778
74 375703 902654 923848
75 386559 1076664 1093024
76 595815 1224516 1269838
77 658625 743413 886447
78 664572 1717710 1750249
79 926271 951690 1183258
80 942902 1309108 1455241
81 971298 1159352 1352601
82 1077936 1568978 1722969
83 1150782 1388672 1613673
84 1557846 1724442 2073025

Время расчета на FB - 1 час 33 мин
на i7-3770 должно считать быстрее
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2017, 22:59

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

Как решать дифференциальные уравнения
расскажите как решать дифуры если можно желательно с примером

Как решать линейные уравнения?
Подскажите где можно взять информацию по данной теме) с примерами. В учебниках не находил) нужно около 3-4 страниц

Как решать такие уравнения?
r = (((((37*x*2139062143)mod4294967296)*37*y)mod4294967296)*37*z)mod4294967296) r - это некое натуральное число. Необходимо найти...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru