Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Даны функции a (x, y, z), b (x, y, z), v (a, b), w (a, b) и f (v, w) Напишите программу, которая вы- ет значение функции f для нанесенных пользователем x, y, z. Вычисление функций a, b, v и w в программе должно быть задано в виде подпрограмм-функций. Формулы для исчисления ления функций a и b возьмите из таблицы ниже a=(3+exp(y-1))/(1 +(x*x)*abs(y-tan(z)) );4 b=1+abs(y-x)+pow(y-x,2)/2+pow((abs(y-x)),3)/3; v=sqrt(a)+sqrt(b); w=sqrt(a)+b; f=pow((v+w),2)+v*w;... https://www.cyberforum.ru/ cpp-beginners/ thread992116.html C++ Написать перегруженную функцию
Написать перегруженные функции и основную программу, которая их вызывает. 1. для сложения целых чисел; 2. для сложения комплексных чисел.
C++ Создание 2d массива определённого размера через функцию https://www.cyberforum.ru/ cpp-beginners/ thread992099.html
обьявляю в классе массив float *arary_2d; пытаюсь создать через void Matrix::set_array(int входяшие данные рамезра) { this->arary_2d = new float ; } так и не получилось реализовать, возможно ли создавать массивы таким образом? Что бы размер можно было указывать самому через функцию?
C++ Быстрая сортировка. Переполнение стека Написал программу быстрой сортировки происходит переполнение стека, при большом количестве значений. Кто чем может помочь исправить эту распрастраненную ошибку? #include <iostream> using namespace std; int partition(int A,int p,int r); void quicksort(int A,int p,int r); int main() { int p=0; const int n=5; int A={0,5,45,4,-2}; https://www.cyberforum.ru/ cpp-beginners/ thread992098.html
C++ Двоичная система
Разработать программу для вычисления математического выражения: d=(e^(|x-y|)*tg(z))/(arctg(y)+sqrt(x))+ln(x) Все переменные и результат имеют вещественный тип. Округлить число до целого в большую сторону и вывести его двоичной системе счисления используя операции побитового сдвига и умножения. Вот мой код: int main(int argc, char *argv) { float x,y,z,d; int a; printf("Enter to x and...
C++ Переставить строки матрицы так, чтобы элементы последнего столбца были отсортированы по возрастанию Срочно понадобилась помощь! Дано такое условие: Переставить строки матрицы так, чтобы элементы последнего столбца были отсортированы по возрастанию. Способ сортировки я знаю. Знаю, естественно, как ввести матрицу. Но как сделать так, как в условии, а именно нужным образом переставить строки? Хотелось бы подсказочку, что за чем идёт( https://www.cyberforum.ru/ cpp-beginners/ thread992084.html
C++ Базовый уровень https://www.cyberforum.ru/ cpp-beginners/ thread992083.html
Парни, помогите с написанием текста программ. Новичек, пытаюсь понять как все работает. Буду очень благодарен, так как задачки эти преподу нужно будет показать( а у меня не получается. что-то я упустил. Если кто согласится за символическую оплату труда помочь в написании программ в дальнейшем - пишите в личку. очень нужна помощь(
Найти числа в1,в2,...вm,равные наименьшим значениям строк C++
Найти числа в1,в2,...вm,равные наименьшим значениям строк.
C++ Необходимо грамотное отсечение столбцов и строк двумерного массива! Начинаю программировать на С++. Необходимо отсечь строки и столбцы двумерного массива. Если это возможно то из самой памяти. Заранее спасибо. Желательно с комментариями. Желательно применимо к этой программе: #include <iostream> #include <algorithm> #include <time.h> https://www.cyberforum.ru/ cpp-beginners/ thread992054.html C++ Определить название месяца https://www.cyberforum.ru/ cpp-beginners/ thread992053.html
Друзья, помогите пожалуйста решить задачки и записать их на С++. 2. С начала 1990 года по некоторый день прошло n месяцев и 2 дня. Определить название месяца(январь,февраль и т.п.) этого дня. Год может быть високосным. Умоляю, помогите пожалуйста.
C++ Вывести на экран числа:
Вывести на экран числа следующим образом двумя способами с помощью оператора цикла while, do while. 25 25.5 24.8 26 26.5 25.8 ................. 35 35.5 34.8 Спасибо.
C++ Не могу доработать программу https://www.cyberforum.ru/ cpp-beginners/ thread992045.html
Вообщем такое задание :Описать структуру с именем Order, содержащую следующие поля: plat-расчетный счет плательщика, pol- расчетный счет получателя, summa-перечисляемая сумма. Написать программу, выполняющую ввод с клавиатуры данных в массив Spisok, состоящий из 15 элементов типа Order. Записи должны быть упорядочены по расчетным счетам плательщиков. Вывести на экран информацию о сумме, снятой с...
1 / 1 / 0
Регистрация: 13.03.2013
Сообщений: 24
0

Странная работа прогонки - C++ - Ответ 5257222

29.10.2013, 22:55. Показов 825. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. Уже целую неделю бьюсь над программой, которая должна решать одномерное уравнение теплопроводности. Задача поставлена так:

Ut = Uxx + f(x,t), 0<x<1, 0<t<2
Ux(0,t)=mu1(t), 0<t<2
U(1,t)=mu2(t), 0<t<2
U(x,0)=fi(x), 0<x<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
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <iostream>
#include <math.h>
#include <fstream>
#include <iomanip>
using namespace std;
 
//f(x,t)
double fin(double x, double t){
    return -(6.0+cos(4.0*x)+16.0*t*cos(4.0*x));
}
 
//mu1(t)
double muleft(double t){
    return 0.0;
}
 
//mu2(t)
double muright(double t){
    return 6.0-t*cos(4.0);
}
 
//u(x,0)
double ubegin(double x){
    return 3.0*x*x+3.0;
}
 
//Истинное решение.
double ureal(double x, double t){
    return 3.0*x*x+3.0-t*cos(4.0*x);
}
 
//s=tau/h*h - число Куранта.
int main(){
 
    const int Nh=100; const double h=1.0/double(Nh); const double s=10.0; const double tau=s*h*h; const double sigma=0.5; const int Tp=2.0/tau;
    double u1[Nh+2],u0[Nh+2],F[Nh+2],G[Nh+2],a[Nh+2],b[Nh+2],c[Nh+2],d[Nh+2],epsilon;
    ofstream res;
 
    //Нулевой слой.
    for(int i=0;i<=Nh;i++){
        double ku = double(i)*h;
 
        u0[i]=ubegin(ku);
    }
 
    cout<<endl;
 
    for(int j=1;j<=Tp;j++){
        double tu = double(j)*tau;
 
        //Прогонка начинается. Здесь a[i]u1[i-1]+b[i]u1[i]+c[i]u1[i+1]=d[i], u1[i-1]=u1[i]*F[i]+G[i].
 
        for(int k=1;k<Nh;k++){
            double ku = double(k)*h;
 
            a[k]=s*sigma;
            b[k]=-1.0-2.0*sigma*s;
            c[k]=s*sigma;
            d[k]=(u0[k-1]+u0[k+1])*s*(sigma-1.0)+u0[k]*(-1.0+2.0*s*(1.0-sigma))-tau*(sigma*fin(ku,tu)+(1.0-sigma)*fin(ku,tu-tau));  
        }
 
        //Из аппроксимации левого граничного условия следует:
        F[0]=2.0*s/(1.0+2.0*s);
        G[0]=(-2.0*s*h*muleft(tu)+u0[0]+h*h*s*fin(0.0,tu))/(2.0*s+1.0);
 
        //Искусственным образом я коэффициенты a[1] и c[n-1] обнуляю, подставляя нужные формулы для аппроксимации граничных условий, которые точно верные.
 
        d[1]-=a[1]*G[0];
        b[1]+=a[1]*F[0];
        a[1]=0.0;
 
        u1[Nh]=muright(tu);
        d[Nh-1]-=c[Nh-1]*u1[Nh];
        c[Nh-1]=0.0;
 
        for(int k=1;k<Nh;k++){
            F[k]=-c[k]/(a[k]*F[k-1]+b[k]);
            G[k]=(d[k]-a[k]*G[k-1])/(a[k]*F[k-1]+b[k]);
        }
 
        for(int l=Nh-1;l>0;l--){
            u1[l]=u1[l+1]*F[l]+G[l];
        }
 
        u1[0]=u1[1]*F[0]+G[0];
        //u1[0]=u1[1]*2.0*s/(1.0+2.0*s)+(-2.0*s*h*muleft(tu)+u0[0]+h*h*s*fin(0.0,tu))/(2.0*s+1.0);
 
        //Вывод информации о слое на времени t=2.0 и максимальной погрешности.
 
        if(j==Tp){
            epsilon=0.0;
 
            for(int s=0;s<=Nh;s++){
                double neu;
 
                neu=abs(u1[s]-ureal(double(s)*h,double(Tp)*tau));
                if(neu>epsilon) epsilon=neu;
            }
 
            res.open("C:\\Heat equation (Sigma-weight=0.5_h=100)_not mine.txt",ios::out);
            res<<"x  U0(x,t)  U1(x,t)"<<endl;
            res<<endl;
 
            for(int s=0;s<=Nh;s++){
                res<<setprecision(10)<<fixed<<h*s;
                res<<"  ";
 
                res<<setprecision(10)<<fixed<<ureal(double(s)*h,Tp*tau);
                res<<"  ";
 
                res<<setprecision(10)<<fixed<<u1[s];
                res<<endl;
            }
 
            res<<endl;
            res<<Nh<<" "<<h<<" "<<s<<" "<<tau<<" "<<Tp<<endl;
            res<<"time=";
            res<<setprecision(10)<<fixed<<Tp*tau;
            res<<", epsilon=";
            res<<setprecision(10)<<fixed<<epsilon;
    
            res.close();
        }
 
        for(int k=0;k<=Nh;k++){
            u0[k]=u1[k];
        }
    }
 
    cout<<"This is the end!"<<endl;
    return 0;
}


Вернуться к обсуждению:
Странная работа прогонки C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2013, 22:55
Готовые ответы и решения:

Странная работа getch
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int m;...

Странная(или не странная, незнаю) реакция на буквы, знаки операций
Всем добрый день. Делаю маленькую наработку, пока есть только начало. Ниже код: #include...

Мусорка или "странная" работа массива указателей
Всем привет. Постепенно поглащаю C++. Знания пока на уровне нуля. Учусь по дейтелу + шилду +...

Метод прогонки
Здравствуйте, пытаюсь реализовать метод прогонки, не могу проверить работу, не понимаю как...

0
29.10.2013, 22:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2013, 22:55
Помогаю со студенческими работами здесь

метод прогонки С++
Запрограммировать краевую задачу методом прогонки(тридиагональнои матрицы) Добавлено через 4...

Метод обратной прогонки
Нужно реализовать метод обратной прогонки на с++.МОЖНО ВЗЯТЬ ЛЮБОЙ ПРИМЕР.КТО МОЖЕТ ПОМОГИТЕ!!

Ошибка в коде метода прогонки
(Метод прогонки) Ответ выводит неправильный #include &lt;iostream&gt; #include &lt;iomanip&gt; #include...

Решение СЛАУ методом прогонки
Добрый день,нужно решить СЛАУ методом прогонки,вот СЛАУ и ее решение. коэфф перед х1считается как...

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