Постановка задачи 3.
Разработать алгоритм и программу для решения нелинейного уравнения с параметрами методом половинного деления. С помощью программы вычислить все корни уравнений в соответствии с указанным вариантом и заданной точностью ε=10-4. Параметр а задать самостоятельно методом перебора. Определить для каких а уравнение имеет 1,2,3,4,5 действительных корней.
15 |
|
Построить таблицу которая должна иллюстрировать количество корней уравнения для F(x,a)=0 (ограничиться 5-тью корнями при заданном). Построить график F(x,a) от x для параметров a соответствующего наибольшему количеству корней найденных в задании.
Блок-схема программы 3.
а=0; h:=0.1; h1:=0.1;
d=0
x=0
8
7
x<100
d=d+1
funk (x,a)
д а нет
да нет
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:extended;
d:integer;
koren:boolean;
f:text;
function Funk (x,a:real):real;
begin
funk:= a*exp(-4*x)+a*ln(x-5*x*x*x)+a*sqrt(exp(3*ln(x+a)))+ln(a)/(x*x*x-2*a)+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+a)>0) and ((x-5*x*x*x)>0) and (a>0) and((x*x*x-2*a)<>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.
Результаты счета:
pri a= 0.0000
kopHey 0
pri a= 0.1000
kopHey 0
pri a= 0.2000
kopHey 0
pri a= 0.3000
kopHey 0
pri a= 0.4000
kopHey 0
pri a= 0.5000
kopHey 0
pri a= 0.6000
kopHey 0
>>>>>>>
pri a= 98.4000
kopHey 0
pri a= 98.5000
kopHey 0
pri a= 98.6000
kopHey 0
pri a= 98.7000
kopHey 0
pri a= 98.8000
kopHey 0
pri a= 98.9000
kopHey 0
pri a= 99.0000
kopHey 0
pri a= 99.1000
kopHey 0
pri a= 99.2000
kopHey 0
pri a= 99.3000
kopHey 0
pri a= 99.4000
kopHey 0
pri a= 99.5000
kopHey 0
pri a= 99.6000
kopHey 0
pri a= 99.7000
kopHey 0
pri a= 99.8000
kopHey 0
pri a= 99.9000
kopHey 0
pri a=100.0000
kopHey 0
Вывод
По данным полученным при решении нелинейного уравнения в интегральной среде Borland PASCAL можно сделать вывод что на всем участке а=[0..100] нет корней уравнения которые удовлетворяют области определения а график F(x,a) от x для параметров a соответствующего наибольшему количеству корней найденных в задании будет иметь вид прямой линии и в построении не нуждается