DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Залежність температури металевого предмету при нагріванні в печі.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2015
Тип роботи:
Розрахункова робота
Предмет:
Алгоритмізація і програмування
Група:
АВ-1

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет “Львівська політехніка”  Контрольна робота З курсу «Алгоритмізація і програмування» на тему: «Залежність температури металевого предмету при нагріванні в печі» Виконав: ст. гр. АВ-1 Перевірив: Львів-2008 Завдання: Температура t металевого предмету при нагріванні в печі описується залежністю: f(t)=50+450*(t-(1-exp(-0.25*t))/0.25)/60-130 Виділення кореня f(t)=50+450*(t-(1-exp(-0.25*t))/0.25)/60-130 t[-10;-4]. f(-10)=180.4748 f(-4)=-58.4515 Блок-схема алгоритму  SHAPE \* MERGEFORMAT  початок t=100;20;300 f(t)= 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130 друк t, f(t) кінець  Програма мовою С //vudilennja_korenja #include<stdio.h> #include<conio.h> #include<math.h> float f(float t) {return 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130;} main() {clrscr(); for(float t=-10;t<=-4;t+=0.5) printf("\n t=%.f f=%6.4f",t,f(t)); getchar(); } Результат виконання t=-10.0 f=180.4748 t=-9.5 f=141.2804 t=-9.0 f=107.1321 t=-8.5 f=77.4369 t=-8.0 f=51.6717 t=-7.5 f=29.3746 t=-7.0 f=10.1381 t=-6.5 f=-6.3974 t=-6.0 f=-20.5493 t=-5.5 f=-32.5977 t=-5.0 f=-42.7897 t=-4.5 f=-51.3435 t=-4.0 f=-58.4515 Програма в середовищі MATLAB Функція-процедура %fun_t function y=fun_t(t) y=50+450*(t-(1-exp(-0.25*t))/0.25)/60-130; %vud_korin clear,clc t=[-10:0.5:-4]; f=fun_t(t); disp([t(:) f(:)]); format long; z=fzero('fun_t',0) figure(1); plot(t,f,'k'); xlabel('t');ylabel('f(t)'); grid; Результат виконання програми -10.0000 180.4748 -9.5000 141.2804 -9.0000 107.1321 -8.5000 77.4369 -8.0000 51.6717 -7.5000 29.3746 -7.0000 10.1381 -6.5000 -6.3974 -6.0000 -20.5493 -5.5000 -32.5977 -5.0000 -42.7897 -4.5000 -51.3435 -4.0000 -58.4515 z = -6.70264621763789  Метод половинного ділення Блок-схема алгоритму  SHAPE \* MERGEFORMAT  початок друк t0, f(t0),k,ε, |a-b| кінець а=-10,b=-4, k=0,ε=10-4 t0=(a+b)/2 |a-b|>ε f(a)∙f(t0)>0 a=t0 b=t0 k=k+1  Програма мовою С //pol_dilennja #include<stdio.h> #include<conio.h> #include<math.h> float f(float t) {return 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130;} main() {clrscr(); float a=-10,b=-4,t0,eps=1e-4; int k=0; A:t0=(a+b)/2; if(fabs(a-b)>eps) {if(f(a)*f(t0)>0) a=t0; else b=t0; k++; goto A; } printf("\n t0=%.7f f(x0)=%.7f",t0,f(t0)); printf(" k=%d eps=%.7f a-b=%.7f",k,eps,fabs(a-b)); getchar(); } Програма в середовищі MATLAB %pol_dil clear;clc a=-10; b=-4; k=0; eps=1e-4; t0=(a+b)/2; while abs(a-b)>eps if fun_t(a)*fun_t(t0)>0 a=t0; else b=t0; end; t0=(a+b)/2; k=k+1; end; disp(' t0 ') disp([ t0 ]) disp(' k ') disp([ k ]) Метод простих ітерацій f(t)= 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130 f´(t)=450/60∙[1-(1-e-0.25t ∙(-0.25))/0.25] φ(t)=t-f(t)∕k , де |k|≥Q∕2 Q=max|f´(t)| [-10;-4] |f´(-10)|=387.9748=Q |f´(-4)|=104.0485 f´(t)<0 => k<0 k=-200 φ(t)=t-50+450*(t-(1-exp(-0.25*t))/0.25)/60-130 ∕ 200 q=max|φ´(t)| [-10;-4] φ´(t)=1-450/60∙[1-(1-e-0.25t ∙(-0.25))/0.25] ⁄ (-200) φ´(-10)=-0.9399; φ´(-4)=0.4798 => q=0.9399 <1 Умова виходу:|t1-t|<∆(1-q)∕q; ε=∆∙(1-q)∕q Блок-схема алгоритму  SHAPE \* MERGEFORMAT  початок друк t1, f(t1),k,ε, кінець а=-10,b=-4, k=0,∆=10-4 q=0.9399 ε=∆(1-q)∕q t=(a+b)/2 |x1-x|>ε t=t1 k=k+1 t1=t-450/60∙[1-(1-e-0.25t ∙(-0.25))/0.25] ⁄ (-200)  Програма мовою С //prostux_iteracij #include<stdio.h> #include<conio.h> #include<math.h> float f(float t) {return 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130;} main() {clrscr(); float a=-10,b=-4,t,t1,det=1e-4,eps=det*(1-0.9399)/0.9399; int k=0; t=(a+b)/2; A:t1=t-450/60*(1-(1-e-0.25t *(-0.25))/0.25) ⁄ (-200); if(fabs(t1-t)>eps) {t=t1; k++; goto A;} else {printf("\n t1=%.4f f(t1)=%.7f",t1,f(t1)); printf(" k=%d eps=%.7f ",k,eps);} getchar(); } Програма в середовищі MATLAB %pros_iter clear;clc a=-10; b=-4; k=0; det=1e-4; t=(a+b)/2; t1=t-450/60*(1-(1-e-0.25*t*(-0.25))/0.25) ⁄ (-200); eps=det*(1-0.9399)/0.9399; while abs(t1-t)>eps t=t1; t1 t1=t-450/60*(1-(1-e-0.25*t*(-0.25))/0.25) ⁄ (-200); k=k+1; end; disp(' t1 ') disp([ t1 ]) disp(' k ') disp([ k ]) Метод хорд f(a)>0 f(b)<0 f´(t)<0 f´´(t)>0 t=b-f(b)∙(b-a)/(f(b)-f(a)) ; γ=f(t0)∙(t0-tf)/(f(t0)-f(tf)) ; t=t0-γ; Умова виходу: ‌‌‌‌‌‌‌|γ|≤ε; ε=∆∙m/(M-m) m=min |f´(t)‌‌|=104.0485; M=max |f´(t)‌‌|=387.9748; Блок-схема алгоритму  SHAPE \* MERGEFORMAT друк t, f(t),k, ε, |γ| кінець а=-10,b=-4, k=0,∆=10-4 m=104.0485 M=387.9748 ε=∆∙m/(M-m) |γ|>ε t0=a tf=b k=k+1 t0=t t=b-f(b)∙(b-a)/(f(b)-f(a)) f(a)∙f(t0)>0 tf=a t0=b γ=f(t0)∙(t0-tf)/(f(t0)-f(tf)) t=t0-γ початок  Програма мовою С //metod_xord #include<stdio.h> #include<conio.h> #include<math.h> float f(float t) {return 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130;} main() {clrscr(); float a=-10,b=-4,t0,t,tf,ha,det=1e-4, m=104.0485,M=387.9748,eps=m/(M-m)*det; int k=0; t=b-f(b)/(f(b)-f(a))*(b-a); if(f(a)*f(t)<0) {t0=b;tf=a;} else {t0=a;tf=b;} A:ha=f(t0)*(t0-tf)/(f(t0)-f(tf)); t=t0-ha; if(fabs(ha)>eps) {t0=t; k++; goto A;} else {printf("\n t=%.7f f(t)=%.7f",t,f(t)); printf(" k=%d eps=%.7f fabs(ha)=%.7f",k,eps,fabs(ha));} getchar(); } Програма в середовищі MATLAB %Metod hord clear;clc k=0;t0=-4;tf=-10;det=1e-4;M=387.9748;m=104.0485; eps=det*m/(M-m); ha=fun_t(t0)*(t0-tf)/(fun_t(t0)-fun_t(tf)); t=t0-ha; while abs(ha)>eps; t0=t; ha=fun_t(t0)*(t0-tf)/(fun_t(t0)-fun_t(tf)); t=t0-ha; k=k+1; end; disp(' t '); disp([ t ]); disp(' k '); disp([ k ]); format long; Метод дотичних f´(t)=450/60*(1-(1-exp(-0.25*t)*(-0.25))/0.25) t=a-f(a)/ f´(a) γ=f(t0)/ f´(t0) t=t0-γ; ε=√2∙m1∙∆/M2 Умова виходу: γ≤√2∙m1∙∆/M2 m1=min|f´(t)| => m1=f´(-4)=104.0485 M2=max|f´´(t)| f´´(t)=25e-0.25t f´´(-10)=304.5623 f´´(-4)=67.9570 M2=304.5623 Блок-схема алгоритму  SHAPE \* MERGEFORMAT  початок друк t, f(t),k, ε, |γ| кінець а=-10,b=-4, k=0,∆=10-4 m1=104.0485 M2=304.5623 ε=√2∙m1∙∆/M2 |γ|>ε t0=a tf=b k=k+1 t0=t t=a-f(a)/ f´(a) f(a)∙f(t)>0 tf=a t0=b γ=f(t0)/ f´(t0) t=t0-γ  Програма мовою С //metog_dotu4nux #include<stdio.h> #include<conio.h> #include<math.h> float f(float t) {return 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130;} main() {clrscr(); float a=-10,b=-4,t0,t,tf,ha,det=1e-4,m1=104.0485, M2=304.5623,eps=sqrt(2*m1*det/M2); int k=0; t=a-f(a)/(450/60*(1-(1-exp(-0.25*a))/0.25)); if(f(b)*f(t)>0) {t0=a;tf=b;} else {t0=b;tf=a;} A:ha=f(t0)/(450/60*(1-(1-exp(-0.25*t0))/0.25)); t=t0-ha; if(fabs(ha)>eps) {t0=t; k++; goto A;} else {printf("\n t=%.7f f(t)=%.7f",t,f(t)); printf(" k=%d eps=%.7f ha=%.7f ",k,eps,ha);} getchar(); } Програма в середовищі MATLAB Функція-процедура %poxidna function y=poxidna(t) y=450/60*(1-(1-exp(-0.25*t)*(-0.25))/0.25); %metod_dotuchnux clear;clc k=0;tf=+-4;t0=-10;M2=304.5623; m1=104.0485; det=1e-4;eps=sqrt(2*m1*det/M2); ha=fun_t(t0)/poxidna(t0); t=t0-ha; while abs(ha)>eps; t0=t; k=k+1; ha=fun_t(t0)/poxidna(t0); t=t0-ha; end; format long; disp(' t '); disp([ t ]); disp(' k '); disp([ k ]); Комбінований метод Наближення зліва (метод хорд): γ=f(a)∙(a-b)/(f(a)-f(b)) ; t1=a-γ. Наближення справа (метод дотичних): γ=f(b)/ f´(b) ; t2=b-γ. Блок-схема алгоритму  SHAPE \* MERGEFORMAT  початок друк t, k, ε, кінець а=-10,b=-4, k=0,∆=10-4 γ=f(a)∙(a-b)/(f(a)-f(b)); t1=a-γ |b-a|>∆ b=t2 a=t1 k=k+1 γ=f(b)/ f´(b) ; t2=b-γ t=(t1+ t1)/2  Програма мовою С //kombinovanuj_metod #include<stdio.h> #include<conio.h> #include<math.h> float f(float t) {return 50+450*(t-(1-exp(-0.25*t))/0.25)/60-130;} main() {clrscr(); float a=-10,b=-4,t2,t1,t,ha,det=1e-4; int k=0; A:ha=f(b)*(b-a)/(f(b)-f(a)); t1=b-ha; ha=f(b)/(50+450*(t-(1-exp(-0.25*t))/0.25)/60-130); t2=a-ha; if(fabs(b-a)>det) {b=t1;a=t2; k++; goto A;} else {t=(t1+t2)/2; printf("\n t=%.7f",t); printf(" k=%d eps=%.7f ",k,fabs(b-a));} getchar(); } Програма в середовищі MATLAB %Kombinovanui metod clear;clc; a=-10;b=-4;eps=1e-4;k=0; ha=fun_t(b)*(b-a)/(fun_t(b)-fun_t(a)); t1=b-ha; ha=fun_t(b)/poxidna(b); t2=a-ha; while (abs(b-a)>eps) b=t2; a=t1; k=k+1; ha=fun_t(b)*(b-a)/(fun_t(b)-fun_t(a)); t1=b-ha; ha=fun_t(b)/poxidna(b); t2=a-ha; end; t=(t1+t2)/2; format long; disp(' t '); disp([ t ]); disp(' k '); disp([ k ]); Порівняльна таблиця результатів обчислень
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!