slonikkristi69
?>

Расставить правильно составить алгоритм​

Информатика

Ответы

Воздвиженская
// PascalABC.NET 3.3, сборка 1579 от 18.11.2017
// Внимание! Если программа не работает, обновите версию!

1)

begin
  var (n,m):=ReadInteger2('Количество строк и столбцов в массиве:');
  Writeln('*** Исходный массив [',n,',',m,'] ***');
  var a:=MatrRandom(n,m,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var b:=a.Rows.Select(r->r.Where(t->t.IsOdd).LastOrDefault); b.Println;
end.

Пример
Количество строк и столбцов в массиве: 8 5
*** Исходный массив [8,5] ***
 -41  36 -99  14  17
 -22  12  71 -94 -42
 -35 -40  26   2  24
  39  17  20  11  84
 -53 -18  97  -6   5
   2  67 -54  -6  -3
  95 -87  90 -13 -37
 -81 -21  61 -90 -60
--------------------
17 71 -35 11 5 -3 -37 61

2)

begin
  Writeln('*** Исходный массив ***');
  var a:=MatrRandom(20,10,2,5);
  a.Println(2); Writeln(2*a.ColCount*'-');
  Writeln('Ср. 5-го ученика: ',a.Row(4).Average)
end.

Пример
*** Исходный массив ***
 2 2 3 3 4 3 4 2 3 2
 4 3 2 3 2 4 3 2 5 3
 4 2 3 3 4 5 5 2 2 4
 5 2 4 2 4 5 4 2 3 3
 5 3 3 2 3 4 5 4 4 4
 3 2 3 2 3 2 5 2 4 4
 4 4 5 5 2 4 5 5 4 2
 2 2 5 4 4 2 4 3 2 2
 2 2 4 4 2 4 4 4 5 4
 2 3 4 4 5 3 3 4 5 4
 5 2 5 3 3 2 3 5 3 2
 3 4 2 3 4 3 2 3 4 3
 2 2 2 2 2 4 4 2 4 2
 5 2 3 3 3 5 3 2 2 5
 2 4 2 4 3 3 3 2 5 4
 3 2 5 4 4 4 5 5 3 5
 4 3 2 3 3 2 2 4 2 4
 2 5 2 5 2 3 2 4 5 4
 3 3 2 2 5 4 3 5 4 4
 2 3 5 3 3 5 4 5 2 2
--------------------
Ср. 5-го ученика: 3.7

Завтра нужно сдать , а у меня никак не получается ; ( 1) дан двумерный массив целых чисел. сформиров
Анатолий
Метод Ньютона (метод Ньютона-Рафсона, метод касательных) требует для нахождения корня нелинейного уравнения выполнения достаточно большого количества условий. В качестве компенсации он (в общем случае) сходится быстрее любого другого численного метода нахождения корня уравнения F(x)=0.
Для функции F(x) должен быть определен интервал изоляции корня [a;b], такой что на нем:
а) F(a) и F(b) имеют разные знаки;
б) F(x) определена и непрерывна;
в) F'(x) ≠ 0
г) F"(x) определена всюду и имеет постоянный знак

1. Перепишем уравнение в более привычном виде и сделаем преобразования, необходимые для нахождения интервала изоляции корня [a;b], а также проверки выполнения на нем условий а) - г)

\displaystyle F(x)=(2^{2x}+3)5^x+2\cdot4^x\cdot5^{x+1}-0.9; \\ 
F(x)=11\cdot20^x+3\cdot5^x-0.9; \\ 
F'(x)=11\cdot20^x\cdot\ln{20}+3\cdot5^x\cdot\ln5; \\
F''(x)=11\cdot20^x\cdot(\ln{20})^2+3\cdot5^x\cdot(\ln5)^2

Степенная функция при натуральном основании и вещественном показателе степени всюду положительна, является непрерывной и монотонно возрастающей. Комбинация показательных функций будет также обладать этими свойствами.
При х=0 (считать удобно) F(x) = 11+3-0.9 = 13.1
При х=-1 (тоже удобно) F(x) = 11/20 +3/5 - 9/10 = 1/4 (почти ноль!)
При х=-2 F(x) = 11/400 + 3/25 - 9/10 = -301/400 ≈ - 0.7525
Условие а) выполнено, интервал изоляции корня найден, a=-2, b=-1.
Прочие условия на этом интервале также выполняется в соответствии с написанным выше.

2. В качестве начального приближения выберем точку, находящуюся в середине интервала изоляции. х₀ = -1.5

3. Зададимся максимальной погрешностью решения, равной 10⁻⁶

4. Определим условие завершения поиска корня.
В соответствии с известной формулой (например, см. стр. 41 в книге  Гловацкая А.П. Методы и алгоритмы вычислительной математики. Учеб. пособие для вузов. - М.: Радио и связь, 1999), длина интервала изоляции корня связана с погрешностью следующим образом:
\displaystyle |x_{n+1}-x_n|\leq\sqrt{ \frac{2m\epsilon}{M}}, \\
\displaystyle m=|min(F'[a,b]|, \quad M=|max(F''[a,b]|
F'(a) = 11/400*ln(20)+3/25*ln(5) ≈ 0.275515187014827;
F"(b) = 11/20*ln(20)²+3/5*ln(5)² ≈ 6.49010075653527
Величина интервала для х при ε=10⁻⁶ будет составлять приблизительно 0.0002914.

5. Составим программу на языке программирования PascalABC.NET 3.3. и найдем корень уравнения.

// PascalABC.NET 3.3, сборка 1579 от 18.11.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var f:real->real:=x->11*Power(20,x)+3*Power(5,x)-0.9;
  var f1:real->real:=x->11*Power(20,x)*Ln(20)+3*Power(5,x)*Ln(5);
  var f2:real->real:=x->11*Power(20,x)*Sqr(Ln(20))+3*Power(5,x)*Sqr(Ln(5));
  var (a,b,eps):=(-2.0,-1.0,1e-6);
  var d:=Sqrt(2*f1(a)*eps/f2(b));
  var xn1:=(a+b)/2;
  var xn:real;
  repeat
    (xn,xn1):=(xn1,xn-f(xn)/f1(xn));
  until Abs(xn-xn1)<=d;
  Writeln(xn1:0:6);
end.

Результат:
-1.109118

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Расставить правильно составить алгоритм​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Ольга Сергей1822
lebedevevgen
mvinogradov6
Designer
alekbur
Titeeva-Vladimirovich283
sandovo590
katdavidova91
Olgax732
andreykrutenko
nadjasokolova2017
Tkachenko1050
llipskaya
pechatlogo4
tatyanaryzhkova