1-Mustaqil ish. Mavzu: Chiziqli va tarmoqlanuvchi algoritmlar. Savollarga nazariy javob bering


Quyidagi transsendent tenglamani Nyuton va Vatarlar usuli yordamida yechimini aniqlovchi dastur tuzing


Download 40.31 Kb.
bet7/7
Sana25.04.2023
Hajmi40.31 Kb.
#1398419
1   2   3   4   5   6   7
Quyidagi transsendent tenglamani Nyuton va Vatarlar usuli yordamida yechimini aniqlovchi dastur tuzing:

sin(x/2)+1=x2


Dastur kodi
#include
#include
using namespace std;
double f(double x)
{
return sin(x / 2) + 1 - x * x;
}
double f_prime(double x)
{
return cos(x / 2) / 2 - 2 * x;
}
double newton(double guess) {
double x = guess;
double x_prev = x - 1;
while (abs(x - x_prev) > 0.0001) {
x_prev = x;
x = x - f(x) / f_prime(x);
}
return x;
}
int main() {
double root = newton(1);
cout << "Root: " << root << endl;
return 0;
}

Dastur quyidagi 3 matematik funksiyasidan foydalanadi:


1. `f(x)` - asosiy funksiya.


2. `f_prime(x)` - asosiy funksiyasining x-dagi yengilishiga qarab olingan yordamchi funksiya.
3. `newton(guess)` - newton metodini qo'llab-quvvatlaydigan funksiya.

`newton(guess)` funksiyasi, quyidagi 2 asosiy o'zgaruvchini o'z ichiga oladi:


1. `guess` - yuzaga kelgan hisoblangan yechim.


2. `x` - Yangi hisoblangan yechim.

`newton(guess)` dasturi foydalanuvchidan boshlang'ich tahmin hisoblanib oladi va `x` o'zgaruvchisiga kiritadi. Keyin, dastur `while` tsikliga kirib, yechimni topishni davom ettiradi. Yechim topilguncha tsikl tugatiladi va yechim qaytariladi.




Ushbu dasturda `1` boshlang'ich qiymati sifatida x izlanadi, shuningdek, yechimning ustuni ochiladi. Yangi hisoblangan yechim `x` o'zgaruvchiga saqlanadi va qaytariladi. Natijada yechim konsolga chiqariladi.

Download 40.31 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling