Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Danikor
0 / 0 / 0
Регистрация: 04.06.2014
Сообщений: 33
#1

Посчитать количество проведенных итераций (метод простых итераций, Pascal -> C++) - C++

10.11.2014, 23:36. Просмотров 1501. Ответов 4
Метки нет (Все метки)

перевести из паскаля в С++

Pascal
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
program method_of_simple_iteration;
uses crt;
var a:array [1..3,1..3] of real;
b,c:array [1..3] of real;
x1,x2,x3,x1c,x2c,x3c,E:real;
n:integer;
begin
clrscr;
 
a[1,1]:=9.88; a[1,2]:=-6.4; a[1,3]:=1.18; b[1]:=-7.07;
a[2,1]:=-1.73; a[2,2]:=10.47; a[2,3]:=0.03; b[2]:=-1;
a[3,1]:=2.47; a[3,2]:=-1.67; a[3,3]:=11.25; b[3]:=-2.13;
 
writeln('Введите x1, x2, x3 начальные значения(приближения):');
readln(x1,x2,x3);
 
writeln('Введите степень точности:');
readln(E);
 
repeat
begin
x1c:=x1;
x2c:=x2;
x3c:=x3;
 
x1:=(-a[1,2]*x2c-a[1,3]*x3c+b[1])/a[1,1];
x2:=(-a[2,1]*x1c-a[2,3]*x3c+b[2])/a[2,2];
x3:=(-a[3,1]*x1c-a[3,2]*x2c+b[3])/a[3,3];
 
c[1]:=abs(x1-x1c);
c[2]:=abs(x2-x2c);
c[3]:=abs(x3-x3c);
 
n:=n+1;
 
end;
until ((c[1]<E) and (c[2]<E) and (c[3]<E));
 
writeln(' X1=',x1:7:4,' X2=',x2:7:4,' X3=',x3:7:4);
write('К-во итераций:',n);
readkey;
end.
программа должна считать количество проведенных итераций
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2014, 23:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Посчитать количество проведенных итераций (метод простых итераций, Pascal -> C++) (C++):

Метод простых итераций. С/С++ - C++
Такое задание: написать алгоритм численного решения нелинейных уравнений методом простых итераций и реализовать его на языке...

Метод простых итераций - C++
Здраствуйте! Нужно методом простой итерации решать такую систему нелинейных уравнений с точностью e=10-4 и найти погрешность. Нашел на...

Метод простых итераций - C++
Дана функция 1.4 Cos - Log=0 Ее надо преобразовать к виду ф(x)=x, я не совсем понимаю как это сделать нужно написать программу в C++...

Метод простых итераций - C++
Необходимо реализовать программно метод простых итерация для решения НУ. к примеру возьмём x^6-3x^2+x-1, интервал изоляции корня . ...

Метод простых итераций - C++
Помогите с написанием программы на С++, нужно решить СЛАУ методом простых итераций. с точностью 0,0001. Мой код #include &lt;conio.h&gt; ...

Метод простых итераций для СЛАУ - C++
Здравствуйте! Пытаюсь реализовать метод простых итераций. Все функции, которые работают нормально, кроме самих итераций. Не могу понять,...

4
D_in_practice
331 / 331 / 159
Регистрация: 02.10.2014
Сообщений: 666
11.11.2014, 04: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
44
45
46
47
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main(){
    
    double a[3][3] = {
        {9.88, -6.4, 1.18},
        {-1.73, 10.47, 0.03},
        {2.47 , -1.67, 11.25}
    };
    
    double b[] = {-7.7, -1, -2.13};
    
    double x[3];
    cout << "Ââåäèòå Г*Г*Г·Г*ëüГ*ûå Г§Г*Г*Г·ГҐГ*ГЁГї (ïðèáëèæåГ*ГЁГї): ";
    cin >> x[0] >> x[1] >> x[2];
    
    double eps;
    cout << "Ââåäèòå Г±ГІГҐГЇГҐГ*Гј òî÷Г*îñòè: ";
    cin >> eps;
    
    double xc[3], c[3];
    int n = 0;
    
    do{
        xc[0] = x[0];
        xc[1] = x[1];
        xc[2] = x[2];
        
        x[0] = (-a[0][1] * xc[1] - a[0][3] * xc[2] + b[0]) / a[0][0];
        x[1] = (-a[1][0] * xc[0] - a[1][2] * xc[2] + b[1]) / a[1][1];
        x[2] = (-a[2][0] * xc[0] - a[2][1] * xc[1] + b[2]) / a[2][2];
        
        c[0] = fabs(x[0] - xc[0]);
        c[1] = fabs(x[1] - xc[1]);
        c[2] = fabs(x[2] - xc[2]);
        
        ++n;
    }while (c[0] > eps && c[1] > eps && c[2] > eps);
    
    cout << "x1 = " << x[0] << endl;
    cout << "x2 = " << x[1] << endl;
    cout << "x3 = " << x[2] << endl;
    cout << "Êîëëè÷åñòâî ГЁГІГҐГ°Г*öèé: " << n << endl;   
}
1
Danikor
0 / 0 / 0
Регистрация: 04.06.2014
Сообщений: 33
11.11.2014, 22:31  [ТС] #3
Очень благодарен за помощь!

а подскажите , как вписать функцию (tg(0.47x+0.2)=x^2 на языке С++ если есть пример на языке паскаля.
(нужно найти корень нелинейного уравнения).

вот пример.

program method_of_dividing_the_segment_in_half;
uses crt;
var a,b,c,E,sol:real;
n:integer;

function f(x:real):real;
begin
f:=sqrt(x)-cos(0.387*x);
end;

begin
clrscr;
write('Введiть межi вiдрiзка на якому iснує корiнь:');
readln(a,b);

write('Введiть степiнь точностi:');
readln(E);

repeat
begin
c:=(a+b)/2;
if f(a)*f(c)<0 then b:=c else a:=c;
n:=n+1;
end;
until ((b-a)<E);

sol:=c;
writeln('Розв"язок:',sol:8:6,' f(x)=',f(sol):8:6,' n=',n);
readkey;
end.


начал переводить - написал свой код. но никак не могу вписать ф-ю. не могу понять как.

вот мой код
#include <iostream>
#include <math.h>
#include <conio.h>

using namespace std;
int main()
{
int a,b,c,f,n,x;
double solution;

cout<<"Vvedit' znachennya pochatky vidrizka - a=";
cin>>a;
cout<<"Vvedit' znachennya kincya vidrizka - b=";
cin>>b;
double eps;
cout << "Vvedit' stepin' tochnosti: ";
cin >> eps;
do
{
f=((cos/sin)(0.47(x)+0.2)-pow(x,2));
c=(a+b)/2;
if (f(a)*f(c)<0) b=c;
else a=c;
n=n+1;
while((b-a)<eps);
}

}
0
D_in_practice
331 / 331 / 159
Регистрация: 02.10.2014
Сообщений: 666
12.11.2014, 00:58 #4
Цитата Сообщение от Danikor Посмотреть сообщение
(tg(0.47x+0.2)=x^2
это не функция
0
Danikor
0 / 0 / 0
Регистрация: 04.06.2014
Сообщений: 33
24.11.2014, 21:00  [ТС] #5
это нелинейное уравнение.
0
24.11.2014, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2014, 21:00
Привет! Вот еще темы с ответами:

Метод простых итераций для СЛАУ - C++
Прошу помочь с написанием МПИ для СЛАУ на C. Каким образом выразить из AX=b ур-е X=BX+C, в которое подставлять начальное приближение? И по...

Метод простых итераций для СЛАУ - C++
Помогите пожалуйста! Нужно реализовать метод простых итераций для решения СЛАУ дана вот такая матрица -0.95 -0.06 -0.12 0.14 ...

Метод простых итераций для СЛАУ - C++
Доброго времени суток всем!!! решаю СЛАУ методом простых итераций, проблема вот в чем: не могу понять, как сделать расчет по к-ым...

Метод простых итераций для решения СЛАУ - C++
Здравствуйте. Попытался сделать программу для решения СЛАУ методом простых итераций. Не работает. Вернее работает неправильно. Помогите...


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

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

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