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

Решение СЛАУ методом прогонки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.93
mad17
 Аватар для mad17
9 / 9 / 0
Регистрация: 27.12.2012
Сообщений: 165
28.04.2014, 15:42     Решение СЛАУ методом прогонки #1
Добрый день,нужно решить СЛАУ методом прогонки,вот СЛАУ и ее решение.
коэфф перед х1считается как за а1.
перед х2считается как за в1.
перед х3считается как за с1.
результат д1.
СЛАУ:
4x1+3x2=4;
x1+2x2-x3=2;
x2+4x3+x4=7,5;
x3+2x4-x5=1;
x4+2x5=-3;
Решение:
p1=-c/b1=-3/4=-0,75;Q1=d1/b1=4/4=1;
http://www.cyberforum.ru/cgi-bin/latex.cgi?p2=\frac{-c2}{b2+a2*p1}=\frac{1}{2+1*(-0,75)}=0,8
http://www.cyberforum.ru/cgi-bin/latex.cgi?Q2=\frac{d2-a2*Q1}{b2+a2*p1}=\frac{2-1*1}{2+1*(-0,75)}=0,8
http://www.cyberforum.ru/cgi-bin/latex.cgi?p3=\frac{-c3}{b3+a3*p2}=\frac{-1}{4+1*0,8}=-0,2;
http://www.cyberforum.ru/cgi-bin/latex.cgi?Q3=\frac{d3-a3*Q2}{b3+a3*p2}=\frac{7,5-1*0,8}{4+1*0,8}=1,39
http://www.cyberforum.ru/cgi-bin/latex.cgi?p4=\frac{-c4}{b4+a4*p3}=\frac{1}{2+1*(-0,2)}=0,55
http://www.cyberforum.ru/cgi-bin/latex.cgi?Q4=\frac{d4-a4*Q3}{b4+a4*p3}=\frac{1-1*1,39}{2+1*(-0,2)}=-0,216
http://www.cyberforum.ru/cgi-bin/latex.cgi?x5=\frac{d5-a5*Q4}{b5+a5*p4}=\frac{-3-1*(-0,216)}{2+1*0,55}=-1,09
http://www.cyberforum.ru/cgi-bin/latex.cgi?x4=p4*x5+Q4=0,55*(-1,09)+(-0,216)=-0,8155
http://www.cyberforum.ru/cgi-bin/latex.cgi?x3=p3*x4+Q3=-0,2*(-0,8155)+1,39=1,55
http://www.cyberforum.ru/cgi-bin/latex.cgi?x2=p2*x3+Q2=0,8*1,55+0,8=2,04
http://www.cyberforum.ru/cgi-bin/latex.cgi?x1=p1*x2+Q1=-0,75*2,04+1=-0,53
проведу проверку к примеру по 2 уравнению
-0,53+2*2,04-1,55=2; уравнение по численным методам решено верно,однако преподаватель сказал написать программу считающую эту СЛАУ.
Может были похожие темы,заранее спасибо за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 15:42     Решение СЛАУ методом прогонки
Посмотрите здесь:

Решение СЛАУ методом Зейделя C++
Решение СЛАУ методом Гаусса C++
C++ Решение СЛАУ методом Гаусса
C++ Решение СЛАУ методом Гаусса
Решение СЛАУ методом отражений C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WingCommander
Заблокирован
28.04.2014, 15:47     Решение СЛАУ методом прогонки #2
Цитата Сообщение от mad17 Посмотреть сообщение
Может были похожие темы
а эта ветка вся состоит из таких же тем - "помоги наглому студенту решить за него лабораторную за бесплатно"
Цитата Сообщение от mad17 Посмотреть сообщение
заранее спасибо за помощь.
Можешь не благодарить В твоих каракулях вряд ли кому - то будет интересно разбираться, вот если бы ты сам начал делать свою работу и возникли бы у тебя проблемы в конкретной строчке кода - тогда - да, тебе бы любой с радостью помог, т.к. эта ветка для начинающих ПРОГРАММИСТОВ, а не для халявщиков.
mad17
 Аватар для mad17
9 / 9 / 0
Регистрация: 27.12.2012
Сообщений: 165
28.04.2014, 20:10  [ТС]     Решение СЛАУ методом прогонки #3
WingCommander что за вброс ?Вас обидели ?
"помоги наглому студенту" -я все ргр по численным методам решил сам,как собственно и эту,чисто с итерацией помог ТомАрдер, не получалось коэффициенты подогнать,а тут нужно было решить методом прогонки и написать прогу,СЛАУ я решил,-по части программы-я к сожалению не очень.
Насчет каракуль,составлял с помощью удобного редактора,если он вам не понятен,можно просто пройти мимо,всех благ,я не агр=)
alekopoko
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 20:30     Решение СЛАУ методом прогонки #4
по части программы-я к сожалению не очень.
ну начни с малого
вот допустим -

вводим 5x1 + 7x2 - x3
а программа должна находить коэффициенты (т.е. a=5,b=2,c=-1)

знаешь как это реализовать? если нет дам подсказку=)

Добавлено через 12 минут
b=7 (опечатка)
mad17
 Аватар для mad17
9 / 9 / 0
Регистрация: 27.12.2012
Сообщений: 165
28.04.2014, 21:01  [ТС]     Решение СЛАУ методом прогонки #5
подумал,выходит основная проблема состоит в верном определении коэффициентов у числа?
формулы с p1 до Q4 и потом с х4 до х1 просто записать и все же можно?
alekopoko
1 / 1 / 1
Регистрация: 28.04.2014
Сообщений: 33
28.04.2014, 22:06     Решение СЛАУ методом прогонки #6
пример сложения - два шага , ввод ,вычисляется формула по полученному вводу
1)int a,b;
2)формула нахождения c (допустим a+b)


у тебя тоже самое только сложнее
1)ввод СЛАУ
2) находишь коэффициенты полученного СЛАУ
3)формула нахождения p1(допустим (a+b)/c)
4) нашел p1 ,значит найдешь p2 ,подставив p1 в формулу нахождения p2 и т.д.
mad17
 Аватар для mad17
9 / 9 / 0
Регистрация: 27.12.2012
Сообщений: 165
30.04.2014, 14:16  [ТС]     Решение СЛАУ методом прогонки #7
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<stdio.h>
#include<conio.h>
main(){
int N;
printf("Vvedite kol-vo uravnenii: ");
scanf("%d",&N);
int i;
float A[N],B[N],C[N],D[N],P[N],Q[N],X[N];
 
for(i=1;i<N;i++){
printf("a%d = ",i+1);
scanf("%f",&A[i]);}
 
for(i=0;i<N;i++){
printf("b%d = ",i+1);
scanf("%f",&B[i]);}
 
for(i=0;i<N-1;i++){
printf("c%d = ",i+1);
scanf("%f",&C[i]);}
 
for(i=0;i<N;i++){
printf("d%d = ",i+1);
scanf("%f",&D[i]);}
 
P[0]=-(C[0]/B[0]);
printf("P[1] = %f\n",P[0]);
Q[0]=D[0]/B[0];
printf("Q[1] = %f\n",Q[0]);
 
for(i=1;i<N-1;i++){
P[i]=-C[i]/(B[i]+A[i]*P[i-1]);
printf("P[%d] = %f\n",i+1,P[i]);
Q[i]=(D[i]-A[i]*Q[i-1])/(B[i]+A[i]*P[i-1]);
printf("Q[%d] = %f\n",i+1,Q[i]);}
 
X[N-1]=(D[N-1]-A[N-1]*Q[N-2])/(B[N-1]+A[N-1]*P[N-2]);
printf("X[%d] = %f\n",N,X[N-1]);
 
for(i=N-1;i>0;i--){
X[i-1]=P[i-1]*X[i]+Q[i-1];
printf("X[%d] = %f\n",i,X[i-1]);}
 
getch();}
как-то так?

Добавлено через 4 часа 13 минут
апну

Добавлено через 17 часов 5 минут
апну
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 15:24     Решение СЛАУ методом прогонки
Еще ссылки по теме:

Решение СЛАУ методом отражений C++
Решение СЛАУ методом вращения C++
C++ Решение слау методом релаксации

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

Или воспользуйтесь поиском по форуму:
Ev_Hyper
 Аватар для Ev_Hyper
1806 / 1627 / 435
Регистрация: 15.12.2013
Сообщений: 5,777
30.04.2014, 15:24     Решение СЛАУ методом прогонки #8
mad17, а вы уверены в ваших мат. выкладках?

Можно было найти на форуме программу:
Метод прогонки - исправить код
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
#include "stdafx.h"
#include "conio.h"
#include "math.h"
#include "iostream"
using namespace std;
 
int i,n,k,n1; 
double z;
double A[50][50];
double B[50]; 
double eps[50];
double X[50]; 
double et[50];
 
int main()
{
cout<<"Vvedite razmernost matrici: ";
cin>>n1;
 
cout<<"Vvedite "<<n1<<" strok po "<<n1<<" 4isel:"<<endl;
for (i=0;i<n1;i++)
    for (k=0;k<n1;k++)
        cin>>A[i][k];
 
cout<<"Matrix A:"<<endl;
for (i=0;i<n1;i++)
    {
    for (k=0;k<n1;k++)
        cout<<A[i][k]<<"\t ";
    cout<<endl;
    }
 
cout<<"Vvedite "<<n1<<" 4isel:"<<endl;
for(i=0;i<n1;i++)
    cin>>B[i];
 
cout<<"Matrix B:"<<endl;
for (i=0;i<n1;i++)
    cout<<B[i]<<endl;
 
n=n1-1;
eps[0]=-A[0][1]/A[0][0];
et[0]=B[0]/A[0][0];
 
for(i=1;i<n;i++)
    {
    z=A[i][i]+A[i][i-1]*eps[i-1];
    eps[i]=-A[i][i+1]/z;
    et[i]=(B[i]-A[i][i-1]*et[i-1])/z;
    }
 
X[n]=(B[n]-A[n][n-1]*et[n-1])/(A[n][n]+A[n][n-1]*eps[n-1]);
 
for(i=n-1;i>=0;i--)
    X[i]=eps[i]*X[i+1]+et[i];
 
cout<<"Matrix X:"<<endl;
for(i=0;i<n1;i++)
    cout<<X[i]<<endl;
 
getch();
return 0;
}
Код
Vvedite razmernost matrici: 5
Vvedite 5 strok po 5 4isel:
4
3
0
0
0
1
2
-1
0
0
0
1
4
1
0
0
0
1
2
-1
0
0
0
1
2
Matrix A:
4        3       0       0       0
1        2       -1      0       0
0        1       4       1       0
0        0       1       2       -1
0        0       0       1       2
Vvedite 5 4isel:
4
2
7.5
1
-3
Matrix B:
4
2
7.5
1
-3
Matrix X:
-0.540909
2.05455
1.56818
-0.827273
-1.08636
Для продолжения нажмите любую клавишу . . .
Yandex
Объявления
30.04.2014, 15:24     Решение СЛАУ методом прогонки
Ответ Создать тему
Опции темы

Текущее время: 08:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru