|
|||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Блок-схема
Программа Program ex_1; Uses crt; Var c,d,h,a,b:real; k:integer; Function F(x:real):real; Begin F:= exp(x*ln(2))-4*x End; Begin Writeln ('vvedite c,d,h'); Readln (c,d,h); k:= 0; a:=c; Repeat b:=a+h; If F(a)*F(b)<= 0 then begin k:=k+1; Writeln ('k=',k,' a=',a:5:2,' b=',b:5:2); end; a:=b; until b>d; end. Ответ: k=1 a=0 b=0.5 k=2 a=3.5 b=4 k=3 a=4 b=4.5
Pascal. Метод половинного деления Блок-схема
Программа program mdp; function f(x: real): real; begin f:=exp(x*ln(2))-4*x; end; var a, b, e, c, x: real; begin write('a='); read(a); write('b='); read(b); write ('e='); read(e); c:=(a+b)/2; while(b-a)>e do begin if(a)*f(c)<0 then b:=c else a:=c; writeln('a=', a:3:4, 'b=', b:3:4, 'f(a)=', f(a):6:9, 'f(b)=',f(b):6:9); c:=(a+b)/2; end; x:=(a+b)/2; writeln ('x=',x:3:3,' f(x)=',f(x):4:4); readln; end.
Ответ: a=0 b=0.5 e=0.001 a=0.2500b=0.5000f(a)=0.189207115f(b)=-0.585786438 a=0.2500b=0.3750f(a)=0.189207115f(b)=-0.203160445 a=0.2500b=0.3125f(a)=0.189207115f(b)=-0.008142188 a=0.2813b=0.3125f(a)=0.090247360f(b)=-0.008142188 a=0.2969b=0.3125f(a)=0.040980536f(b)=-0.008142188 a=0.3047b=0.3125f(a)=0.016401064f(b)=-0.008142188 a=0.3086b=0.3125f(a)=0.004124898f(b)=-0.008142188 a=0.3086b=0.3105f(a)=0.004124898f(b)=-0.002009781 a=0.3096b=0.3105f(a)=0.001057274f(b)=-0.002009781 x=0.310 f(x)=-0.0005
a=3.5 b=4 e=0.001 a=3.9000b=3.9500f(a)=-0.671472135f(b)=-0.345018737 a=3.9000b=3.9250f(a)=-0.671472135f(b)=-0.510526065 a=3.9000b=3.9125f(a)=-0.671472135f(b)=-0.591564328 a=3.9000b=3.9063f(a)=-0.671472135f(b)=-0.631658927 a=3.9000b=3.9031f(a)=-0.671472135f(b)=-0.651600629 a=3.9000b=3.9016f(a)=-0.671472135f(b)=-0.661545147 a=3.9000b=3.9008f(a)=-0.671472135f(b)=-0.666510831 x=3.900 f(x)=-0.6690
Выводы Мы нашли корни уравнения в Microsoft Excel, MathCAD, Pascal 2 методами: шаговым и половинного деления с точностью до 0,001. Из схем и таблиц можно увидеть, что получилось 2 корня. Наиболее точные корни получились в средах Excel и Pascal, хотя наиболее удобной в использовании была среда MathCAD, так как в нее уже заложены специальные формулы, позволяющие найти более точное значение уже со второго приближения. Уточнение корня напрямую зависит от точности его нахождения e, чем меньше e, тем точнее будет корень. Среда Excel выводила результат в ячейках. Выводить его самостоятельно было бы затруднительно. При нахождении корней были получены следующие результаты: MathCAD: X=0.31 на интервале [0; 0.5] X=3.999 на интервале [3.5; 4] Microsoft Excel X=0.309 на интервале [0; 0.5] X=3.999 на интервале [3.5; 4] Pascal X=0.310 на интервале [0; 0.5] X=3.900 на интервале [3.5; 4]
Список литературы 1. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы – М.: Лаборатория Базовых Знаний, 2002. 2. Численные методы. Автор: Лапчик М.П., Рагулина М.И., Хеннер Е.К.; под ред. Лапчика М.П. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |