Решение уравнений с одной переменной в системе Mat Lab

Подготовка к работе.

1. По указанной литературе изучить:

правила локализации решения,

решение одного уравнения,

решение системы n уравнений.

2. Разработать алгоритмы решения задач из варианта задания.

3. Составить программы решения задач.

Контрольные вопросы

1. Задание функции пользователя.

2. Локализация решений уравнения.

3. Решение нелинейного уравнения с использованием функции fzero.

4. Вывод полученных решений уравнения.

5. Локализация решений системы из двух уравнений.

6. Решение системы из двух уравнений.

7. Вывод полученных решений системы уравнений.

Задание к работе

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

- Создать mat-функцию для функции f1 (х)

function f1=fun1(x1); % Файл fun1.m

f1=1.8*x1^4-sin(10*x1);

end;

- Создать mat-функцию для нахождения корня методом половинного деления;

function pol_d=p_delen(a,b,E); % Файл p_delen.m

L=b-a; % определение диапазона аргумента х

while(L>E) % до тех пор, пока не достигнута точность...

c=(a+b)/2;

if fun1(c)*fun1(a)>0 % если знаки одинаковые

a=c; % то смещаем "левую" часть отрезка к середине"

else % иначе

b=c; % то смещаем "правую" часть отрезка к середине"

end; % конец если

L=b-a;

end; % end of while

pol_d=c; % передача результата в основную программу

- Создать mat-функцию для нахождения корня методом простой итерации;

function iter=prost_it(a,b,E); % Файл prost_it.m

ic=0; % устанавливаем счетчик итераций на нуль

while(fun1(a)*fun1(b)<0) % до тех пор, пока знаки разные,...

if (fun1((a+b)/2)<0) % если середина отрезка отрицательна

a=(a+b)/2; % то смещаем "левую" часть отрезка к середине"

else % иначе

b=(a+b)/2; % то смещаем "правую" часть отрезка к середине"

end; % конец если

ic=ic+1; % увеличиваем счетчик числа итераций

if (ic>100) % если число итераций превышает 100

break; % прекращаем выполнения цикла

end; % конец если

if ( abs(a-b)<E ) % если достигнута заданная точность

break; % прекращаем выполнение цикла

end; % конец если

end; % end of while

- iter=a; % передача результата в основную программу

 

- Создать mat-функцию для вывода графика.

function graf=grafi(a,b,n); % Файл grafi.m

dx=(a+b)/n;

for i=1:n % цикл создания массивов для вывода графика функции

x(i)=a+(i-1)*dx; % вычисление массива аргумента

y(i)=fun1(x(i)); % вычисление функции

i=i+1;

end; % конец цикла

plot(x,y) % строим график

grid on

- Создать файл программы. Ввести текст заглавия задачи, как комментарий. Ввести в него аргументы в заданных пределах.

- Вывести y(x)=f1(x) в виде XY графика. По нему определить приближенно корни уравнения у(х)=0. Если корни на графике не просматриваются, то изменить пределы изменения аргумента и повторить операции.

- Для каждого корня найти точное значение, используя функцию fzero.

Формат данной функции: x= fzero(fun, x0, options, P1, P2, …)

- Сформировать строку с результатами и вывести ее в заголовок окна графика.

 

% Задача 1 Файл uravnen.m

% Решение уравнений с одной переменной

clc

clear

n=30;

a=0.12; % начальное значение аргумента "Слева"

E=10^(-5); % точность нахождения корня

b=2; % начальное значение аргумента "Справа"

iter1=prost_it(a,b,E) ; % вычисление корня методом простой итерации

pol_d1=p_delen(a,b,E) ; % вычисление корня методом половинного деления

fz=fzero('fun1',[a,b]); % вычисление корнЯ с испльзованием функции fzero

% вывод результатов

fprintf('\n\tвывод результатов\n\t вычисление корня')

fprintf('\n\t\tметодом простой итерации = %f', iter1)

fprintf('\n\t\tметодом половинного деления = %f',pol_d1)

fprintf('\n\t\tс испльзованием функции fzero = %f',fz)

% вывод гафика функции

grafi(a,b,n);

% Получить строку результатов

Result=strcat('x1=',num2str(iter1),' x2=',num2str(pol_d1),' x3=',num2str(fz));

% Включить его в график в форме заголовка

title(Result)

Варианты заданий

№ п/п Уравнение Отрезок Приближенное значение корня точность
1. 3 sin Ö x + 0,35x –3,8 = 0 [ 2; 3] 2,2985 0,0001
2. 0,25x3 + x – 1,2502 = 0 [ 0; 2] 1,0001 0,0001
3. [ 0,4; 1] 0,7376 0,0001
4. [ 0; 0,85] 0,2624 0,0001
5. 0,1 x2 – x ln x = 0 [ 1; 2] 1,1183 0,0001
6. tg x – 1/3 tg3 x + 1/5 tg5 x – 1/3 = 0 [ 0; 0,8] 0,3333 0,0001
7. [ 0; 1] 0,5629 0,0001
8. 3 x –4 ln x –5 = 0 [ 2; 4] 3,2300 0,0001
9. cos 2/x – 2 sin 1/x + 1/x = 0 [ 1; 2] 1,8756 0,0001
10. [ 0; 1] 0,7672 0,0001
11. ex – e-x – 2 = 0 [ 0; 1] 0,8814 0,0001
12. sin (ln x) – cos (ln x) + 2 ln x = 0 [ 1; 3] 1,3749 0,0001
13. x – 2 + sin 1/x = 0 [ 1,2; 2] 1,3077 0,0001
14. ex + ln x – 10x = 0 [ 3; 4] 3,5265 0,0001
15. [ 1; 2] 1,0804 0,0001
16. 1 – x + sin x – ln (1 + x) = 0 [ 0; 1,5] 1,1474 0,0001
17. 3 x – 14 + ex – e-x = 0 [ 1; 3] 2,0692 0,0001
18. [ 0; 1] 0,5768 0,0001
19. x + cos (x0,52 +2) = 0 [ 0,5; 1] 0,9892 0,0001
20. 3 ln(2 x) +6 ln x – 5 = 0 [ 1; 3] 1,8832 0,0001
21. sin x2 + cos x2 - 10 x = 0 [ 0; 1] 0,1010 0,0001
22. x2 – ln(1 + x) – 3 = 0 [ 2; 3] 2,0267 0,0001
23. 2x sin x – cos x = 0 [ 0,4; 1] 0,6533 0,0001
24. [ -1; 0] -0,2877 0,0001
25. ln x – x + 1,8 = 0 [ 2; 3] 2,8459 0,0001
26. x tg x – 1/3 = 0 [ 0,2; 1] 0,5472 0,0001
27. tg x/2 – ctg x/2 + x = 0 [ 1; 2] 1,0769 0,0001
28. 0,4 + arctgÖ x – x = 0 [ 1; 2] 1,2388 0,0001
29. [ 0; 1] 0,4538 0,0001
30. 0,6 * 3x –2,3 x –3 = 0 [ 2; 3] 2,4200 0,0001

 


 

Лабораторная работа № 6