Transendend tenglamalar
Akkordlar va tangenslar usuli
Download 0.58 Mb.
|
Transendend tenglamalar
- Bu sahifa navigatsiya:
- 8. Листинг – Текст программы
Akkordlar va tangenslar usuli
Faqat f'(X) va f''(X) [a,b] oralig'ida ishorani o'zgartirmaganda qo'llaniladi, ya'ni. [a,b] oraliqdagi f(X) funksiya monoton va burilish nuqtalariga ega emas. Usulning mohiyati bir xil - ildizni o'z ichiga olgan ichki segmentlar ketma-ketligini qurish, ammo segmentlar boshqacha tarzda qurilgan. Har bir qadamda keyingi segmentdagi f (X) funksiya grafigining yoyi uchlari orqali akkord o‘tkaziladi va bir uchidan tangens o‘tkaziladi. Bu chiziqlarning x o'qi bilan kesishish nuqtalari keyingi segmentni tashkil qiladi. Xuddi shu shart bajarilganda qurilish jarayoni tugatiladi: (| b - a | < 2ε). (19) Segmentlar ichki joylashishi uchun [a,b] segmentida OX o'qini kesib o'tuvchi uchidan o'sha tangensni chizish kerak. To'rtta mumkin bo'lgan holatlarni ko'rib chiqqandan so'ng, tangensni funktsiya belgisi ikkinchi hosilaning belgisi bilan mos keladigan oxiridan chizish kerakligini tushunish oson. Bundan tashqari, tangens har doim o'ng tomondan yoki har doim chap tomondan chizilganligini ko'rish oson. Aniqlik uchun biz bu oxirni b deb faraz qilamiz Usulda ishlatiladigan formulalar analitik geometriyadan yaxshi ma'lum: (a,f(a)) va (b,f(b)) nuqtalardan o‘tuvchi akkord tenglamasi: y = f(a)+(x-a)*(f(b)-f(a))/(b-a), x o'qi bilan kesishish nuqtasi qaerdan: x= a - f(a) *(b-a)/(f(b)-f(a)). (b,f(b)) nuqtadan o'tuvchi tangens tenglamasi: y=f(b)+f'(b)(x-b), Ox o'qi bilan kesishish nuqtasi qaerdan: x= b - f(b)/f'(b). Algoritmni kompilyatsiya qilishda segment uchlari uchun faqat ikkita a va b o'zgaruvchilardan foydalanish va yozish yana tabiiydir. a= a - f (a) *(b-a)/ (f (b)-f (a)) (20) b= b - f(b)/f'(b) (21) Biroq, bu holda (20) va (21) formulalar tartibi muhim ahamiyatga ega. Misol. Tenglamaning 0;1 ildizini aniqlashtirish uchun birlashgan usuldan foydalanish kerak: x 3 - 3 *x +1 = 0, aniqligi 10 -3. , . Jadval 6
< . 0,347 8. Листинг – Текст программыunit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var x,e,y,d:real; n:integer; begin x:=1.2; e:=0.0001; n:=0; if abs(1/sqr(x)*cos(1/x))>=1 then begin x:=999; edit1.text:=floattostr(x); edit3.text:='Процесс расходится'; end else repeat y:=2.5-sqrt(x)-exp(ln(x)/3); d:=abs(y-x); x:=y; n:=n+1; until d<=e; edit1.text:=floattostr(n); edit2.Text:=floattostr(x); label1.caption:='Метод итераций'; edit3.text:='Процесс сходится'; end; procedure TForm1.Button2Click(Sender: TObject); var x,e,y,d,m1,m2,a,b:real; n:integer; begin x:=1.2; e:=0.0001; n:=0; a:=0.4; b:=1; m1:=abs(1+0.5*exp(ln(b)*(-0.5))+exp(ln(b)*(-2/3))/3); m2:=abs(-(9*exp(ln(a)*(-1.5))+8*exp(ln(a)*(-5/3)))/36); if 2*m1/m2<=0.01 then begin x:=999; edit1.text:=floattostr(x); edit3.text:='Процесс расходится'; end else repeat y:=x-(x+sqrt(x)+exp(ln(x)/3)-2.5)/(1+0.5*exp(ln(x)*(-0.5))+exp(ln(x)*(-2/3))/3); d:=abs(y-x); x:=y; n:=n+1; until d<=e; edit1.text:=floattostr(n); edit2.Text:=floattostr(x); edit3.text:='Процесс сходится'; end; procedure TForm1.Button3Click(Sender: TObject); var x,e,y,a,b,ya:real; n:integer; begin n:=0; a:=0.4; b:=1; e:=0.0001; ya:=a+sqrt(a)+exp(ln(a)/3)-2.5; repeat x:=(a+b)/2; y:=x+sqrt(x)+1/sqr(x)*cos(1/x); if exp(x)-exp(-x)-2<>0 then if y*ya<0 then begin b:=x; n:=n+1; end else begin a:=x; ya:=y; n:=n+1; end; until (b-a)<=e; edit1.text:=floattostr(n); edit2.Text:=floattostr(x); end; procedure TForm1.Button4Click(Sender: TObject); begin edit1.Clear; edit2.clear; edit3.clear; end; end. |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling