Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
#1

Отыскание корня уравнения f(x)=0 на интервале (A,B) с точностью Е (метод хорд) - C++

27.10.2010, 15:30. Просмотров 988. Ответов 7
Метки нет (Все метки)

Вот такая задача:
Отыскание корня уравнения f(x)=0 на интервале (A,B) с точностью Е (решение с помощью метода хорд).
Уравнение такое: x^4-x^3-2.5
A=1; B=2; E=10;
Пожалуйста, прошу помощи.

Добавлено через 23 часа 33 минуты
не понимаю совсем как работают эти фунции...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 15:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отыскание корня уравнения f(x)=0 на интервале (A,B) с точностью Е (метод хорд) (C++):

Найти значение корня на заданном интервале с заданной точностью - C++
Программа не доходит до цикла функции, задание чтобы ввести начало диапозона, конец , шаг диапазона и этот диапазон прибавлялся к фунции y=...

Нахождения корней уравнения: метод половинного деления (бисекции) или метод хорд - C++
Разработать программу нахождения корней уравнения f(x) =0 на интервале с точностью e = 0,001 (интервал или подобрать самостоятельно). При...

Решение нелинейного уравнения. Метод хорд и касательных - C++
Написал я программку для решения, но вот незадача: Не находит их на некоторых отрезках. Уравнение: ln(x+1)-p/(x^2)=0 p = -1...1 ...

Найти корень уравнения на интервале [a,b] с заданной пользователем точностью - C++
Пропустил несколько занятий по причине болезней, висит курсовая, осталось сделать одно задание. Найти корень уравнения на интервале с...

Найти все корни уравнения на заданном интервале [a;b] с заданной точностью - C++
Закрепление практических навыков по работе с функциями. В ходе выполнения работы необходимо создать программу, которая находит все корни...

Проверить условия совпадения и записать расчетные формулы для нахождения корня уравнения с заданной точностью - C++
1) Проверить условия совпадения и записать расчетные формулы для нахождения корня уравнения с точностью ε = 10 -4. 2) Составить...

7
mary-lavina
1 / 1 / 0
Регистрация: 31.12.2009
Сообщений: 9
27.10.2010, 16:39 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double f(double x){
        return x^4-x^3-2.5;
}
void metod_hord(){
        double a=1; b=2; E=10;
        do {
                c=a-(f(a)*(b-a))/(f(b)-f(a));
            double r=(b-a)/2;
            if ((fabs(f(c)))<=E || r<=E)
                break;
            else{
                if (f(a)*f(c)<0)
                                b=c;
                else
                    a=c;}
        }while((b-a)/2>E);
        c=a-(f(a)*(b-a))/(f(b)-f(a));
}
Только я както сомневаюсь, что погрешность E=10 - уж слишком много, может быть 10^(-5)
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
27.10.2010, 16:40 #3
mary-lavina,
C++
1
return x^4-x^3-2.5;
ВТФ? Побитовое XOR между x и 4, x и 3???
В С/C++ ^ - побитовое исключающее или, а не степень
0
mary-lavina
1 / 1 / 0
Регистрация: 31.12.2009
Сообщений: 9
27.10.2010, 17:08 #4
Lavroff,
забыла исправить, тупо скопировала из вопроса...мой косяк
C++
1
return pow(x, 4)-pow(x, 3)-2.5;
0
wertrix
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 49
27.10.2010, 17:55  [ТС] #5
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
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
double f(double x)
{
    return pow(x, 4)-pow(x, 3)-2.5;
}
void method_hord()
{
    double a=1, b=2, E=10, c;
    do
    {
        c=a-(f(a)*(b-a))/(f(b)-f(a));
        double r=(b-a)/2;
        if ((fabs(f(c)))<=E || r<=E)
            break;
            else
            {
                if (f(a)*f(c)<0)
                b=c;
                    else
                        a=c;
            }
    }
    while((b-a)/2>E);
        c=a-(f(a)*(b-a))/(f(b)-f(a));
        cout << "\n" << c;
}
fatal error LNK1120: 1 неразрешенных внешних элементов
1>
1>СБОЙ построения.
где ошибка?
0
mary-lavina
1 / 1 / 0
Регистрация: 31.12.2009
Сообщений: 9
27.10.2010, 18:48 #6
Да, в консоли не работает, попробуй сделай простейшую форму (1 кнопка, 1 лейбл)
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
static double a, b, c;
static double E=0.000001;
double f(double x)
{
        return pow(x, 4)-pow(x, 3)-2.5;
}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
a=1, b=2;
 
        do
        {
                c=a-(f(a)*(b-a))/(f(b)-f(a));
                double r=(b-a)/2;
                if ((fabs(f(c)))<=E || r<=E)
                        break;
                        else
                        {
                                if (f(a)*f(c)<0)
                                b=c;
                                        else
                                                a=c;
                        }
        }
        while((b-a)/2>E);
                c=a-(f(a)*(b-a))/(f(b)-f(a));
                label1->Text=String::Concat("x=", Convert::ToString(c));
}
Так всё работает
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,987
27.10.2010, 18:53 #7
wertrix, а где main? Вобщем и библиотеки хорошо бы лишние убрать. mary-lavina, оригинальный способ исправления ошибок линковки.
1
mary-lavina
1 / 1 / 0
Регистрация: 31.12.2009
Сообщений: 9
27.10.2010, 21:28 #8
KuKu,
лёгких путей не ищем)) 0
А серьёзно спасибо, что исправили, а то моя невнимательность меня когда-нибудь погубит(((
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 21:28
Привет! Вот еще темы с ответами:

Комбинированный метод нахождения корня уравнения - C++
Всем здравствуйте, у меня такая проблема: при выводе результата на экран, в зависимости от вводимых значений, происходит &quot;зависание&quot;...

Использование стандартных функций (найти все корни уравнения на заданном интервале [a;b] с заданной точностью) - C++
Необходимо создать программу, которая находит все корни уравнения на заданном интервале с заданной точностью (задается пользователем)....

Линейное уравнение у = Ах + В.Реализовать метод Root()— вычисление корня линейного уравнения - C++
Линейное уравнение у = Ах + В. Поле first — дробное число, коэффициент А; поле second — дробное число, коэффициент В. Реализовать метод...

Нахождение корня методом хорд - C++
Помогите дописать программу, Билдер в 5-ой строке выдаёт синтаксическую ошибку: #include&lt;iostream.h&gt; #include&lt;conio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
27.10.2010, 21:28
Ответ Создать тему
Опции темы

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