Контрольная работа по «Информатике и вычислительной технике»

Автор работы: Пользователь скрыл имя, 28 Апреля 2014 в 18:20, контрольная работа

Краткое описание

Разработать схемы алгоритмов и программные протоколы для решения математических задач с использованием системы компьютерной математики MATLAB.

Вложенные файлы: 1 файл

Primer_reshenia_Ekzam_zadania.doc

— 180.00 Кб (Скачать файл)

ПРИМЕР РЕШЕНИЯ ЭКЗАМЕНАЦИОННОГО ЗАДАНИЯ

по дисциплине

"Информатика и вычислительная  техника"

 

Разработать схемы алгоритмов и программные протоколы для решения математических задач с использованием системы компьютерной математики MATLAB.

 

Задание 1:

Вычислить алгебраическое выражение при x = 0,273; y = 4,38; z = 3,76.

 

 

      Схема алгоритма:

 

 

 

Программный код:

clear

disp('Задание 1')

x=input('Введите x=');

y=input('Введите y=');

z=input('Введите z=');

b=(4.*y.^2.*exp(sin(x))+1)/(3.*z.^3+log(x));

disp(strcat('b=',num2str(b)))

 

 

Работа программы:

Задание 1

Введите x=0.273

Введите y=4.38

Введите z=3.76

b=0.64161

>>

Задание 2:

Вычислить алгебраическое выражение

при x = 3,74;  0,02; y = 0,82;  z = 2.4.

 

 

 

     Схема алгоритма:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программный код:

clear

disp('Задание 2')

x=input('Введите x=');

y=input('Введите y=');

z=input('Введите z=');

if x>=z

    A=(x+log10((z+y).^(1/3)))./(2.*atan(x));

    disp(strcat('A=',num2str(A)))

else

    B=abs(x-y).*(1+sin(z).^2)./(y.*z.^2);

    disp(strcat('B=',num2str(B)))

end

 

 

 

Работа программы:

Задание 2

Введите x=3.74

Введите y=0.82

Введите z=2.4

A=1.4926

>>

Задание 2

Введите x=0.02

Введите y=0.82

Введите z=2.4

B=0.24665

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 3:

Получить таблицу значений функции , a = 0,75; b = 15,2.

3.1. Значения аргумента x изменять в интервале от x1 = 0,3 до x2 = 7 с шагом ∆x = 0,6.

3.2. Значения аргумента x заданы массивом: x1 = 0,3; x2 = 7; x3 = 6,4; x4 = 3,2; x5 = 1,9; x6 = 2,3; x7 = 2,4.

 

 

 

                                                     

Задание 3.1. Схема алгоритма:

 

 

 

 

 

 

 

 

 

 

 

Задание 3.1. Программный код:

clear

disp('Задание 3.1')

a=0.75;b=15.2;

x1=input('Введите x1=');

x2=input('Введите x2=');

dx=input('Введите dx=');

disp(' x          y')

for x=x1:dx:x2

    y=(log(a.*x).^2+b.^(1/3))./(a.*x.^2-cos(x));

    disp([num2str(x) '        ' num2str(y)])

end

 

 

 

Задание 3.1. Работа программы:

Задание 3.1

Введите x1=0.3

Введите x2=7

Введите dx=0.6

 x          y

0.3        -5.2962

0.9        -186.5069

1.5        1.5407

2.1        0.70389

2.7        0.46691

3.3        0.36028

3.9        0.2991

4.5        0.25696

5.1        0.22358

5.7       0.19495

6.3        0.16993

6.9        0.14844

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                      Задание 3.2. Схема алгоритма:

 

 

 

 

 

 

Задание 3.2. Программный код:

clear

disp('Задание 3.2')

a=0.75;b=15.2;

for i=1:7

    x(i)=input(['x(' num2str(i) ')=']);

end

disp(' x          y')

for i=1:7

    y=(log(a.*x(i)).^2+b.^(1/3))./(a.*x(i).^2-cos(x(i)));

    disp([num2str(x(i)) '        ' num2str(y)])

end

 

 

 

Задание 3.2.

Работа программы:

 

Задание 3.2

x(1)=0.3

x(2)=7

x(3)=6.4

x(4)=3.2

x(5)=1.9

x(6)=2.3

x(7)=2.4

 x          y

0.3        -5.2962

7        0.14521

6.4        0.1661

3.2        0.37376

1.9        0.85871

2.3        0.59873

2.4        0.55812

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 4:

Для множества чисел (массива X): 0,01; -27,3; 0; 1,25; -371;

0,5; -0,1; 1,2; -5; -172,3; 197,83; -2,7; 43,51; 0; -0,02 подсчитать

количество и вывести на экран номера нулевых элементов.

 

 

      Схема алгоритма:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программный код:

clear

disp('Задание 4')

for i=1:15

    x(i)=input(strcat('x(',num2str(i),')='));

end

k=0;

for i=1:15

    if x(i)==0

        k=k+1;

        num(k)=i;

    end

end

disp(strcat('Количество нулевых элементов =',num2str(k)))

disp(['Номера нулевых элементов: ' num2str(num)])

 

 

 

Работа программы:

Задание 4

x(1)=0.01

x(2)=-27.3

x(3)=0

x(4)=1.25

x(5)=-371

x(6)=0.5

x(7)=-0.1

x(8)=1.2

 

x(9)=-5

x(10)=-172.3

x(11)=197.83

x(12)=-2.7

x(13)=43.51

x(14)=0

x(15)=-0.02

Количество нулевых элементов =2

Номера нулевых элементов: 3  14

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 5:

Выполнить математический анализ функции .

Построить графики 1-ой – 5-ой производной.

 

 Разложить заданную функцию  в ряд Тейлора в точке x0=3 со средней на интервале [1, 5] относительной погрешностью ≤ 5%.

 

 

         Схема алгоритма:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программный код:

clear

disp('Задание 5')

%

% Построение графика заданной  функции

x=-5:0.01:5;

y=atan(2*x)-1./(1+x);

plot(x,y)

axis([-5 5 -10 10])

grid

%

% Поиск нулей заданной функции

r1=fzero('atan(2*x)-1./(1+x)',[-2,-1.5],0.0001);

disp(strcat('Первый нуль функции =',num2str(r1)))

r2=fzero('atan(2*x)-1./(1+x)',[0,1],0.0001);

disp(strcat('Второй нуль функции =',num2str(r2)))

%

% Нахождение производных и построение  их графиков

syms x

f=atan(2*x)-1/(1+x);

dy_dx1=diff(f,1);

dy_dx2=diff(f,2);

dy_dx3=diff(f,3);

dy_dx4=diff(f,4);

dy_dx5=diff(f,5);

 

disp('Производная первого порядка:')

disp(dy_dx1)

disp('Производная второго порядка:')

disp(dy_dx2)

disp('Производная третьего порядка:')

disp(dy_dx3)

disp('Производная четвёртого порядка:')

disp(dy_dx4)

disp('Производная пятого порядка:')

disp(dy_dx5)

d1=inline(vpa(dy_dx1));

d2=inline(vpa(dy_dx2));

d3=inline(vpa(dy_dx3));

d4=inline(vpa(dy_dx4));

d5=inline(vpa(dy_dx5));

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xx=-5:0.01:5;

z1=d1(xx);

z2=d2(xx);

z3=d3(xx);

z4=d4(xx);

z5=d5(xx);

figure

plot(xx,z1)

xlabel('Производная первого порядка')

axis([-5 5 -10 10])

grid

figure

plot(xx,z2)

xlabel('Производная второго порядка')

axis([-5 5 -10 10])

grid

 

figure

plot(xx,z3)

xlabel('Производная третьего порядка')

axis([-5 5 -10 10])

grid

figure

plot(xx,z4)

xlabel('Производная четвёртого порядка')

axis([-5 5 -10 10])

grid

figure

plot(xx,z5)

xlabel('Производная пятого порядка')

axis([-5 5 -10 10])

grid

 

 

 

%

% Разложение функции в ряд  Тейлора

e1=0.05;

x0=3;a=1;b=5;

xx=a:0.01:b;

ff=inline(vpa(f));

f1=ff(xx);

n=1;

t=taylor(f,x,x0,n);

tt=inline(vpa(t));

t1=tt(xx);

e=(mean(abs((t1-f1)./f1)));

ee(1)=e;

while e>e1

   n=n+1;

    t=taylor(f,x,x0,n);

    tt=inline(vpa(t));

    t1=tt(xx);

    e=abs(mean((t1-f1)./f1));

    ee(n)=e;

end   

disp(strcat('Число членов ряда Тейлора n=',num2str(n)))

disp(strcat('Средняя отн. погрешность  описания функции e=',num2str(e)))

disp('Ряд Тейлора:')

pretty(t)

figure

plot(xx,f1,xx,t1)

grid

gtext('y=f(x)')

gtext('ряд Тейлора')

figure

bar(ee*100)

xlabel('число членов ряда Тейлора')

ylabel('средняя относительная погрешность')

 

 

Работа программы:

Задание 5

Первый нуль функции =-1.7718

Второй нуль функции =0.42335

Производная первого порядка:

2/(1+4*x^2)+1/(1+x)^2

 

Производная второго порядка:

-16/(1+4*x^2)^2*x-2/(1+x)^3

 

Производная третьего порядка:

256/(1+4*x^2)^3*x^2-16/(1+4*x^2)^2+6/(1+x)^4

 

Производная четвёртого порядка:

-6144/(1+4*x^2)^4*x^3+768/(1+4*x^2)^3*x-24/(1+x)^5

 

Производная пятого порядка:

196608/(1+4*x^2)^5*x^4-36864/(1+4*x^2)^4*x^2+768/(1+4*x^2)^3+120/(1+x)^6

 

Число членов ряда Тейлора n=3

Средняя отн. погрешность описания функции e=0.019488

Ряд Тейлора:

 

                              355   69      2905         2

                    atan(6) - --- + --- x - ----- (x - 3)

                              592   592     87616

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 6:

Получить в графическом и табличном виде

решение задачи Коши на интервале [0; 1]

методом Рунге-Кутта 4-го порядка:

; y(0) = 0.0.

 

 

Схема алгоритма:

 

 

Программный код:

clear

disp('Задание 6')

[x y]=ode45(@f,[0 1],0.0);

disp('     x         y');

xy=[x y];

disp(xy)

plot(x,y);

grid

xlabel('x')

ylabel('y(x)')

 

 

М-функкция:

function dydx=f(x,y)

dydx=sin(x^2)+y^2;

 

 

Работа программы:

Задание 6

     x         y

         0         0

    0.0250    0.0000

    0.0500    0.0000

    0.0750    0.0001

    0.1000    0.0003

    0.1250    0.0007

    0.1500    0.0011

    0.1750    0.0018

    0.2000    0.0027

    0.2250    0.0038

    0.2500    0.0052

    0.2750    0.0069

    0.3000    0.0090

    0.3250    0.0114

    0.3500    0.0143

    0.3750    0.0176

    0.4000    0.0213

    0.4250    0.0256

    0.4500    0.0303

    0.4750    0.0357

    0.5000    0.0416

    0.5250    0.0481

    0.5500    0.0553

    0.5750    0.0632

    0.6000    0.0718

    0.6250    0.0811

    0.6500    0.0912

    0.6750    0.1020

    0.7000    0.1137

    0.7250    0.1262

    0.7500    0.1396

    0.7750    0.1538

    0.8000    0.1690

    0.8250    0.1851

    0.8500    0.2022

    0.8750    0.2203

    0.9000    0.2393

    0.9250    0.2593

    0.9500    0.2804

    0.9750    0.3025

    1.0000    0.3257

>>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание 7:

Вычислить и вывести на печать значение определённого интеграла методами трапеций и Симпсона с точностью 0.0015.

 

         Схема алгоритма:

 

Программный код:

clear

disp('Задание 7')

x=0.0:0.001:1.8;

y=(x.^2+3.2)./(x.^5+4.7);

z=trapz(x,y);

disp(strcat('По методу трапеций интеграл =',num2str(z)))

z=quad('(x.^2+3.2)./(x.^5+4.7)',0.0,1.8,0.0015);

disp(strcat('По методу Симпсона интеграл =',num2str(z)))

 

 

 

Работа программы:

Задание 7

По методу трапеций интеграл =1.1339

По методу Симпсона интеграл =1.1339

>>

 

 

Задание 8:

Построить график функции и найти корень нелинейного уравнения на интервале [a; b]=[0,4; 0,6].

 

        Схема алгоритма:

 

 

Программный код:

clear

disp('Задание 8')

x=0:0.01:1;

y=sqrt(x)-cos(sqrt(x));

plot(x,y)

grid

r=fzero('sqrt(x)-cos(sqrt(x))',[0.4,0.6],0.0001);

disp(strcat('Корень уравнения x=',num2str(r)))

 

 

Работа программы:

Задание 8

Корень уравнения x= 0.54625

>>

 

 

 

 

 


 



Информация о работе Контрольная работа по «Информатике и вычислительной технике»