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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
chainiksi
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 25
#1

квадратный корень от интеграла - C++

23.04.2012, 23:44. Просмотров 1090. Ответов 9
Метки нет (Все метки)

Подскажите пожалуйста как написать эту формулу на С++
http://www.cyberforum.ru/images/attach/png.gif
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2012, 23:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос квадратный корень от интеграла (C++):

Квадратный корень - C++
Написал небольшую программку, которая ищет квадратный корень из числа, которое введёт пользователь. int a; cout << "Введите число:...

Квадратный корень - C++
как вычислить корень из числа в консольном виде , я имею ввиду код для консольного приложения

Квадратный корень из 5 - C++
Здравствуйте, подскажите, пожалуйста, алгоритм вычисления квадратного корня из 5 с точностью 10 миллионов знаков

Квадратный корень - C++
Число x называется квадратным корнем числа a по модулю n (root (a, n)) тогда и только тогда когда x * x = a (mod n). Напишите программу,...

Квадратный корень - C++
вот очень странно! вот 2 кода. По логике не различаются НИЧЕМ! Почему 1 код не работает, а другой работает? этот пашет #include...

Уравнение на c++ (не квадратный корень) - C++
напишите пожалуйста код для решение уравнения y=ax+2y^2-2/3 чтобы в коде было это - scanf("%f"...) и чтобы было такого типа ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alexcoder
1463 / 677 / 89
Регистрация: 03.06.2009
Сообщений: 3,558
Завершенные тесты: 1
24.04.2012, 09:53 #2
Интеграл решается методом прямоугольников, трапеций или Симпсона, а дальше дело техники.
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2012, 12:25 #3
1/T и квадрат функции говорят о том что по всей видимости это интеграл гармонической функции. Ниже пример решения проблеммы с помощью метода трапеций
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
#include <cmath>
#include <iostream>
using namespace std;
 
double A, T, phi0;
double u(double x);
 
int main()
{
    system("chcp 1251");
    double h = 0, eps = 0,x,S = 0; 
    cout<<"\tÂâåäèòå ГЇГ*Г°Г*ìåòðû Г±ГЁГ*óñîèäû\n";
    cout<<"ÀìïëèòóäГ* A = ";cin>>A;
    T = -1;
    while(T <= 0)
    {
        cout<<"Ïåðèîä    T = ";
        cin>>T;
        if(T <= 0)
            cout<<"Ïåðèîä êîëåáГ*Г*ГЁГ© äîëæåГ* áûòü ÷èñëîì áîëüøå 0\n";
    }
    cout<<"ГЌГ*Г·Г*ëüГ*Г*Гї ГґГ*Г§Г* phi0(Гў Г°Г*äèГ*Г*Г*Гµ) = ";cin>>phi0;
    cout<<"Ââåäèòå òî÷Г*îñòü ГЁГ*òåãðèðîâГ*Г*ГЁГї\n";
    cout<<"eps = ";cin>>eps;
    h = eps*(T - 0)/10.0;
    for(x = 0; x < T + h; x = x + h)
        S = S + 0.5*(pow(u(x + h),2.0) + pow(u(x),2.0))*h;
    cout<<"Г€Г*ГІГҐГЈГ°Г*Г« $f(x)^2 Г°Г*ГўГҐГ* = "<<S<<endl;
    cout<<"sqrt($f(x)^2/T)  Г°Г*ГўГ*Г® = "<<sqrt(S/T)<<endl;
    system("pause");
    return 0;
}
 
double u(double x)
{
    double pi = 2*asin(1.0);
    return A*sin((2*pi/T)*x + phi0);
}
Миниатюры
квадратный корень от интеграла  
chainiksi
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 25
24.04.2012, 15:21  [ТС] #4
То что вы написали может бы и подошло мне но у меня не случай синусоидального напряжения. Я имею 40 мгновенных значений за при Т от 0 до 0.25с которые я должен подставить в данную формулу
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
24.04.2012, 15:29 #5
Цитата Сообщение от chainiksi Посмотреть сообщение
То что вы написали может бы и подошло мне но у меня не случай синусоидального напряжения. Я имею 40 мгновенных значений за при Т от 0 до 0.25с которые я должен подставить в данную формулу
Телепаты должны были догадываться об этом???
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2012, 15:51 #6
Цитата Сообщение от chainiksi Посмотреть сообщение
Я имею 40 мгновенных значений за при Т от 0 до 0.25с которые я должен подставить в данную формулу
кто тебе мешает вместо u(x + h) и u(x)

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
(pow(u(x + h),2.0) + pow(u(x),2.0))
делать подстановку
pow( u(t[i + 1]) ,2.0) + pow(u(t[i]),2.0) сути же ведь это не поменяет.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Телепаты должны были догадываться об этом???
Кузя
прав тут телепатов нет, а ты chainiksi, пишешь как будто я сижу ряжом с тобой и вижу каковы твои исходные данные и т.д. Правильно поставленное задание - это уже 50% в его решении. Давай сюда свой массив точек и получишь ответ. Также думаю что точки лучше читать из файла нежели на каждом вводе 40 раз осуществлять ввод...
chainiksi
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 25
24.04.2012, 16:28  [ТС] #7
да конечно я виноват что несовсем корректно задал свой вопрос, за что извеняюсь. Но моя проблема покра немерее для меня не совсем проста т.к. я делаю программу для микроконтроллера чтоб с ее помощью измерять переменное напряжение(которое будет менятся) для этого я измеряю мгновенные значения за полупериод и заношу в ячейки памяти поэтому u1...u40 будут заносится автоматически
но я не знаю как в си получить ответ используя эту формулу http://www.cyberforum.ru/attachment....1&d=1335210188
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2012, 16:45 #8
chainiksi, вот тебе реализация для точек а дальше уже дело за тобой
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
#include <cmath>
#include <fstream>
#include <iostream>
using namespace std;
 
int main()
{
    system("chcp 1251");
    int i, T;
    double S = 0;
    double *f = NULL;
    ifstream ifs("data.txt");
    if(!ifs.is_open())
        cout<<"ГЋГёГЁГЎГЄГ* îòêðûòèÿ ГґГ*éëГ* Г¤Г*Г*Г*ûõ\n";
    else
    {
        if(!(ifs>>T))
            cout<<"Ïåðèîä Г*ГҐ Г±Г·ГЁГІГ*Г*\n";
        else
        {
            f = new double [T];
            ifs>>f[0];
            for(i = 1; i < T; i++)
            {
                ifs>>f[i];
                S = S + 0.5*(pow(f[i],2.0) + pow(f[i - 1],2.0))*1.0;
            }
            cout<<"Г€Г*ГІГҐГЈГ°Г*Г« $f(x)^2 Г°Г*ГўГҐГ* = "<<S<<endl;
            cout<<"sqrt($f(x)^2/T)  Г°Г*ГўГ*Г® = "<<sqrt(S/T)<<endl;
            ifs.close();
            delete [] f;
        }
    }
    system("pause");
    return 0;
}
Файл данных получен по известной нам формуле(я даже его прикреплю)
Миниатюры
квадратный корень от интеграла   квадратный корень от интеграла  
Вложения
Тип файла: txt data.txt (1.0 Кб, 5 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2012, 16:47 #9
Цитата Сообщение от chainiksi Посмотреть сообщение
но я не знаю как в си получить ответ используя эту формулу http://www.cyberforum.ru/attachment....1&d=1335210188
-
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
S = S + 0.5*(pow(f[i],2.0) + pow(f[i - 1],2.0))*1.0;
Ещё раз подчеркуну
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
кто тебе мешает вместо u(x + h) и u(x)
Сообщение от -=ЮрА=-
(pow(u(x + h),2.0) + pow(u(x),2.0))
делать подстановку
pow( u(t[i + 1]) ,2.0) + pow(u(t[i]),2.0) сути же ведь это не поменяет.
. Последний код реализация этих слов, как видешь что аналитическое задание функции что табличное, на результат это не повлияло, в чём проблемма вообще не пойму
chainiksi
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 25
26.04.2012, 12:56  [ТС] #10
Спасибо за помощь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2012, 12:56
Привет! Вот еще темы с ответами:

Вычислить корень квадратный - C++
Помогите пожалуйста написать 2 программы:1 вычислить корень квадратный от (sin(x)+cos(x)); 2 Поменять местами значения переменных х и у с...

Квадратный корень числа - C++
Найдите квадратный корень числа, введенного с клавиатуры! С++

как вычислить корень квадратный - C++
Мне надо вычилсить длину гипотенузы прямоугольного треугольника, я знаю катеты.. как мне возвести катеты в квадрат и потом найти корень...

Корень квадратный ряд Тейлора - C++
Всем доброго времени суток! Не могу никак написать программу для вычисления корня квадратного с помощью ряда Тейлора. Разложил...


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

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

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