Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Решение уравнений с одной переменной в системе 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





Поделиться с друзьями:


Дата добавления: 2016-10-06; Мы поможем в написании ваших работ!; просмотров: 558 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2295 - | 2065 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.