на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Решение математических задач с помощью алгоритмического языка Turbo Pascal, Microsoft Excel, пакета MathCAD и разработка программ в среде Delphi
/b>Решение уравнения в Turbo Pascal

Массив (матрица, таблица, вектор) - это структура данных, представляющая собой совокупность элементов одного типа.

Массив называется одномерным, если для получения доступа к его элементам достаточно одной индексной переменной.

1) Массив можно определить как одномерную (последовательную) совокупность элементов некоторого типа, которые адресуется с помощью индекса.

2) Массив должен быть объявлен в разделе описания переменных:

VAR ИмяМассива: ARRAY (НачИндекс. КонечныйИндекс) OF ТипДанных.

3) Доступ к элементу массива осуществляется путем указания индекса (номера), в качестве которого нужно использовать переменную целого типа. Massiv (2): =5;

А: =massiv (4);

4) Для ввода, вывода и обработки массивов удобно использовать операторы циклов. Задание элементов массива случайным образом.

Необходимо массив yi из случайных чисел, входящих в определенный интервал. Для этого нужно использовать функцию Random (x), которая возвращает случайное число от 0 до X, если функция используется без параметра, то будут генерировать числа от 0 до 1.

Перед использованием данной функции необходимо применить оператор Randomize, который обеспечивает несовпадение последовательности случайных чисел, генерируемых функцией.

В Microsoft Excel:

Во втором столбце формула имеет вид: =СТЕПЕНЬ (EXP (1) ^ (3*A2) - TAN (A2) ^3; 1/5) /КОРЕНЬ ( (A2) ^2+SIN (A2) ^2)

Рисунок.

x

y

0,4

2,267

0,7

1,576

0,8

1,473

1,3

0,752

В Mathcad:

В Turbo Pascal:

program zadanie3;

uses crt;

const n=4;

var x,y: array [1. n] of real;

i: integer;

z,j,d: real;

begin

clrscr;

for i: =1 to n do

begin

write ('Enter x [i] =');

readln (x [i]);

end;

for i: =1 to n do

begin

j: =exp (3*x [i]) - exp (3*ln (sin (x [i]) /cos (x [i])));

z: =exp (1/5*ln (abs (j))) * (abs (j) /j);

d: =sqrt (sqr (x [i]) +sqr (sin (x [i])));

y [i]: =z/d;

writeln ('x [i] =',x [i]: 5: 1,' y [i] =',y [i]: 5: 3);

end;

readkey;

end.

Блок-схема алгоритма решения задания №1.3

Нахождение функции заданном массиве:

Результаты вычислений:

Задание 1 (г) вычисление суммы в Microsoft Excel

В третьем столбце формула имеет вид: = (A2^ (-A2*SIN (A2)) - LN (2*A2+5)) / (КОРЕНЬ (2+SIN (2*A2)) +A2^2)

В четвертом столбце формула имеет вид: =СУММ (C2*B2+C3*B3+C4*B4+C5*B5)

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, задан массив:

Задание 2. Интегрирование функции

Вычислить определённый интеграл

Так как определённый интеграл является площадью фигуры, ограниченной некоторой функцией y=f (x), то целью задачи является нахождение площади этой фигуры. Для этого необходимо данную фигуру разбить на более простые, площадь которых находится по простым формулам, а затем сложить полученные площади в одну для нахождения необходимой, т.е. для вычисления данного определённого интеграла.

Существуют различные методы нахождения определённого интеграла.

Рассмотрим некоторые из них:

метод средних прямоугольников;

метод трапеций;

метод Симпсона (парабол);

с автоматическим выбором шага;

1. Метод прямоугольников

Для вычисления приближённого значения определённого интеграла отрезок [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) = .

Если функция f вычисляется в точках xi+h/2 [xi;; xi+1], то получается формула средних прямоугольников:

2. Метод трапеции

Метод трапеций аналогичен методу прямоугольников, с той лишь разницей, что на каждом частичном отрезке строится трапеция.

Приближенное значение интеграла равно сумме всех площадей частичных трапеций:

I=

3. Метод симпсона

Если на частичном отрезке длиной 2h функции заменяется дугой параболы, то можно получить формулу парабол или обобщенную формулу Симпсона:

= (h/3) * (y0+y2n+,

где

1 при i - нечетном;

Ci =

1 при i - чётном;

4. С автоматическим выбором шага

Точность вычисления определенного интеграла зависит от величины шага интегрирования. Ошибка в выборе величины шага интегрирования либо не обеспечит нужной точности, либо приведет к необоснованным затратам машинного времени.

Заданную точность при рациональных затратах времени на вычисления обеспечивают алгоритмы интегрирования с автоматическим выбором шага. Идея метода автоматического выбора шага интегрирования для достижения заданной точности заключается в следующем:

а) выбирается начальное n и вычисляется шаг h= (b-a) /n;

б) рассчитывается значение интеграла I1 для этого шага h;

в) шаг h уменьшается в два раза, т.е. h=h/2 и вычисляется значение интеграла I2;

г) оценивается погрешность между двумя значениями r=I1-I2; если погрешность r меньше или равна заданной точности, т.е. r<=, то точность достигнута и значение интеграла I=I2; если r>, то точность не достигнута и величине I1 присваивается более точное значение I2;

д) теперь повторяются этапы в) и г) до выполнения условия r<=.

Вычисление определенного интеграла с помощью пакета 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

Задание 3. Решение системы линейных уравнений

Решение уравнения с помощью MathCAD

Данная задача в 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.

, ,

Задание 4. Решение нелинейного уравнения

Задача нахождения корней нелинейных уравнений вида 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

Метод деления отрезка пополам:

Задание 5. Организация нахождения минимума и максимума элемента в массиве случайных чисел в среде пакета MathCAD

Организовать нахождение MIN и MAX элемента в массиве случайных чисел К. Генерацию элементов массива осуществить с помощью встроенной функции RND (N); вычисления провести с помощью встроенных функций MIN (К) и MAX (К)

В Mathcad:

Необходимое нахождение значений в среде MathCAD можно провести с помощью встроенных функций.

Для решения этой задачи нужно: задать промежуток, в котором будут генерироваться случайные числа; воспользоваться функцией rnd; после того, как будут выбраны случайные числа, воспользуемся функцией нахождения минимального и максимального значений: min (x) и max (x).

Задание 6

Определить среднее арифметическое, среднее квадратическое отклонение рядов Ni и Ki, дисперсию и коэффициент корреляции. Ввод Ni и Ki -в виде векторов из 10 элементов, каждый из внешних файлов данных, подготовленных вручную или с помощью любой программы, позволяющей создавать файлы в формате ASCIT. Вычисление - с помощью встроенных функций: mean (N), mean (K), var (N), var (K),stdev (K), stdev (K), corr (N,K).

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.