- •Есептік іс-тәжірибе
- •5В0702-Автоматтандыру және басқару мамандығы
- •1.2 Түбірді іздеу үшін Надстройка-Поиск решения қолдану
- •1.3 Кесіндіні қақ бөлу алгоритмі (дихотомия әдісі).
- •1.4 Практикалық мысал. Деталь ауданын есептеу
- •1.5 Бақылау сұрақтары
- •1.6 Тапсырма нұсқалары
- •Тапсырма 2. Сандық интегралдау әдісі
- •2.1 Тіктөртбұрыштарға бөлу арқылы интегралды есептеу
- •2.2 Трапецияларға бөлу арқылы интегралды есептеу
- •2.3 Практикалық мысал. Бетоннан жасалған тіректік қабырға.
- •2.4 Бақылау сұрақтары
- •2.5 Тапсырма нұсқалары
- •3.1 Тапсырма
- •3.2 Тренд сызығының көмегімен сызықтық регрессияны орындау
- •3.3 Практикалық мысал: шығын өлшегіш құралды қайта калибрлеу
- •3.4 Бақылау сұрақтары
- •4.3 Бақылау сұрақтары
- •4.4 Тапсырма нұсқалары
- •Тапсырма 6. Надстройки-Поиск решения көмегімен оптималдау есептерін шешу
- •6.1 Тапсырма: құрылыс материалдарын шығаруды жоспарлау
- •6.2 Бақылау сұрақтары
- •6.3 Тапсырма нұсқалары
- •7.1. Тапсырма
- •7.2 Бақылау сұрақтары
- •Әдебиеттер тізімі
- •Есептік іс-тәжірибе
1.2 Түбірді іздеу үшін Надстройка-Поиск решения қолдану
Бұл мәселені шешу үшін MS Excel программасы басқа әдісті ұсынады – надстройка-Поиск решения.
Ескерту: бұл надстройка MS Excel программасында келісім бойынша орнатылмайды және активтендірілмейді. Надстройка-Поиск решения іске қосу үшін Сервис – Надстройки-Поиск решения белгісін орнату қажет.
Теңдеу 1-нші формада жазылады. В3 ұяшығына бастапқы жуықтау енгізіледі - х= (0.8), ал В4 ұяшығына – =В3^3-17*В3+12 формуласы орнатылады (1.2.- сурет).
1.2. - Сурет
Ары қарай Сервис – Поиск решения қолданылады.
Установить целевую ячейку өрісінде мақсатталған ұяшық ретінде формула қойылған В4 ұяшығы қолданылады. Надстройка-Поиск решения мақсатталған ұяшық 0-ге тең болғанға дейін шешімін іздеуді жалғастырады (өйткені теңдеудің оң бөлгінде 0 тұр).
Ол үшін ауыстырғышты по значению: күйіне қойып, ал сәйкес өріске 0 мәнін енгізу керек. Изменяя ячейки: өрісінде жобаланған мән орналасқан - В3 ұяшық адресі енгізіледі.
Барлық көрсеткіштер енгізілгеннен кейін Орындау кнопкасын шертіңіз.
Надстройка-Поиск решения көмегімен 0,73-ке тең түбір табылды. Басқа түбірлерді табу үшін Жобаланған мәнді өзгертіп Надстройка-Поиск решения командасын қайта жіберу керек.
Надстройка-Поиск решения артықшылығы: қолдануы қарапайым және теңдеудің барлық түбірлерін табуға мүмкіндік береді.
1.3 Кесіндіні қақ бөлу алгоритмі (дихотомия әдісі).
Берілген оң мәнінен аспайтын қателікпен түбірдің мәнін табу қажет. Кесіндіні қақ бөлу әдісін қолдануға болады.
Түбір орналасқан [a,b] кесінді ортасын алып (яғни координатасы с=(а+b)/2 нүктесін) түбірді іздеу диапазонын кішірейтуге болады: f (с) таңбасына байланысты [a,b] кесіндісінен [a,c] кесіндісіне немесе [c,b] кесіндісіне өту керек: егер f(a)f(c)<0, онда [а,с] кесіндісіне өтеді, егер f(a)f(c)>0, онда [c,b] кесіндісіне өтеді. Егер содан кейін кесіндінің ортасын тауып және ол үшін f(x) функциясының мәнін есептесе, онда тағы да іздеу диапазонын кішірейтуге болады және ары қарай тура солай жүреді. Бірнеше қадамнан кейін ұзындығы берілген санынан кіші болатын кесінді табылады.
Бұл әдісті қолдану С++ алгоритмдік тілінде жазылған программада көрсетілген.
Әдістің артықшылығы: электронды кестеде, алгоритмдеу тілдерінде оңай іске асады. Алгоритмдеу тілдерінде бардық түбірлерді табуға мүмкіндік береді.
Әдістің кемшілігі: f(x) өте кіші болса және f(x) мәнін есептеу қателігі оның мәнінен үлкен болғанда f(x)-тің жуық мәні бойынша әрқашанда f(x)<= 0 теңсіздігінің дұрыс екенін табу мүмкін емес.
Бұл алгоритмді іске асыратын программаның сұлбасы: a және b айнымалылары үшін a<b теңсіздігі орынды және f(a)f(b)<0. fa мәні f(a), с – [a,b] кесіндісінің ортасын білдіреді, fc - f(c) тең.
Бұл программа бір түбірді табуға мүмкіндік береді. Сондықтан алдын-ала а және b шекараларын сол кесіндіде тек бір түбір ораналасатындай етіп дәл анықтау керек (графикалық әдісті қолдануға болады). Бұл әртүрлі а және b мәндерін көрсете отырып әртүрлі түбірледі табуға мүмкіндік береді. Нақты бір f(x)=x3-17*x+12 функциясы үшін, түбірлерінің бірі [0,2] кесіндісінде жатса а=0,b=2 программа келесі түрде болады
#include<iostream.h>
#include<conio.h>
#include<math.h>
float f(float x) // нақты бір функция мәнін есептейтін функция
{float ff;
ff=x*x*x-17*x+12;
return (ff);}
void main() // Негізгі функция
{float a,b,c,fa,fc,eps; int n=0;
clrscr();
cin>>a>>b>>eps;
fa=f(a);
do
{ c=(b+a)/2;
fc=f(c);
if (fa*fc<0) b=c;
else
{
a=c;fa=fc;
} cout<<c<<endl;n=n+1;
} while (b-a>eps) ;
cout<<a<<endl;
cout<<n<<endl;
}