Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Verita
1

Решение уравнений методом Лобачевского - нужна помощь

05.04.2011, 17:50. Показов 2291. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо написать программу, находящую корни уравнения методом Лобачевского.
Возможно, у кого-то в наработках есть что-то вроде псевдокода, блок-схемы, или манны небесной в виде программного кода; или - на худой конец - здесь обитают души великих математиков, кто может объяснить сам этот метод "народным языком" - на пальцах, для особо одаренных =)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2011, 17:50
Ответы с готовыми решениями:

Решение нелинейных уравнений методом Ньютона. Не выдает результат, когда решение = 0
Есть программа,Решение нелинейных уравнений методом ньютона,но есть проблема,Не выдает результат,...

Решение нелинейных уравнений методом Ньютона и методом половинного деления
Добрый день! Помогите, пожалуйста, соединить код программы с кнопкой метода половинного деления...

Решение систем линейных уравнений методом Гаусса и методом Крамера
Написать программу, которая решает СЛУ(Систему Линейных Уравнений) методом Гаусса и методом Крамера.

Решение системы линейных уравнений методом Гаусса и методом Крамера
Написать программу, которая решает СЛУ(Систему Линейных Уравнений) методом Гаусса и методом Крамера.

2
134 / 47 / 11
Регистрация: 27.05.2008
Сообщений: 246
05.04.2011, 20:32 2
есть на с++

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//////////////////////////////////////////////////////////////////////////////
//  Solving nonlinear equations (Lobachevsky method)
//  (c) Johna Smith, 1996
//
//  Method description:
//   Given: a0+a1x+a2x^2+...+anx^n=0
//   This method allows to find modulus of the greatest root of this equation
//   even if it's complex. But in last case there can appear several messages
//   about impossibilty of calculation root of negative number.
//   The main idea of this method is to change given equation to other
//   equation which roots equals to powered roots of given equation. For example
//   if roots of the given equation are x0,x1,.. xn then roots of new equation
//   will be x0^2, x1^2, ..., xn^2. Repeating this operation we get an equation
//   where one root is much greater than other ones. So we can easily
//   obtain modulus of the greatrest root of the given equation.
//   To obtain other roots of equation we need to divide given equation
//   by (x-x0) (where x0 is found root) and apply this method to result.
//
//////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <math.h>
#define N   4
#define N1  N+1
#define Iterations  15  // number of iterations
double a[N1]={24,-50,35,-10,1};
void main(void)
{
  double r,b[N1],c[N1],g,bi,d;
  int z,k;
  // printing given equation
  printf("%f",a[0]);
  for(int i=1;i<N1;i++) printf("%+fx^%d",a[i],i);
  printf("=0\n\n");
  // preparing auxiliary arrays b and c
  for (i=0;i<N1;i++)
  {
    b[i]=a[i]/a[N];
    c[i]=0;
  }
  // setting required parameters
  r=1/2.0;
  g=1;
  // make all iterations
  for(int y=0;y<Iterations;y++)
  {
    // calculate coefficients c[i] (coefficients of new equation)
    z=1;
    for(i=0;i<N1;i++)
    {
      bi=z*b[i];
      k=(i+1)/2;
      for(int j=i%2;j<N1;j+=2)
      {
        c[k]+=bi*b[j];
        k++;
      }
      z=-z;
    }
    d=z*c[N-1];
    // check whether we could calculate root of d
    if(d>0)
    {
      // calculating and printing new iteration
      g*=powl(d,r);
      printf("%f\n",g);
      for (i=0;i<N1;i++)
      {
        // preparing data for next iteration
        b[i]=c[i]/powl(d,N-i);
        c[i]=0;
      }
      b[N-1]=z;
      b[N]=-z;
    } else
    {
      // d is negative - can't calculate root
      for(i=0;i<N1;i++)
      {
        // preparing data for next iteration
        b[i]=c[i];
        c[i]=0;
      }
      printf("no iteration (can't calculate root from negative number)\n");
    }
    r/=2.0;
  }
}
сможешь перевести сам?
0
Verita
05.04.2011, 23:19 3
Да да да=) спасибо огромное =)
05.04.2011, 23:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2011, 23:19
Помогаю со студенческими работами здесь

Решение системы уравнений методом простых итераций и методом Зейделя
Метод Итераций Private Sub Command4_Click() 'Ìåòîä ïðîñòûõ èòåðàöèé Dim eps As Integer, niter...

Решение дифференциальных уравнений четвертого порядка методом Эйлера и методом Рунге-Кутта
Форумчане прошу помочь решить уравнение f :=y+y'*x+y''+y'''*x методами Рунге-Кутта и Эйлера. Если...

Решение систем линейных алгебраических уравнений методом Гаусса и методом простых итераций
Решение систем линейных алгебраических уравнений в Mathcad методом Гаусса и методом простых...

Решение нелинейных уравнений методом биссекций и методом Ньютона
Напишите рабочую программу пожалуйста:


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru