КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Результаты работы в Qbasic
ВИД ПРОГРАММЫ НА ЯЗЫКЕ QBASIC DECLARE SUB iter (x0!, e!, kol!, root!) DECLARE SUB iter (x0!, e!, kol!, root!) DECLARE SUB dix (a!, b!, e!, root!) DECLARE SUB kas (a!, b!, x!, e!, root!) DECLARE FUNCTION F! (x!) DECLARE FUNCTION G! (x!) DECLARE FUNCTION F1! (x!) DECLARE FUNCTION F2! (x!) DECLARE FUNCTION G2! (x!) REM численное решение не линейных уравнений 'уточнение корня методами касательных/дихот/ньютона/итерации CLS PRINT "проверка существования корня" PRINT " y = = x - 2 + SIN(1 / x)" REM ввод отрезка с проверкой на сущ решения DO INPUT "a= "; a INPUT "b= "; b INPUT "точность решения Eps="; e LOOP WHILE F(a) * F(b) > 0 REM мет дихотомии или метод деления отрезка пополам CALL dix(a, b, e, root) PRINT "корень ур по методу дихотомии="; root PRINT "значение функции F(x)="; PRINT USING " ##.######"; F(root) PRINT "-------------------------------------------" REM метод касательных или метод Ньютона INPUT "введите начальное значение корня на (a,b) X0="; x IF F(x) * F2(x) > 0 THEN PRINT "метод касательных(Ньютона) Применим" a = 1: b = 3 CALL kas(a, b, x, e, root) PRINT "корень по методу касательных="; root PRINT "значение функции F(x)="; PRINT USING " ##.######"; F(root) ELSE PRINT "метод касательных(Ньютона) НЕ Применим" END IF PRINT "-------------------------------------------" REM метод итерации INPUT "введите XO="; x0 IF ABS(G1(x)) < 1 THEN PRINT "метод Не применим" ELSE a = 1: b = 3 CALL iter(x0, e, kol, root) PRINT "корень по методу итерации="; root PRINT " количество итераций k="; kol PRINT "значение функции F(x)="; PRINT USING " ##.######"; F(root) END IF END
SUB dix (a, b, e, root) x = (a + b) / 2 DO IF F(x) * F(a) < 0 THEN b = x ELSE a = x END IF x = (b + a) / 2 LOOP UNTIL (b - a) < e root = (b + a) / 2 END SUB
FUNCTION F (x) F = x - 2 + SIN(1 / x) END FUNCTION
FUNCTION F1 (x) F1 = 1 + COS(1 / x) END FUNCTION
FUNCTION F2 (x) F2 = -SIN(1 / x) END FUNCTION
FUNCTION G (x) G = 2 - SIN(1 / x) END FUNCTION
FUNCTION G1 (x) G1 = -COS(1 / x) END FUNCTION SUB iter (x0, e, kol, root) kol = 0 x = x0 DO y = F1(x) kol = kol + 1 x = y LOOP UNTIL ABS(y - x) < e root = y END SUB
SUB kas (a, b, x, e, root) DO x = x - F(x) / F1(x) LOOP UNTIL ABS(F(x) / F1(x)) < e root = x END SUB
Дата добавления: 2015-05-29; Просмотров: 440; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |