Автор работы: Пользователь скрыл имя, 28 Апреля 2014 в 18:20, контрольная работа
Разработать схемы алгоритмов и программные протоколы для решения математических задач с использованием системы компьютерной математики MATLAB.
ПРИМЕР РЕШЕНИЯ ЭКЗАМЕНАЦИОННОГО ЗАДАНИЯ
по дисциплине
"Информатика и вычислительная техника"
Разработать схемы алгоритмов и программные протоколы для решения математических задач с использованием системы компьютерной математики 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.
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.
disp(strcat('A=',num2str(A)))
else
B=abs(x-y).*(1+sin(z).^2)./(y.
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.
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. Программный код:
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))./
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(',
end
k=0;
for i=1:15
if x(i)==0
k=k+1;
num(k)=i;
end
end
disp(strcat('Количество
disp(['Номера нулевых
Работа программы:
Задание 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)',
disp(strcat('Первый нуль функции =',num2str(r1)))
r2=fzero('atan(2*x)-1./(1+x)',
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^
Производная четвёртого порядка:
-6144/(1+4*x^2)^4*x^3+768/(1+
Производная пятого порядка:
196608/(1+4*x^2)^5*x^4-36864/(
Число членов ряда Тейлора 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('По методу
z=quad('(x.^2+3.2)./(x.^5+4.7)
disp(strcat('По методу
Работа программы:
Задание 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))'
disp(strcat('Корень уравнения x=',num2str(r)))
Работа программы:
Задание 8
Корень уравнения x= 0.54625
>>
Информация о работе Контрольная работа по «Информатике и вычислительной технике»