В y1, y2 теперь значения в точках 0, 0,1, 0,2, ..., 1. С ними можно делать что угодно, у меня по ним построены графики.
(Код для построения, работает на сайте, где у меня это было запущено. import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) ax.plot(x, y1, '-r', label="Euler") ax.plot(x, y2, '-g', label="Euler+") ax.legend() fig.savefig('graph.png') )
Зеленый график должен быть ближе к истинному решению, чем красный.
var mas: array[1..n,1..m] of integer; i,j: integer; qty: integer; a,b: integer;
begin
randomize;
{Заполнение массива числами} for i:=1 to n do begin for j:=1 to m do begin mas[i,j]:=random(200); if mas[i,j]=200 then mas[i,j]:=199; write(mas[i,j],' '); end; writeln; end;
writeln('******************');
{Поиск двузначных чисел, сумма цифр которых кратна 2} qty:=0; for i:=1 to n do for j:=1 to m do if (mas[i,j]<100) and (mas[i,j]>9) then begin a:=mas[i,j] div 10; b:=mas[i,j]-a*10; if (a+b) mod 2=0 then begin Inc(qty); write(mas[i,j],' '); end; end;
writeln(''); writeln('количество чисел удовлетворяющих условию ',qty);
import numpy as np
def f(x, y):
return (1 - x*x)/y + 1
step = 0.1
x_start = 0.
x_end = 1.
y_init = 1.
x = np.arange(x_start, x_end + step/2, step)
y1 = np.zeros(len(x))y2 = np.zeros(len(x))
y1[0] = y2[0] = y_init
for i in range(len(x) - 1):
y1[i + 1] = y1[i] + f(x[i], y1[i]) * step
y2[i + 1] = y2[i] + f(x[i] + step/2, y2[i] + f(x[i], y2[i]) * step/2) * step
В y1, y2 теперь значения в точках 0, 0,1, 0,2, ..., 1. С ними можно делать что угодно, у меня по ним построены графики.
(Код для построения, работает на сайте, где у меня это было запущено.
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y1, '-r', label="Euler")
ax.plot(x, y2, '-g', label="Euler+")
ax.legend()
fig.savefig('graph.png')
)
Зеленый график должен быть ближе к истинному решению, чем красный.
n=8; m=8;
var
mas: array[1..n,1..m] of integer;
i,j: integer; qty: integer;
a,b: integer;
begin
randomize;
{Заполнение массива числами}
for i:=1 to n do begin
for j:=1 to m do begin
mas[i,j]:=random(200);
if mas[i,j]=200 then mas[i,j]:=199;
write(mas[i,j],' ');
end;
writeln;
end;
writeln('******************');
{Поиск двузначных чисел, сумма цифр которых кратна 2}
qty:=0;
for i:=1 to n do
for j:=1 to m do
if (mas[i,j]<100) and (mas[i,j]>9) then begin
a:=mas[i,j] div 10;
b:=mas[i,j]-a*10;
if (a+b) mod 2=0 then
begin
Inc(qty);
write(mas[i,j],' ');
end;
end;
writeln('');
writeln('количество чисел удовлетворяющих условию ',qty);
end.