Автор работы: Пользователь скрыл имя, 03 Марта 2015 в 01:44, курсовая работа
Наука не стоит на месте и все время развивается. Нередко приходится встречаться с математическими задачами, для решения которых нужно пользоваться громоздкими формулами. Это неудобно. Возникла необходимость в развитии численных методов математического анализа, которые в сегодняшнем дне имеют важнейшее значение.
Введение……………………………………………………….3
Цель и задачи………………………………………………….4
Теория нелинейных уравнений
и метод половинного деления………………………5
Нахождения корней нелинейного уравнения с заданной точностью:
MathCAD………………………………………………...9
Microsoft Excel………………………………………….12
Pascal…………………………………………………….15
5. Выводы…………………………………………………………
6. Список литературы………………………………………
12
Microsoft Excel. Метод половинного деления
Алгоритм
13
14
Pascal. Шаговый метод
Блок-схема
Программа
Program ex_1;
Uses crt;
Var c,d,h,a,b:real ; k:integer ;
Function F(x:real ):real ;
Begin
F:= exp(x*ln(2))-4*x
End ;
Begin
Writeln ('vvedite c,d,h');
Readln (c,d,h);
k:= 0 ;
a:=c;
Repeat
b:=a+h;
If F(a)*F(b)<= 0 then
begin
k:=k+1 ;
Writeln ('k=',k,' a=',a:5 :2 ,' b=',b:5 :2 );
end ;
a:=b;
until b>d;
end.
Ответ: k=1 a=0 b=0.5
k=2 a=3.5 b=4
k=3 a=4 b=4.5
16
Pascal. Метод половинного деления
Блок-схема
17
Программа
program mdp;
function f(x: real): real;
begin
f:=exp(x*ln(2))-4*x;
end;
var
a, b, e, c, x: real;
begin
write('a=');
read(a);
write('b=');
read(b);
write ('e=');
read(e);
c:=(a+b)/2;
while(b-a)>e do
begin
if(a)*f(c)<0 then
b:=c
else
a:=c;
writeln('a=', a:3:4, 'b=', b:3:4, 'f(a)=', f(a):6:9, 'f(b)=',f(b):6:9);
c:=(a+b)/2;
18
end;
x:=(a+b)/2;
writeln ('x=',x:3:3,' f(x)=',f(x):4:4);
readln;
end.
Ответ:
a=0
b=0.5
e=0.001
a=0.2500b=0.5000f(a)=0.
a=0.2500b=0.3750f(a)=0.
a=0.2500b=0.3125f(a)=0.
a=0.2813b=0.3125f(a)=0.
a=0.2969b=0.3125f(a)=0.
a=0.3047b=0.3125f(a)=0.
a=0.3086b=0.3125f(a)=0.
a=0.3086b=0.3105f(a)=0.
a=0.3096b=0.3105f(a)=0.
x=0.310 f(x)=-0.0005
19
a=3.5
b=4
e=0.001
a=3.9000b=3.9500f(a)=-0.
a=3.9000b=3.9250f(a)=-0.
a=3.9000b=3.9125f(a)=-0.
a=3.9000b=3.9063f(a)=-0.
a=3.9000b=3.9031f(a)=-0.
a=3.9000b=3.9016f(a)=-0.
a=3.9000b=3.9008f(a)=-0.
x=3.900 f(x)=-0.6690
20
Выводы
Мы нашли корни уравнения в Microsoft Excel, MathCAD, Pascal 2 методами: шаговым и половинного деления с точностью до 0,001. Из схем и таблиц можно увидеть, что получилось 2 корня. Наиболее точные корни получились в средах Excel и Pascal, хотя наиболее удобной в использовании была среда MathCAD, так как в нее уже заложены специальные формулы, позволяющие найти более точное значение уже со второго приближения. Уточнение корня напрямую зависит от точности его нахождения e, чем меньше e, тем точнее будет корень. Среда Excel выводила результат в ячейках. Выводить его самостоятельно было бы затруднительно.
При нахождении корней были получены следующие результаты:
MathCAD:
X=0.31 на интервале [0; 0.5]
X=3.999 на интервале [3.5; 4]
Microsoft Excel
X=0.309 на интервале [0; 0.5]
X=3.999 на интервале [3.5; 4]
Pascal
X=0.310 на интервале [0; 0.5]
X=3.900 на интервале [3.5; 4]
21
Список литературы
22