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

Метод конечных разностей

16.11.2014, 17:38. Показов 12017. Ответов 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
#include "stdafx.h"
#include"iostream"
#include"cmath"
 
using namespace std;
 
int main()
{
 
    int a=0;
    double b=0.5;
    int N=10;
    double h=0.05;
for (double i=0;i<=0.5;i+=0.05)
{
    double  B=1/(h*h)+i/h;
    cout<<"B="<<B<<endl;
    double A=1/(h*h)-i/h;
 cout<<"A="<<A<<endl;
    double F=4*i;
    cout<<"f="<<F<<endl;
    double C=2/(h*h)+2;
    cout<<"c="<<C<<endl;
}
system("pause");
    return 0;
}
сама задача на фотке, не могу написать метод прогонки,да и с подсчетом коэффициентов получился какой то быдлокод, направьте пожалуйста на путь истинный, буду очень благодарен.
Миниатюры
Метод конечных разностей  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2014, 17:38
Ответы с готовыми решениями:

Метод конечных разностей для краевой задачи
Помогите пожалуйста. Надо написать программу, которая решает краевую задачу для ОДУ 2 порядка...

Метод Конечных Разностей для уравнения в частных производных
Здравствуйте, требуется ваша помощь в нахождении ошибки в программе. Вычисляю по явной схеме....

Метод конечных разностей для решения дифференциального уравнения
Используя метод конечных разностей, решить краевую задачу для дифференциального уравнения второго...

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

1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
04.12.2014, 19:48  [ТС] 2
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
#include "stdafx.h"
#include"iostream"
#include"cmath"
 
using namespace std;
 
int main()
{
    double h=0.05;
    double  N=11; 
    double x[11]={0,0.05,0.1,0.15,0.20,0.25,0.3,0.35,0.40,0.45,0.5};
    double A[11];
    double B[11];
    int C;
    double y[11];
    double alf[11];
    double bet[11];
    double F[11];
    for(int i=0;i<N;i++)
    {
        C=2/(h*h)+2;
        A[i]=1/(h*h)-x[i]/h;
        B[i]=1/(h*h)+x[i]/h;
        F[i]=4*x[i];
        //cout<<A[i]<<endl;
        for(int i=1;i<N;i++)
        {
            alf[0]=0;
            bet[0]=1;
            alf[i]=(1/(C-A[i-1]*alf[i-1]))*B[i-1];
            bet[i]=(1/(C-A[i-1]*alf[i-1]))*(F[i-1]+A[i-1]*bet[i-1]);
            cout<<bet[i]<<endl;
        for(int i=N;i>=1;i--)
        {
            y[11]=1.279;
            y[i]=alf[i]*y[i-1]+bet[i];
            //cout<<y[i]<<endl;
        }
    }
    }
   system("pause");
    return 0;
}
программа зацикливается, не могу понять почему, помогите пожалуйста,ребят

Добавлено через 2 часа 56 минут
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
#include"iostream"
#include"iomanip"
#include"cmath"
 
using namespace std;
 
int main()
{
    double h=0.05;
    int N=11; 
    double x[11]={0,0.05,0.1,0.15,0.20,0.25,0.3,0.35,0.40,0.45,0.5};
    double A[100];
    double B[100];
    double C[100];
    double y[100];
    double alf[100];
    double bet[100];
    double F[100];
    for(int i=1;i<N;i++)
    {
        C[i]=2/(h*h)+2;
        A[i]=1/(h*h)-x[i]/h;
        B[i]=1/(h*h)+x[i]/h;
        F[i]=4*x[i];
        //cout<<A[i]<<endl;
    }
        for(int i=1;i<=N-1;i++)
        {
             alf[0]=0;
             bet[0]=1;
            alf[i]=(1/(C[i]-A[i]*alf[i-1]))*B[i];
            bet[i]=(1/(C[i]-A[i]*alf[i-1]))*(F[i]+A[i]*bet[i-1]);
            //cout<<"bet[i]="<<bet[i]<<"\t"<<"alf[i]="<<alf[i]<<endl;
        }
    for(int i=N-1;i>=1;i--)
        {
            y[11]=1.279;
            y[i]=alf[i]*y[i+1]+bet[i];
            cout<<y[i]<<endl;
        }
    
   system("pause");
    return 0;
}
уже не нужно, сам разобрался, вот рабочий код,может кому пригодится
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2014, 19:48
Помогаю со студенческими работами здесь

Используя таблицу конечных разностей, определить значение 1 и 2-ой производной
1. Используя таблицу конечных разностей, определить значение 1 и 2-ой производной в точках Х=Х0,...

Решение краевой задачи для линейного дифференциального уравнения второго порядка методом конечных разностей
Помогите составить программу в С++: Используя метод конечных разностей, найти решение краевой...

Метод конечных элементов
Помогите с алгоритмами по программированию МКЭ. С математическими основами метода я разобрался, но...

Метод конечных элементов, в чем ошибка?
Всем привет!нужно написатьт прогу для решения одномерной задачи методом конечных элементов. в чем...


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

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

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