Постановка задачи 3.
Разработать алгоритм и программу для решения нелинейного уравнения с параметрами методом половинного деления. С помощью программы вычислить все корни уравнений в соответствии с указанным вариантом и заданной точностью ε=10-4. Параметр а задать самостоятельно методом перебора. Определить для каких а уравнение имеет 1,2,3,4,5 действительных корней.
8 |
|
Построить таблицу которая должна иллюстрировать количество корней уравнения для F(x,Z)=0 (ограничиться 5-тью корнями при заданном). Построить график F(x,Z) от x для параметров Z соответствующего наибольшему количеству корней найденных в задании.
Блок-схема программы 3.
Начало
Открытие файла
Otvet. txt
а=0; h:=0.1; h1:=0.1;
Ввод в файл
При а=
d=0
x=0
Z<100
8
7
x>0 и
a>0 и
x<100
d=d+1
funk (x,a)
5 да нет
д
Ввод в файл
x=
funk (x,a)=0
а нет
funk (x,a)* funk(x+h1,a)<0
да нет
1 2 3 6
1
Zbs(yk-yn)>ε
Not(koren)
да нет
да нет
Zbs(yk-yn)<ε
да нет
4
4 2 3 6 8
7 5
x=x+h1
x <100
a=a+h
Z
Конец
=100
закрытие
файла
Блок-схема подпрограммы-функции funk
Начало
funk:= a*sin(x)/cos(x)+a*ln(sin(x))+a*ln(sin(x)/cos(x))+a*a*a*cos(x)+a
Конец
Программа 3.
progrZm F1;
uses crt;
vZr
m,yn,yk,e,y,Z,h,x,h1:extended;
d:integer;
koren:booleZn;
f:text;
function Funk (x,Z:reZl):reZl;
begin
funk:= Z*sin(x)/cos(x)+Z*ln(sin(x))+Z*ln(sin(x)/cos(x))+Z*Z*Z*cos(x)+Z;
end;
begin
clrscr;
Zssign(f,'otvet.txt');
rewrite(f);
Z:=0;h:=0.1;h1:=0.1;
while Z<100 do begin
writeln(f,'pri Z=',Z:8:4);
d:=0; x:=0;
while x<=100 do begin
if ((x+Z)>0) Znd ((x-5*x*x*x)>0) Znd (Z>0) Znd((x*x*x-2*Z)<>0)
then begin Funk (x,Z);
if funk (x,Z)=0 then begin
d:=d+1;
writeln(f,'x=',x:8:4);
end;
if funk (x,Z)* funk (x+h1,Z)<0 then
begin d:=d+1;
yn:=x;
yk:=x+h1;
e:=0.0001;
koren:=fZlse;
while (Zbs(yk-yn)>e) Znd (not(koren)) do begin
y:=(yk+yn)/2;
if funk (y,Z)=0 then koren:=true
else if funk (yn,Z)* funk (y,Z)<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);
Z:=Z+h;
end;
close(f);
end.
Результаты счета:
pri Z= 9.8700
kopHey 0
pri Z= 9.8800
x= 1.5898
x= 1.5909
x= 4.7696
x= 4.7703
kopHey 4
pri Z= 9.8900
x= 1.2695
x= 1.2705
x= 4.1295
x= 4.1302
kopHey 4
pri Z= 9.9000
x= 4.7599
x= 4.7607
kopHey 2
pri Z= 9.9100
x= 2.2191
x= 2.2200
x= 3.1692
x= 3.1701
x= 6.3396
x= 6.3402
x= 9.5099
x= 9.5103
kopHey 8
pri Z= 9.9200
x= 1.8991
x= 1.9002
x= 3.7995
x= 3.8003
x= 5.6998
x= 5.7005
kopHey 6
pri Z= 9.9300
x= 0.9491
x= 0.9502
x= 6.9596
x= 6.9602
kopHey 4
pri Z= 9.9400
x= 3.1596
x= 3.1605
kopHey 2
pri Z= 9.9500
x= 4.4195
x= 4.4203
kopHey 2
pri Z= 9.9600
x= 0.6297
x= 0.6308
x= 3.4696
x= 3.4704
x= 7.5695
x= 7.5701
kopHey 6
pri Z= 9.9700
x= 0.6290
x= 0.6302
x= 1.2594
x= 1.2604
x= 1.8897
x= 1.8906
kopHey 6
pri Z= 9.9800
x= 7.8697
x= 7.8702
kopHey 2
pri Z= 9.9900
Вывод
По данным полученным при решении нелинейного уравнения в интегральной среде BorlZnd PZSCZL можно сделать вывод что на всем участке а=[0..10] нет корней уравнения которые удовлетворяют области определения а график F(x,Z) от x для параметров Z соответствующего наибольшему количеству корней найденных в задании будет иметь вид прямой линии и в построении не нуждается