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

Вычисление определённых интегралов

22.05.2011, 14:23. Показов 871. Ответов 3
Метки нет (Все метки)

Подскажите, пожалуйста, в чём ошибка.

файл с методами вычисления
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
#include "stdafx.h"
#include "Integ.h"
#include "iostream"
#include "cmath"
#include "conio.h"
 
 
using namespace std;
 
 
double f(double x){
    double y=sqrt(1-x*x)*4;
    return (y);
}
 
double rect(double a, double b, double f(double x)){
    double s=(b-a)*pf((a+b)/2);
    return (s);
}
 
double trap(double a, double b, Tpf pf){
    double s=(b-a)/2*(pf(a)+pf(b));
    return (s);
}
 
double Simpson(double a, double b, Tpf pf){
    double s=(b-a)/6*(pf(a)+4*pf((a+b)/2)+pf(b);
    return (s);
}
 
double integrals(double a, double b, int n, Tpf pf, Tpmethod pmethod){
    double h=(b-a)/n;
    double s=0;
    for (int i=0; i<n; i++){
        double l=a+h*i;
        double r=l+h;
        s+=rect(l,r,pf);
    }
    return s;
}
заголовочный файл
C++
1
2
3
4
5
6
7
8
9
10
#pragma once
#include "cmath"
typedef double(*Tpf)(double);
double f(double x);
typedef double(*Tpmethod)(double, double, Tpf);
typedef double (*integ)(double, double, int, Tpf, Tpmethod);
double rect(double a, double b, Tpf);
double trap(double a, double b, Tpf pf);
double Simpson(double a, double b, Tpf pf);
double integrals(double a, double b, int n, Tpf pf, Tpmethod pmethod);
Файл с основной программой
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
#include "stdafx.h"
#include "iostream"
#include "cmath"
#include "conio.h"
#include "Integ.h"
 
 
 
using namespace std;
 
 
 
void main()
{
   double a=0;
   double b=0;
   int n=0;
   //cout<<'a ';
   cin>>a;
   //cout<<'b ';
   cin>>b;
   //cout<<'n ';
   cin>>n;
   double s=0;
   int m=3;
   Tpf pf=0;
   Tpmethod pmethod=0;
 
switch(m){
case '1':{
    pf=&f;
    pmethod=&rect;
    //s+=integrals(a,b,n,pf,pmethod);
    }
    break;
 
case '2':{
    pf=&f;
    pmethod=&trap;
    //s+=integrals(a,b,n,pf,pmethod);
    }
    break;
 
case '3':{
    pf=&f;
    pmethod=&Simpson;
    //s+=integrals(a,b,n,pf,pmethod);
    }
    break;
 
}
cout<<s;
getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2011, 14:23
Ответы с готовыми решениями:

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

Вычисление определенных интегралов методом прямоугольников
Дана тема: Вычисления определенных интегралов методом прямоугольников. К примеру, дан...

Вычисление значения трех определенных интегралов методом трапеций или методом Симпсона
Всем привет, нужна конкретная помощь по написанию проги по такому условию. Написать программу,...

Метод прямоугольников для решения определенных интегралов
Есть рабочий код метода трапеции для решения определенных интегралов. Формулу нужно заменить для...

3
Каратель
Эксперт С++
6607 / 4026 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
22.05.2011, 14:34 2
Цитата Сообщение от Aleks_ Посмотреть сообщение
Подскажите, пожалуйста, в чём ошибка.
тоесть? не компилируется или считает не правильно или что?
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 12
22.05.2011, 14:39  [ТС] 3
Выводит ошибки типа error LNK2019: unresolved external symbol "double __cdecl Simpson(double,double,double (__cdecl*)(double))" (?Simpson@@YANNNP6ANN@Z@Z) referenced in function _main Integral.obj Integral, когда пытаюсь запустить программу.
0
Бродяга
314 / 268 / 56
Регистрация: 27.08.2010
Сообщений: 553
22.05.2011, 15:47 4
Так, мельком глянул:

C++
1
2
3
4
double rect(double a, double b, double f(double x)){
        double s=(b-a)*pf((a+b)/2); // что за pf? может f?
        return (s);
}
C++
1
2
3
4
double Simpson(double a, double b, Tpf pf){
        double s=(b-a)/6*(pf(a)+4*pf((a+b)/2)+pf(b); // где-то одной закрывающей скобки не хватает
        return (s);
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2011, 15:47
Помогаю со студенческими работами здесь

вычисление интегралов
Здравствуйте уважаемые программисты! мне очень нужна помощь по написанию программы на с++/с#. у...

Вычисление Интегралов на С++
Вычислить интеграл. Граница с 2 до 3. Сам интеграл 5*x^4 dx. Если можно написать какая строчка за...

Приближенное вычисление интегралов
Добрый всем вечер! Столкнулся с проблемой реализовать данную программу: которая вычисляет...

Вычисление интегралов двумя способами
Народ спасайте. С интегралами вовсе не дружу. Каким образом можно решить данные интегралы именно...

Вычисление определенных интегралов и табулирование первообразных функций
Задание в таблице 2. Вариант 15 и 16

Написать программу для вычисления определенных интегралов методом Монте-Карло
Написать программу для вычисления определенных интегралов методом Монте-Карло на C++ Builder.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru