4.Трансцендент тенгламани илдизи ётган оралиқни аналитик усулда
аниқлаш.
Трансцендент тенгламани илдизи ётган оралиқ
аналитик усулда аниқлансин (математик тавсифи ва алгоритми тузилсин).
Grafigi:
#include
#include
using namespace std;
double f(double x) {
return 2*x*x*x+3*x*x-12*x-9;
}
int main ()
{
double a,b,c;
do {
cin >>a>>b;
}
while(f(a)*f(b)>0);
cout<<"e=";
double e;
cin>>e;
do {
c=(a+b)/2;
if(f(a)*f(c)<0){
b=c;
}
else a=c; }
while(b-a>e);
c=(a+b)/2;
cout<}
5. 2ln(x) 0,2x*x 3 0 Трансцендент тенгламани илдизи ётган
оралиқ график усулда аниқлансин (математик тавсифи ва алгоритми
тузилсин).
#include
#include
double f(double x) {
return 2*long(x)+0.2*x*x+3;
}
double ildiz_topish(double a, double b, double epsilon, int maxIterations) {
double x = a;
int iteration = 0;
while (fabs(b - a) > epsilon && iteration < maxIterations) {
x = (a + b) / 2;
double fx = f(x);
if (fx == 0) {
break;
}
if (f(a) * fx < 0) {
b = x;
} else {
a = x;
}
iteration++;
}
return x;
}
int main() {
double a = 0;
double b = 1;
double epsilon = 0.0001;
int maxIterations = 100;
double ildiz = ildiz_topish(a, b, epsilon, maxIterations);
std::cout << "Tenglamani Ildizi: " << ildiz << std::endl;
return 0;}
6. Трансцендент тенгламани илдизи ётган оралиқни ГРАФИК усулда
аниқ
6sin(x 2 /) 0,6x2 3 0 Трансцендент тенгламани илдизи
ётган оралиқ график усулда аниқлансин (математик тавсифи ва
алгоритми тузилсин).
Grafigi:
#include
#include
double f(double x) {
return 6 * sin(x + 2 / M_PI) - 0.6 * pow(x, 2) - 3;
}
double ildiz_topish(double a, double b, double epsilon) {
double x = (a + b) / 2;
double fx = f(x);
while (fabs(fx) > epsilon) {
if (fx * f(a) < 0) {
b = x;
} else {
a = x;
}
x = (a + b) / 2;
fx = f(x);
}
return x;
}
int main() {
double a = -10;
double b = 10;
double epsilon = 0.0001;
double ildiz = ildiz_topish(a, b, epsilon);
std::cout << "Tenglama Ildizi: " << ildiz<< std::endl;
return 0;
}
7.Аниқ интегрални қийматини тўрт бурчаклар усулида тақрибий
ҳисоблаш ва хатоликни бахолаш.
Аниқ интегрални такрибий қийматини ўнг тўртбурчаклар усулида
ҳисоблаш (математик тавсифи ва алгоритми тузилсин)., хатолик
бахолансин
Algoritm :
#include
#include
using namespace std;
double f(double x){
return (4*x+12)/(sqrt(x*x+1));
}
int main()
{
double a,b;
int n;
cout << "a="; cin >>a;
cout << "b="; cin >>b;
cout << "n="; cin >>n;
double h=(b-a)/n ;
double x=b , s=f(x) ;
for(int i=1;i<=n-1;i++){
x=x-h;
s=s+f(x);
}
s=h*s;
cout<< s <<" " << n;}
8.Аниқ интегрални қийматини трапеция усулида тақрибий ҳисоблаш ва
хатоликни бахолаш.
Ma’lumot :
Misol kodi :
#include
#include
double f(double x) {
return 1/sqrt(2*x*x+3);
}
double taqribiy_Integral(double a, double b, int n) {
double h = (b - a) / n;
double sum = 0.0;
for (int i = 1; i < n; i++) {
double x = a + i * h;
sum += f(x);
}
sum += (f(a) + f(b)) / 2.0;
sum *= h;
return sum;
}
int main() {
double a = 1.0;
double b = 3.0;
int n = 1000;
double Natija = taqribiy_Integral(a, b, n);
std::cout << "Taqribiy Integral qiymati: " << Natija << std::endl;
return 0;}
9. Аниқ интегрални қийматини Симпсон усулида тақрибий ҳисоблаш ва
хатоликни бахолаш
Ma’lumot :
Misol kodi :
#include
#include
double f(double x) {
return sqrt(x) * sin(x);}
double simpsonIntegral(double a, double b, int n) {
double h = (b - a) / n;
double sum = f(a) + f(b);
double x;
for (int i = 1; i < n; i += 2) {
x = a + i * h; sum += 4 * f(x); }
for (int i = 2; i < n - 1; i += 2) {
x = a + i * h;
sum += 2 * f(x); }
return (h / 3) * sum;}
int main() {
double a = 1.0;
double b = 3.0; int n = 100;
double result = simpsonIntegral(a, b, n);
std::cout << "Natija: " << result << std::endl;
return 0;}
10.Трансцендент тенгламанинг илдизини берилган интервалда оддий
итерация методида тақрибий ҳисоблаш.
Ma’lumot:
Итерация методи, яъни навбатлаш алгоритми, функцияни назарда тутиш учун ариза берилган аниқликда тенгламани илдизи билан ишлайди. Трансцендент функциялар учун итерация методлари маълум вақтда тушунарли бўлмаслиги билан аниқланади. Уларни амалга ошириш учун биринчи босқичда функцияни термолар орқали таҳминлаб, кейинги босқичда тақрорланган формула асосида янги таҳминларни топиш керак.
Бу алгоритмни танланган таҳмин топилганда, анчалик қабул қилинган тартибда янги таҳминларни топиш учун функцияни кайта ишлатиш мумкин. Бу процесс функциянинг белгиланган таҳминга яко қадар мувофиқлик келтириш тугади, яъни функцияни аниқликда келиб чиқади.
Итерация методларининг унумли пайвандлари истиродор ишлайдиган функцияга, алгоритмнинг хатолигига, ва аризадаги аниқлик борлигига боғлиқ. Бундай методлар учун итерацион алгоритмлар бирлаштирилади ва таҳминларнинг конвергенциясини таъминлайди.
Масалан, яна бир сўровнинг алгоритми қуйидагича бўлади:
Бошлангич таҳминни аниқлаш учун a ва b нуқталари орасида ижод қилинган таҳмин бўйича хато эскириш: x₀ = (a + b) / 2.
Функцияни таҳминланган x₀ да ишлатиш: f₀ = f(x₀).
Таҳминланган нуқтада функциянинг кўрсаткичларини қайданлик билан аниқлаш.
Керакли формулани ишлатиб, янги таҳминни топиш: x₁ = f₀.
Таҳминланган нуқтада функцияни ишлатиш: f₁ = f(x₁).
Таҳминланган нуқта ва функция кўрсаткичлари ўртасидаги алохидаликни текшириш.
Агар аризадаги аниқлик борлиги етарли бўлмаса, шарт топилишга қадар 2-6 қадамларни такрорлаш.
Ариза қанча мураккаб, уни талаб этишга қанча вақт талаб этишига қараб, бажариш харакатланади.
Бажарилган алгоритм натижаси билан тенгламани илдизишни тугатади.
#include
#include
double f(double x) {
return x*x*x + 3*x*x - 3.5;
}
double g(double x) {
return (3.5 - x*x*x) / (3*x + 6*x);
}
double iteratsiya_usuli(double a, double b, double epsilon) {
double x0 = (a + b) / 2.0;
double x = g(x0);
while (std::abs(x - x0) > epsilon) {
x0 = x;
x = g(x0);
}
return x;
}
int main() {
double a = 0.0;
double b = 1.0;
double epsilon = 0.0001;
double Natija = iteratsiya_usuli(a, b, epsilon);
std::cout << "Transdental tenglama natijasi: " << Natija << std::endl;
return 0;
}
Do'stlaringiz bilan baham: |