Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 вариант.doc
Скачиваний:
2
Добавлен:
24.08.2019
Размер:
216.06 Кб
Скачать

Результаты счета:

vivodit max i min matrici i ih indeksi

i=23 j=22 max= 0.297

i= 6 j= 8 min=-0.298

Постановка задачи 3.

Разработать алгоритм и программу для решения нелинейного уравнения с параметрами методом половинного деления. С помощью программы вычислить все корни уравнений в соответствии с указанным вариантом и заданной точностью ε=10-4. Параметр а задать самостоятельно методом перебора. Определить для каких а уравнение имеет 1,2,3,4,5 действительных корней.

5

Построить таблицу которая должна иллюстрировать количество корней уравнения для F(x,a)=0 (ограничиться 5-тью корнями при заданном). Построить график F(x,a) от x для параметров a соответствующего наибольшему количеству корней найденных в задании.

Блок-схема программы 3.

а=0; h:=0.1; h1:=0.1;

d=0

x=0

a<100

8

7

x<100

d=d+1

funk (x,a)

5 да нет

д а нет

да нет

1 2 3 6

1

Abs(yk-yn)>ε

Not(koren)

да нет

да нет

Abs(yk-yn)<ε

да нет

4

4 2 3 6 8

7 5

x=x+h1

x <100

a=a+h

a =100

Блок-схема подпрограммы-функции funk

Программа 3.

program F1;

uses crt;

var

m,yn,yk,e,y,a,h,x,h1:real;

d:integer;

koren:boolean;

f:text;

function funk (x,a:real):real;

begin

funk:=exp(4*ln(ln(a*x)))+exp(3.4*ln(x))*a*a+a*a*a*x*x*x*x-sqrt(a*a*a)*cos(x)+a;

end;

begin

clrscr;

assign(f,'otvet.txt');

rewrite(f);

a:=0;h:=0.1;h1:=0.1;

while a<100 do begin

writeln(f,'pri a=',a:8:4);

d:=0; x:=0;

while x<=100 do begin

if (x>0) and (cos(x*a)<>0) and ((sin(a*x)/cos(a*x))>0) and (ln(x)>0) then begin funk (x,a);

if funk (x,a)=0 then begin

d:=d+1;

writeln(f,'x=',x:8:4);

end;

if funk(x,a)*funk(x+h1,a)<0 then

begin d:=d+1;

yn:=x;

yk:=x+h1;

e:=0.0001;

koren:=false;

while (abs(yk-yn)>e) and (not(koren)) do begin

y:=(yk+yn)/2;

if funk(y,a)=0 then koren:=true

else if funk(yn,a)*funk(y,a)<0 then

yk:=y

else yn:=y;

end;

if koren=true then writeln(f,'x=',y:8:4)

else writeln(f,'x=',yn:8:4);

end;

end;

x:=x+h1;

end;

writeln(f,'kopHey ',d);

a:=a+h;

end;

close(f);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]