Лаба 3 Света (3 лаба в паскале)
Описание файла
Файл "Лаба 3 Света" внутри архива находится в следующих папках: 3, Лаба 3 (4). Документ из архива "3 лаба в паскале", который расположен в категории "". Всё это находится в предмете "численные методы" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "численные методы" в общих файлах.
Онлайн просмотр документа "Лаба 3 Света"
Текст из документа "Лаба 3 Света"
Лабораторная работа №3:
Сравнение приближённых методов
решений уравнений f(x)=0.
Нахождение экстремума методом «Злотого сечения».
Разработал:
Ильичева Светлана Андреевна
МТ8-32
МГТУ им. Н.Э.Баумана, 2009
Теория:
Метод деления отрезка пополам.
Делим [a,b] пополам => c=(a+b)/2 – середина отрезка. Если f(a)*f(c)<0, то в качестве следующего отрезка выбираем [a,c], в противном случае – отрезок [c,b].
Обозначим следующий рассматриваемый отрезок как [bt,at].
Вычисления продолжаются до тех пор, пока (bt-at)>ε.
Ответом будет являться (at+bt)/2.
Метод касательных.
В точке [ ] графика функции y=f(x) проводится касательная. Точка её пересечения с осью OX берется за . После чего процесс повторяется.
Из уравнения касательной легко вывести, что
Не сложно догадаться , что последовательность { } сходится к корню ф-ии f(x).
Нахождение экстремумов методом “Золотого сечения”.
Унимодальная функция на отрезке [a,b]-функция, имеющая на отрезке [a,b] один экстремум.
Свойство, на котором основан метод:
Пусть f(x) унимодальна на [a,b], а α и β (α< β) произвольные точки [a,b].Тогда, eсли f(α)<f(β),то f(x) унимодальна на [a, β], в противном случае – на [α,b].
В методе «Золотого сечения» точки α и β определяются из условия:
Когда результат вычислений будет удовлетворять условию
Условия варианта №4:
f(x)=2x3+9*x2-21;
График:
Текст программы:
program koren;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a,b,c,e,d,x,sieg:real;
k1,k2,k3,k4,k5,k6:byte;
function f1(x1:real):real;
begin
f1:=2*x1*x1*x1+9*x1*x1-21;
end;
function f2(x2:real):real;
begin
f2:=6*x2*x2+18*x2;
end;
begin
writeln('f = 2(x^3)+9(x^2)-21');
e:=0.0001;
writeln;
writeln('Korni yravnenia:');
writeln;
writeln('Metod delenia otrezka popolam');
writeln;
a:=-4;
b:=-3;
k1:=0;
repeat
c:=(a+b)/2;
if f1(a)*f1(c)<0
then b:=c
else a:=c;
x:=(a+b)/2;
k1:=k1+1;
until abs((b-a))<e;
writeln('Perviy koren = ',x:7:4,', pri =',e:6:4, ', kol-vo pribligenii = ',k1:2);
a:=-3;
b:=0;
k2:=0;
repeat
c:=(a+b)/2;
if f1(a)*f1(c)<0
then b:=c
else a:=c;
x:=(a+b)/2;
k2:=k2+1;
until abs((b-a))<e;
writeln('Vtoroy koren = ',x:7:4,', pri =',e:6:4, ', kol-vo pribligenii = ',k2:2);
a:=0;
b:=2;
k3:=0;
repeat
c:=(a+b)/2;
if f1(a)*f1(c)<0 then b:=c
else a:=c;
x:=(a+b)/2;
k3:=k3+1;
until abs((b-a))<e;
writeln('Tretiy koren = ',x:7:4,', pri =',e:6:4, ', kol-vo pribligenii = ',k3:2);
writeln;
writeln('Metod kasatelnih');
writeln;
a:=-10;
k4:=0;
repeat
x:=a-f1(a)/f2(a);
if (x-a)>0 then sieg:=1;
if (x-a)=0 then sieg:=0;
if (x-a)<0 then sieg:=-1;
d:=f1(x)*f1(x+sieg*e);
a:=x;
k4:=k4+1;
until d<0;
writeln('Perviy koren = ',x:7:4,', pri =',e:6:4, ', kol-vo pribligenii =',k4:2);
a:=-1;
k5:=0;
repeat
x:=a-f1(a)/f2(a);
if (x-a)>0 then sieg:=1;
if (x-a)=0 then sieg:=0;
if (x-a)<0 then sieg:=-1;
d:=f1(x)*f1(x+sieg*e);
a:=x;
k5:=k5+1;
until d<0;
writeln('Vtoroy koren = ',x:7:4,', pri =',e:6:4, ', kol-vo pribligenii =',k5:2);
a:=10;
k6:=0;
repeat
x:=a-f1(a)/f2(a);
if (x-a)>0 then sieg:=1;
if (x-a)=0 then sieg:=0;
if (x-a)<0 then sieg:=-1;
d:=f1(x)*f1(x+sieg*e);
a:=x;
k6:=k6+1;
until d<0;
writeln('Tretiy koren = ',x:7:4,', pri =',e:6:4, ', kol-vo pribligenii =',k6:2);
readln;
end.
Выполнение: