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

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

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

Расчет среднеинтегрального значения - C++

31.05.2011, 16:09. Просмотров 733. Ответов 0
Метки нет (Все метки)

Помогите решить задачу! Вот собственно условие:

Если река покрыта ледяным покровом, то скорость струй воды, лежащих на одной и той же вертикали, можно приближенно выразить формулой: V = a + b*M*ln(x) + k*M*ln(h-x),
где a, b, M, k – постоянные; x— расстояние от дна реки. Определить среднюю скорость для заданной высоты уровня воды h. Построить график V=f(x/h). Сравнить полученную среднюю скорость определенную аналитически и численно. Решить задачу с использованием численных методов интегрирования.


Пробовал вычислить интеграл методом трапеции. Все вроде ничего, но только при вычислении логарифма вылезает ошибка: log: DOMAIN ERROR а следом Invalid floating point operation
Если кто предложит свой варинт решения, буду очень признателен.


Значения взял такие: a=15,b=1,M=2,k=1,h=15

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
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
TForm1 *Form1;
double toch;
double a1,b1,M,k,h1;
 void TRAPEC(double,double,double);
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonOKClick(TObject *Sender)
{
 
a1 = StrToFloat(Label_a->Text);
b1 = StrToFloat(Label_a->Text);
M = StrToFloat(Label_M->Text);
k = StrToFloat(Label_k->Text);
h1 = StrToFloat(Label_h->Text);
toch= StrToFloat(LabeledEditToch->Text);
 
TRAPEC(0.01,25,toch);
}
//---------------------------------------------------------------------------
void TRAPEC(double a,double b,double toch)
{
 
  double RezNew=0, RezOld=0;
  double tmp= a;
  int n=2;
 
  double h;
  h= fabs(b-a)/n;
 
  for (int i = 0; i <= n; i++)
  {
    if (i==n ||i==0) RezNew += (a1+b1*M*log(tmp)+k*M*log(h1-tmp))/2;
    else RezNew+=a1+b1*M*log(tmp)+k*M*log(h1-tmp);
    tmp+=h;
  }
  RezNew*=h;
 
  while (fabs(RezNew-RezOld)/3> toch)
  {
    n*=2;
    h= fabs(b-a)/n;
    tmp=a;
 
    RezOld=RezNew;
    RezNew=0;
    for (int i = 0; i <= n; i++)
    {
        if (i==n ||i==0) RezNew += (a1+b1*M*log(tmp)+k*M*log(h1-tmp))/2;
        else RezNew+=a1+b1*M*log(tmp)+k*M*log(h1-tmp);
        tmp+=h;
    }
    RezNew*=h;
  }
 
  Form1->LabeledEditTrapec->Text=FloatToStrF(RezNew/(b-a),ffNumber,10,5);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2011, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расчет среднеинтегрального значения (C++):

Расчет значения экспоненты - C++
Есть задача, где требуется вычислить мат. константу е, по формуле е = 1 + 1/0! + 1/1! + 1/2! + 1/3! + ..., и тут в форуме я нашел что-то...

расчет значения e^x(x это степень) - C++
есть задача,в котором нужно рассчитать значение e^x. Проблема в том что я даже понятие не имею что это такое это экспоненто в степени x....

Расчет значения многочленов и их степень - C++
Уважаемые эксперты, подскажите пожалуйсто, как по ряду Тейлора : 2*х+х3/3+x5/5+...+x2n+1/(2n+1)+... расчитать значение многочленов и их...

Расчет значения функции по введенному значению и графику - C++
Нужна помощь с программой по данному графику.Нужно написать программу для расчета значения функции у по введенному значению х, если задан...

Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. - C++
День добрый товарищи специалисты, помогите пожалуйста с примером m=((1/n)*\sum_{i=1}^{n}{x}_{i}){}^{2}-\sum_{i=1}^{n}{x}_{i} ,n=5 ф-ция...

Вычислить значения функции F на интервале от начального значения до конечного значения - C++
Написать консольное приложение на С++ Перепечатайте пожалуйста текст задания на форум.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2011, 16:09
Привет! Вот еще темы с ответами:

Расчет среднего значения в колонке ListView с учетом значения в ComboBox - C++ Builder
Помогите решить такую задачу.Пользователь заполняет таблицу ListView данными о моторах, включающими тип мотора, получаемый от ComboBox, и...

Расчет значения функции - JavaScript
Используя JavaScript, необходимо рассчитать значения функции y = (x-1)/x^2 для заданных пользователем начального значения, конечного...

Расчет значения функции - VBA
Задание: программа запрашивает у пользователя значение аргумента функции, указанной в вашем варианте, и выводит значение функции при...

Расчет минимального значения - Java SE
Помогите дописать программу package com.javarush.test.level02.lesson08.task04; /* Минимум четырех чисел Написать функцию,...


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

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

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