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

Постановка задачи 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

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: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 соответствующего наибольшему количеству корней найденных в задании будет иметь вид прямой линии и в построении не нуждается

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