0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 16
1

Найти квадратный корень не используя Math и Sqrt

25.05.2013, 21:55. Показов 5748. Ответов 8
Метки нет (Все метки)

Помогите найти квадратный корень не используя Math и Sqrt.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2013, 21:55
Ответы с готовыми решениями:

Дано натуральное число n. Вычислить: sqrt(3+sqrt(6+.+sqrt(3*(n-1)+sqrt(3*n)
Что я делаю не так, подскажите пожалуйста. #include <stdio.h> #include <math.h> #include...

Вычислить квадратный корень
Всем добрый вечер) как записать выражение на языке C? function Sq(x,e,y0:real):real; var...

Посчитать квадратный корень из числа без использования Math
Привет всем... Я в общем студент... И на первом занятии нам учитель задал задачку... она...

Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt
Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа...

8
1 / 1 / 0
Регистрация: 25.05.2013
Сообщений: 29
25.05.2013, 22:06 2
ну распиши по тейлору
https://www.cyberforum.ru/cgi-bin/latex.cgi?sqrt(x)=1  +  (x-1)/2 -  (x-1)^2/8  +  (x-1)^3/16
если нужна большая точность загугли, хотя я думаю этого разложения вполне достаточно будет
0
95 / 95 / 58
Регистрация: 04.10.2012
Сообщений: 189
25.05.2013, 22:53 3
Еще есть хорошая итерационная формула Герона, она быстрее Тейлора сходится.
http://ru.wikipedia.org/wiki/Итерационная_формула_Герона
1
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 16
26.05.2013, 02:53  [ТС] 4
Вот написал код, но он как то неправильно считает.
C
1
2
3
4
5
6
7
8
9
10
11
 #include <stdio.h>
 int main()
 {
     double x; 
     printf ("Vvedite x: ");
     scanf ("%d", &x);  
     x=1+(x-1)/2-(x-1)*(x-1)/8+(x-1)*(x-1)*(x-1)/16;
     printf("%d\n", x);
     while(!kbhit());
     return 0;
 }
0
Форумчанин
Эксперт CЭксперт С++
8170 / 5020 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
26.05.2013, 03:24 5
C
1
x=1+(x-1)/2.0-(x-1)*(x-1)/8.0+(x-1)*(x-1)*(x-1)/16.0;
Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main()
{
    int x;
    double y;
    printf ("Vvedite x: ");
    scanf ("%d", &x);
    y=1+(x-1)/2.0-(x-1)*(x-1)/8.0+(x-1)*(x-1)*(x-1)/16.0;
    printf("%f\n", y);
    return 0;
}
0
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 16
26.05.2013, 04:15  [ТС] 6
Все равно не правильно считает квадратный корень, кто подскажет в чем проблема
0
Форумчанин
Эксперт CЭксперт С++
8170 / 5020 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
26.05.2013, 04:25 7
ImsteR, в логическом осмыслении задачи, все ошибки, связанные с программированием, я поправил.
А вы уверены, что 4 члена последовательности обеспечивают быструю сходимость к определенному числу?
0
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 16
26.05.2013, 04:37  [ТС] 8
Нет я не уверен, я использовал формулу тейлора которую мне предложили выше
0
3250 / 2052 / 351
Регистрация: 24.11.2012
Сообщений: 4,902
26.05.2013, 08:21 9
ImsteR, ряд Тейлора бесконечен.
В любом случае надо считать множество элементов с заданной точностью.
Пример с применением итерационной формулы Герона, ссылку на которую давали выше:

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
#include <assert.h>
#include <stdio.h>
 
double my_fabs(double x)
{
    return x < 0 ? -x : x;
}
 
double my_sqrt(double x)
{
    assert(x > 0);
 
    static const double eps = 1e-10;
    
    double prev;
    double next = x;
 
    do
    {
        prev = next;
        next = (prev + x / prev) / 2;
    }
    while (my_fabs(prev - next) > eps);
 
    return next;
}
 
int main()
{
    printf("sqrt(1e-5) = %lf\n", my_sqrt(1e-5));
    printf("sqrt(1) = %lf\n", my_sqrt(1));
    printf("sqrt(2) = %lf\n", my_sqrt(2));
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2013, 08:21

Вводится число X>1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа X, не пользуясь функцией SqRt.
Вводится число X&gt;1 и точность e. Вычислить с заданной точностью квадратный корень введенного числа...

Вычислить корень квадратный не используя стандартных функций
Делаю лабу в универе и появилась проблема. Как можно добыть корень не используя стандартных...

Вычислить квадратный корень из заданного целого числа, используя только побитовые операции
Существует простой способ вычисления квадратного корня: квадратный корень из целого числа равен...

Дано целое положительное число n. Найти sqrt(n+ sqrt (n-1) + sqrt (n-2)+. sqrt (1)
Дано целое положительное число n. Найти sqrt(n+ sqrt ((n-1) + sqrt ((n-2)+... sqrt (1))))


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.