Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/47: Рейтинг темы: голосов - 47, средняя оценка - 4.72
mad17
9 / 9 / 0
Регистрация: 27.12.2012
Сообщений: 165
1

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

28.04.2014, 15:42. Просмотров 9134. Ответов 7
Метки нет (Все метки)

Добрый день,нужно решить СЛАУ методом прогонки,вот СЛАУ и ее решение.
коэфф перед х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; уравнение по численным методам решено верно,однако преподаватель сказал написать программу считающую эту СЛАУ.
Может были похожие темы,заранее спасибо за помощь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 15:42
Ответы с готовыми решениями:

Решение СЛАУ методом Гаусса
В институте задали написать программу решения СЛАУ методом Гаусса, но я абсолютный чайник (знаю,...

Решение СЛАУ методом Жордана
Решить СЛАУ методом Жордана, Вычислить интегральнок выражение методом Симпсона

Решение СЛАУ методом Крамера
Доброго времени суток! Пишу курсовую по методу Крамера. Вроде ничего сложного, но...

Решение слау методом релаксации
Доброго времени суток. В качестве исходных данных имеются слау большой размерности (koeff__100.7z)...

Решение СЛАУ методом Гаусса
помогите разобраться!!ВЫдает 85 ошибок!!!! #include <stdio.h> #include <conio.h> #include...

7
WingCommander
Заблокирован
28.04.2014, 15:47 2
Цитата Сообщение от mad17 Посмотреть сообщение
Может были похожие темы
а эта ветка вся состоит из таких же тем - "помоги наглому студенту решить за него лабораторную за бесплатно"
Цитата Сообщение от mad17 Посмотреть сообщение
заранее спасибо за помощь.
Можешь не благодарить В твоих каракулях вряд ли кому - то будет интересно разбираться, вот если бы ты сам начал делать свою работу и возникли бы у тебя проблемы в конкретной строчке кода - тогда - да, тебе бы любой с радостью помог, т.к. эта ветка для начинающих ПРОГРАММИСТОВ, а не для халявщиков.
0
mad17
9 / 9 / 0
Регистрация: 27.12.2012
Сообщений: 165
28.04.2014, 20:10  [ТС] 3
WingCommander что за вброс ?Вас обидели ?
"помоги наглому студенту" -я все ргр по численным методам решил сам,как собственно и эту,чисто с итерацией помог ТомАрдер, не получалось коэффициенты подогнать,а тут нужно было решить методом прогонки и написать прогу,СЛАУ я решил,-по части программы-я к сожалению не очень.
Насчет каракуль,составлял с помощью удобного редактора,если он вам не понятен,можно просто пройти мимо,всех благ,я не агр=)
0
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 (опечатка)
0
mad17
9 / 9 / 0
Регистрация: 27.12.2012
Сообщений: 165
28.04.2014, 21:01  [ТС] 5
подумал,выходит основная проблема состоит в верном определении коэффициентов у числа?
формулы с p1 до Q4 и потом с х4 до х1 просто записать и все же можно?
0
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 и т.д.
0
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 минут
апну
0
Ev_Hyper
Заблокирован
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
Для продолжения нажмите любую клавишу . . .
1
30.04.2014, 15:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 15:24

Решение СЛАУ методом Гаусса
У меня программа для решения слау методом Гаусса с выбором главного элемента по столбцам. Что-то...

Решение СЛАУ методом Зейделя
Методом Зейделя решить с точностью до 0.001 заданную систему уравнений 3.3*x1+2.1*x2+2.8*x3=0.8...

Решение СЛАУ методом отражений
Всем привет. Задали писать курсач. Нужно реализовать метод отражения. Предусмотреть ввод числа...


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

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

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