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

Простое интегрирование по времени

17.11.2014, 18:59. Показов 469. Ответов 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
while (t<=interval) 
{   
    v=vp+((1-pa/p)*g-(9/2)*na*vp/(r*r*p))*dt;
 
    z=zp+vp*dt;
    
    v2=vp*exp(-(9/2)*na*t/(r*r*p))+((2/9)*g*(pa/p-1)*(r*r*p)/na)*(1-exp(-(9/2)*na*t/(r*r*p)));
 
        if ((t=j*dt_out)&&(z<H)) {
                                  cout<<j<<": t="<<t<<"; v="<<v<<"; v2="<<v2<<"; z="<<z<<";"<<endl;
                                  j++;
    vp=v;
    zp=z;
    t=t+dt;       
 
}
    
 
if (z>=H) {
            
            cout<<"Spherule reached the bottom of the reservoir"<<endl;
         
           }
 
}
Данный цикл подразумевает, что при уменьшении dt первая формула с v стремится ко второй с v2,
но вместо этого при уменьшении скажем в 10 раз dt результат обеих формул просто уменьшается в 10 раз, при этом как немного друг от друга отличался, так и продолжает отличаться. Изначально dt =0.1

В чем ошибка?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2014, 18:59
Ответы с готовыми решениями:

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

Простое интегрирование, ошибки при вводе
Моя программа вроде как *верна* но при вводе выскакивают ошибки и значение функции не считается....

Простое реле времени 220В
Подскажите, плз. Покупное устройство, которое замыкает контакты по кнопке управления, а размыкает...

Простое приложение с синхронизацией с БД в реальном времени
Всем доброго времени суток. У меня тема из раздела &quot;Как делают такие вещи на самом деле?&quot; Есть...

3
Модератор
Эксперт С++
12115 / 9784 / 5912
Регистрация: 18.12.2011
Сообщений: 26,255
17.11.2014, 19:36 2
Цитата Сообщение от Надежда Маркова Посмотреть сообщение
9/2
равно 4
Цитата Сообщение от Надежда Маркова Посмотреть сообщение
2/9
равно нулю

Добавлено через 51 секунду
Цитата Сообщение от Надежда Маркова Посмотреть сообщение
(t=j*dt_out)
Портите переменную цикла присвоением
0
0 / 0 / 0
Регистрация: 17.11.2014
Сообщений: 46
17.11.2014, 23:13  [ТС] 3
zss, Спасибо за ответ.

Портите переменную цикла присвоением
А как должно быть? Если поставить == , то он выводит только первую нулевую строку..

Добавлено через 3 часа 10 минут
Хорошо. Если убрать все лишнее..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while (t<=interval) 
{   
    v=vp+((1-pa/p)*g-(4.5)*na*vp/(r*r*p))*dt;
 
    z=zp+vp*dt;
    
    v2=vp*exp(-4.5*na*t/(r*r*p))+(0.2*g*(1-pa/p)*(r*r*p)/na)*(1-exp(-4.5*na*t/(r*r*p))); 
 
    vp=v;
    zp=z;
    t=t+dt;  
    
}
cout<<v<<"           "<<v2<<endl;
есть ли здесь ошибки? на выходе результаты совпадают очень приблизительно... А должны бы точно
0
Заблокирован
19.11.2014, 05:30 4
Цитата Сообщение от Надежда Маркова Посмотреть сообщение
на выходе результаты совпадают очень приблизительно
Зависит от шага по t.
Чтобы добиться нужной точности, уменьшайте шаг по t в каждой итерации в 2 раза и проверяйте на точность.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2014, 05:30
Помогаю со студенческими работами здесь

Отказ при простое в очереди более t времени
Доброго времени суток! В универе дали задание на построение модели, вроде сделал, но не могу...

Очень частый синий экран с недавнего времени, 75 градусов mcp в простое
За 2 дня была куча синих экранов(на данный момент 15 дампов). Синий экран в основном появлялся на...

Интегрирование с заменой переменных или интегрирование по частям?
Не знаю как решить, не получается \int ({x}^{2}+1){3}^{x}dx

Дано n чисел. Для каждого из них определяется, простое ли оно. Если простое, выводится 1, иначе 0.
Здравствуйте! Помогите, пожалуйста. Нужно уменьшить время выполнения программы, как это можно...


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

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

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