x
|
a
|
y
|
S
|
1,1
|
0,42
|
-0,368
|
-1,3
|
1,3
|
0,7
|
-0,399
|
|
1,5
|
0,9
|
-0,413
|
|
1,7
|
1,2
|
-0,408
|
|
В
Mathcad:
В Turbo Pascal:
Program Summa;
uses crt;
const n=4;
Var x,z,d,Xn,h,F,S: Real;
i: Integer;
a: array [1. n] of Real;
BEGIN
clrscr;
randomize;
Write ('enter please Xn,h=');
ReadLN (Xn,h);
for i: =1 to n Do
begin
Write ('enter please a [i] =');
ReadLN (a [i]);
end;
x: =Xn;
S: =0;
for i: =1 to n Do
begin
z: =exp ( (-x*sin (x)) *ln (x)) - ln (2*x+5);
d: =sqrt (2+sin (2*x)) +sqr (x);
F: =z/d;
S: =S+F*a [i] ;
x: =x+h;
end;
WriteLN ('S=',S: 10: 3);
readkey
END.
Результаты
вычислений:
Блок-схема
алгоритма решения задания №1.4
Нахождение
функции, если дан x, h, n, задан массив:
Так как определённый интеграл
является площадью фигуры, ограниченной некоторой функцией y=f (x), то целью задачи является
нахождение площади этой фигуры. Для этого необходимо данную фигуру разбить на
более простые, площадь которых находится по простым формулам, а затем сложить
полученные площади в одну для нахождения необходимой, т.е. для вычисления
данного определённого интеграла.
Существуют различные методы
нахождения определённого интеграла.
Рассмотрим некоторые из них:
метод средних прямоугольников;
метод трапеций;
метод Симпсона (парабол);
с автоматическим выбором шага;
Для вычисления приближённого
значения определённого интеграла отрезок [a, b] делят на n равных частей точками
a=x0<x1<x2<…<xn=b
так, что
xi+1-xi= (b-a) /n (I=0,1,2,…,n-1). Тогда
длина каждого частичного отрезка определяется как h= (b-a) /n, а
точки разбиения x0=a,
x1=x0+h, x2=x1+h,…, xn=xn-1+h. Эти точки называются узлами, а h-шагом
интегрирования. В узлах вычисляются ординаты y0,
y1,…, yn,
т.е. yi=f (xi). На частичных отрезках [xi;
xi+1] строятся
прямоугольники, высота которых равна значению f (x) в какой-либо точке каждого частичного отрезка. Произведение
f (xi) *h определяет площадь частичного прямоугольника, а сумма таких
произведений - площадь ступенчатой фигуры, представляющей собой приближённое
значение интеграла.
Если f
(xi) вычисляется в левых концах отрезков [xi; xi+1],
то получается формула левых прямоугольников:
»Iл= (y0+y1+…+yn-1) = .
Если f
(xi) вычисляется в правых концах отрезков [xi; xi+1],
то получится формула правых прямоугольников:
»Iп= (y1+y2+…+yn) = .
Метод трапеций аналогичен
методу прямоугольников, с той лишь разницей, что на каждом частичном отрезке
строится трапеция.
Приближенное значение
интеграла равно сумме всех площадей частичных трапеций:
»I=
Если на частичном отрезке
длиной 2h функции заменяется дугой параболы, то можно
получить формулу парабол или обобщенную формулу Симпсона:
=
(h/3) * (y0+y2n+,
где
1 при i - нечетном;
Ci
=
1 при i - чётном;
Точность вычисления
определенного интеграла зависит от величины шага интегрирования. Ошибка в
выборе величины шага интегрирования либо не обеспечит нужной точности, либо
приведет к необоснованным затратам машинного времени.
Заданную точность при
рациональных затратах времени на вычисления обеспечивают алгоритмы
интегрирования с автоматическим выбором шага. Идея метода автоматического
выбора шага интегрирования для достижения заданной точности заключается в
следующем:
а) выбирается начальное n и вычисляется шаг h= (b-a) /n;
б) рассчитывается значение
интеграла I1 для этого шага h;
в) шаг h
уменьшается в два раза, т.е. h=h/2 и вычисляется значение интеграла I2;
г) оценивается погрешность
между двумя значениями r=½I1-I2½;
если погрешность r меньше или равна заданной
точности, т.е. r<=e, то точность достигнута и значение
интеграла I=I2;
если r>e, то точность не достигнута и величине I1
присваивается более точное значение I2;
д) теперь повторяются этапы в)
и г) до выполнения условия r<=e.
Вычисление
определенного интеграла с помощью пакета MathCAD в нормальном и символьном виде.
Для решения интеграла
численно и в символьном виде необходимо задать функцию f
(x) и найти от неё интеграл на промежутке [a, b].
Для вычисления численного
значения заданного интеграла:
С помощью встроенных функций
задаём определённый интеграл;
После нажатия клавиши "=",
MathCAD выдаёт значение интеграла на заданном
промежутке.
В Mathcad:
При решении интеграла в
символьном виде:
С помощью встроенных функций
задаём интеграл;
Вызов в меню "Математика"
подменю "Булен" и нажатие "®"
или Control+. приводит к вычислению интеграла в
символьном виде.
В Mathcad:
В Turbo Pascal:
Текст программы вычисления
определенного интеграла
методом
средних прямоугольников на
TP
program
Sredniipriamougolniki;
uses crt;
var
a,b,h,s,y,x: real;
i,n: integer;
begin clrscr;
write ('Vvedite
a,b,n=');
readln (a,b,n);
h: = (b-a) /n;
x: =a+h/2;
s: =0;
for i: =1 to
n do
begin
s: =s+1/sqr
(3*sin (x) +2*cos (x));
x: =x+h;
end;
y: =h*s;
writeln ('n=',n,'
y=',y: 10: 3);
readkey;
end.
Результаты работы
программы:
a=0 b=1
n=1000 y=0.117
Блок-схема алгоритма решения
задания №2.1
Вычисление определенного
интеграла методом средних прямоугольников:
Текст программы вычисления
определенного интеграла
методом
трапеции
program
integral 2;
uses crt;
var
a,b,h,S,S1,x,y: real;
i,n: integer;
function f (c:
real): real;
begin
f: =1/sqr (3*sin
(x) +2*cos (x));
end;
begin clrscr;
write ('a,b,n=');
readln (a,b,n);
h: = (b-a) /n;
x: =a;
s: =0;
for i: =1 to
n-1 do
begin
x: =x+h;
s: =s+f (x);
end;
S1: = f (a) +f
(b);
y: = (h/2) *
(S1+2*s);
writeln ('n=',n,
' y=',y: 8: 3);
readkey;
end.
Результаты работы
программы
a=0 b=1
n=1000 y=0.117
Блок-схема алгоритма решения
задания № 2.2
Вычисление определенного интеграла методом трапеции:
Текст программы вычисления
определенного интеграла
методом Симпсона
program
simpson;
uses crt;
var
a,b,h,x,y,s,s1: real;
i,n,c,m: integer;
function f (x:
real): real;
begin
f: =1/sqr (3*sin
(x) +2*cos (x));
end;
begin clrscr;
write ('a,b,n=');
readln (a,b,n);
h: = (b-a) /
(2*n);
x: =a;
s: =0;
c: =1;
m: =2*n-1;
for i: =1 to
m do
begin
x: =x+h;
s: =s+ (3+c)
*f (x);
c: =-c;
end;
s1: =f (a) +f
(b);
y: = (h/3) *
(s1+s);
writeln ('y=',y:
10: 3,' n=',n);
readkey;
end.
Результаты работы
программы
a=0 b=1
n=1000 y=0.117
Блок-схема алгоритма решения
задания №2.3
Вычисление определенного интеграла методом Симпсона:
Текст
программы вычисления
определенного интеграла с
автоматическим
выбором шага
program avtomaticheskiyshag;
uses crt;
var
e,a,b,s,h,sn,sn1: real;
i,n: integer;
function f (x:
real): real;
var y: real;
begin
f: =1/sqr (3*sin
(x) +2*cos (x));
end;
begin
clrscr;
write ('a=');
read (a);
write ('b=');
read (b);
write ('e=');
read (e);
sn: =0;
sn1: =0;
n: =100;
repeat
n: =n*2;
h: = (b-a) /n;
s: =0;
sn: =sn1;
s: =s+f (a) +f
(b);
for i: =1 to
(n-1) do
s: =s+2*f (a+i*h);
s: = (h/2) *s;
sn1: =s;
until abs (sn-s)
<e;
writeln ('s=',s:
8: 3);
readkey;
end.
Результаты работы
программы
a=0 b=1 n=1000 s=0.117
Данная задача в MathCAD будет выполнятся с использованием ранжированной
переменной. В среде пакета MathCAD для выполнения
итеративных вычислений предусмотрен аппарат ранжированных переменных.
Ранжированная переменная-это
переменная, которой приписан диапазон изменения значений.
Пример ранжированной
переменной:
x:
=a,b. c,
где x
- переменная, a,b,c - значения, которые принимает переменная, т.е. a-первое значение, b-второе значение,
т.е. (b-a) - шаг изменения
переменной, и c-последнее значение. .
Рассмотрим решение системы
линейных уравнений матричным методом:
a11X1+a12X2+a13X3=b1,a21X1+a22X2+a23X3=b2,a31X1+a32X2+a33X3=b3.
Решение этим методом
заключается в решении матричного уравнения вида:
R=M-1*V.
Для этого необходимо:
сформировать матрицу
коэффициентов системы линейных уравнений
сформировать вектор-столбец
коэффициентов свободных членов системы линейных уравнений V:
b1
V: = b2
b3
найти искомые параметры с
помощью матричного уравнения: R=M-1*V.
получим:
X1
R = X2
X3
Рассмотрим решение системы
линейных уравнений с помощью решающего блока Given - Find.
Для решения системы уравнений
этим способом используется специальная конструкция, называемая решающим
блоком. Блок состоит из заголовка (Given),
его тела (определённой системы уравнений) конца блока (Find).
Find включает в себя перечень переменных
блока, относительно которых должна быть решена система уравнений.
Для решения этим методом
введём начальные приближённые значения искомых значений:
X1: =0X2: =0X3: =0
опишем блок решения:
Given
x11X1+x12X2+x13X3=b1,x21X1+x22X2+x23X3=b2,x31X1+x32X2+x33X3=b3.
опишем ведущие переменные:
r: =find (X1, X2,
X3)
найдём искомые параметры:
X1
r = X2
X3
Пример вычисления:
1) решение системы
линейных уравнений матричным методом:
2) решение системы
линейных уравнений с помощью решающего блока Given - Find.
, ,
Задача
нахождения корней нелинейных уравнений вида F (x) =0 встречается в различных областях научных исследований. Нелинейные
уравнения можно разделить на два класса - алгебраические и трансцендентные. Алгебраическими
уравнениями называются уравнения, содержащие только алгебраические функции. Уравнения,
содержащие другие функции (тригонометрические, показательные, логарифмические и
др.) называются трансцендентными.
По условию задачи уравнение cosx-x+4=0 является трансцендентным. Поэтому
для нахождения корней будем использовать приближённые методы вычисления (метод
касательных и метод половинного деления).
Существуют различные
итерационные методы решения трансцендентных уравнений. Наиболее известные: метод
касательных, метод половинного деления, метод хорд, комбинированный метод хорд
и касательных, метод итераций и т.д.
Метод половинного деления
отрезка пополам является одним из простейших методов нахождения корней
нелинейных уравнений. Метод довольно медленный, однако он всегда сходится, т.е.
при использовании решение получается всегда, причём с заданной точностью. Требуемое
обычно большее число итераций по сравнению с некоторыми другими методами не
является препятствием к применению этого метода, если каждое значение функции
несложно.
Метод касательных или метод
Ньютона. В этом методе каждой итерации объём вычислений больший, чем в ранее
рассмотренном методе половинного деления, поскольку приходится находить не
только значение функции F (x),
но и значения её производных. Однако скорость сходимости здесь значительно
выше, чем в предыдущем методе.
Решение нелинейного
уравнения в среде пакета MathCAD
По условию задачи данное
нелинейное уравнение является трансцендентным. Для нахождения корней этого
уравнения воспользуемся функцией root.
Решение трансцендентных уравнений
методом касательных
program kasatelnie;
uses crt;
label 20;
var
a,b,E,U,D,x: real;
function f (x:
real): real;
begin
f: =u*u*u-7*u-7;
end;
function f1
(x: real): real;
begin
f1: =3*x*x-10;
end;
function f2
(x: real): real;
begin
f2: =6*x;
end;
begin
writeln ('a,b,E=');
read (a,b,E);
if f (a) *f2
(a) >0 then
u: =a else u:
=b;
20: D: =f (u)
/f1 (u);
u: =u-d;
if ABS (d) >E
then goto 20;
writeln ('u=',u:
7: 3);
readkey;
end.
Результаты работы
программы
a=2 b=4 e=0.01 x=3.000
Блок-схема алгоритма решения
задания №4.2
Метод касательных:
Решение трансцендентных уравнений
методом деления отрезка пополам
Program
polovinoedelenie;
uses crt;
label
20,30,40;
var
a,b,E,V,W,X,Z: real;
function f (x:
real): real;
begin
f: =x*x*x-7*x-7;
end;
begin
writeln ('a,b,E=');
read (a,b,E);
V: =f (a);
W: =f (b);
20: x: = (a+b)
/2;
z: =f (x);
if z=0 then
goto 30;
if V*Z>=0
then
begin
a: =x;
v: =z;
end;
begin
b: =x;
W: =z;
end;
40: if (b-a)
>E then goto 20;
x: = (a+b) /2;
30: writeln
('x=',x: 6: 3);
readkey;
end.
Результаты работы
программы
a=2 b=4 e=0.01 u=3.049
Блок-схема алгоритма решения
задания №4.1
Метод деления отрезка
пополам:
Организовать нахождение MIN и MAX элемента в массиве
случайных чисел К. Генерацию элементов массива осуществить с помощью встроенной
функции RND (N); вычисления
провести с помощью встроенных функций MIN (К) и MAX (К)
В Mathcad:
Необходимое нахождение
значений в среде MathCAD можно провести с помощью
встроенных функций.
Для решения этой задачи нужно:
задать промежуток, в котором будут генерироваться случайные числа; воспользоваться
функцией rnd; после того, как будут выбраны случайные
числа, воспользуемся функцией нахождения минимального и максимального значений:
min (x) и max
(x).
Определить среднее
арифметическое, среднее квадратическое отклонение рядов Ni
и Ki, дисперсию и коэффициент корреляции. Ввод
Ni и Ki -в виде векторов из 10 элементов, каждый из внешних
файлов данных, подготовленных вручную или с помощью любой программы,
позволяющей создавать файлы в формате ASCIT. Вычисление
- с помощью встроенных функций: mean (N),
mean (K), var
(N), var (K),stdev (K), stdev
(K), corr (N,K).