Файл: M и постройте график функции на отрезке 10 10, включив командой.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.12.2023
Просмотров: 76
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Напишите файл-функцию f.m и постройте график функции на отрезке [-10; 10], включив командой gridon отображение линий сетки. Выделите отрезки, содержащие нули функции – графический способ это один из методов локализации корней. Очевидно, функция имеет корни одинарной и двойной кратности. Запишите вектор p, содержащий коэффициенты полинома, и найдите его корни, выполнив команду roots(p).function []= f(fun)plot(-10,subs(fun,'x',-10))hold onfor i=-10:0.01:10plot(i,subs(fun,'x',i))endgrid onend>> f(@(x)x^3-3*x^2-9*x-5)>> line([-2 -2],[-250 250],'Color','Red')>> line([0 0],[-250 250],'Color','Red')>> line([4 4],[-250 250],'Color','Red')>> line([6 6],[-250 250],'Color','Red')>> p=[1 -3 -9 -5];>> roots(p)ans =5.0000 -1.0000 + 0.0000i-1.0000 - 0.0000i>> fzero('x^3-3*x^2-9*x-5',0)ans =5Fzero не найдёт корень х=-1, так как функция при переходе через эту точку не меняет знакНапишите программу, реализующую нахождение корня одинарной кратности методом деления отрезка пополам. Обратите внимание, что метод дихотомии предполагает, что значения функции на концах отрезка различаются по знаку.function c=dix(fun,a,b,eps)while (abs(b-a)>eps)c=(b+a)/2;fa=subs(fun,'x',a);fb=subs(fun,'x',b);fc=subs(fun,'x',c);if (fc*fa<=0)b=c;else a=c; endendend>> dix(@(x)x^3-3*x^2-9*x-5,4,6,0.0001)ans =4.9999Напишите программу нахождения решений уравнения методом Ньютона и используйте ее для поиска всех корней полинома.function xn=metH(fun,x0,eps)f0=subs(fun,'x',x0);fx=diff(fun,'x');fn=subs(fx,'x',x0);xn=x0-f0/fn;while (abs(xn-x0)>=eps)x0=xn;f0=subs(fun,'x',x0);fn=subs(fx,'x',x0);xn=x0-f0/fn;endend>> meth('x^3-3*x^2-9*x-5',-3,0.0001)ans =-1.0001>> meth('x^3-3*x^2-9*x-5',4,0.0001)ans =5.0000Найдем методом простых итераций корни уравнения (квадратный корень из числа a). Приведем уравнение к виду, удобному для использования метода: . Можно убедиться, что правая часть уравнения удовлетворяет условию сходимости метода (в отличие от таких представлений как:
, …). Напишите программу вычисления квадратного корня с машинной точностью. function xn=pitr(fun,x0,eps)x1=subs(fun,'x',x0);xn=subs(fun,'x',x1);while((xn-x1)^2/abs(2*x1-xn-x0)>=eps)x0=x1;x1=subs(fun,'x',x0);xn=subs(fun,'x',x1);endend>> pitr(@(x)1/2*(4/x+x),1,0.0001)ans =2.0000Сделайте предположения о том, где находятся корни уравнения и найдите их, используя все изученные методы.>> f(@(x) sin(x)-x/2)>> line([-1 -1],[-1 1],'Color','Red')>> line([1 1],[-1 1],'Color','Red')>> line([3 3],[-1 1],'Color','Red')>> line([-3 -3],[-1 1],'Color','Red')Метод дихотомии>> dix(@(x)sin(x)-x/2,-1,1,0.001)ans =-9.7656e-004>> dix(@(x)sin(x)-x/2,1,3,0.001)ans =1.8955>> dix(@(x)sin(x)-x/2,-3,-1,0.001)ans =-1.8955МетодНьютона>> meth('sin(x)-x/2',0.1,0.0001)ans =0>> meth('sin(x)-x/2',2,0.0001)ans =1.8955>> meth('sin(x)-x/2',-2,0.0001)ans =-1.8955Метод простых итериций>> pitr(@(x)2*sin(x),2,0.0001)ans =1.8956>> pitr(@(x)2*sin(x),-2,0.0001)ans =-1.8956>> pitr(@(x)arcsin(x/2),1,0.0001)ans =6.4924e-005>> dix(@(x)x^3-3*x^2-9*x-5,4,6,0.0001)n =15ans =4.9999>> meth('x^3-3*x^2-9*x-5',4,0.0001)n =4ans =5.0000>> pitr(@(x)3+9/x+5/x^2,4,0.0001)n =10ans =4.9999
, …). Напишите программу вычисления квадратного корня с машинной точностью. function xn=pitr(fun,x0,eps)x1=subs(fun,'x',x0);xn=subs(fun,'x',x1);while((xn-x1)^2/abs(2*x1-xn-x0)>=eps)x0=x1;x1=subs(fun,'x',x0);xn=subs(fun,'x',x1);endend>> pitr(@(x)1/2*(4/x+x),1,0.0001)ans =2.0000Сделайте предположения о том, где находятся корни уравнения и найдите их, используя все изученные методы.>> f(@(x) sin(x)-x/2)>> line([-1 -1],[-1 1],'Color','Red')>> line([1 1],[-1 1],'Color','Red')>> line([3 3],[-1 1],'Color','Red')>> line([-3 -3],[-1 1],'Color','Red')Метод дихотомии>> dix(@(x)sin(x)-x/2,-1,1,0.001)ans =-9.7656e-004>> dix(@(x)sin(x)-x/2,1,3,0.001)ans =1.8955>> dix(@(x)sin(x)-x/2,-3,-1,0.001)ans =-1.8955МетодНьютона>> meth('sin(x)-x/2',0.1,0.0001)ans =0>> meth('sin(x)-x/2',2,0.0001)ans =1.8955>> meth('sin(x)-x/2',-2,0.0001)ans =-1.8955Метод простых итериций>> pitr(@(x)2*sin(x),2,0.0001)ans =1.8956>> pitr(@(x)2*sin(x),-2,0.0001)ans =-1.8956>> pitr(@(x)arcsin(x/2),1,0.0001)ans =6.4924e-005>> dix(@(x)x^3-3*x^2-9*x-5,4,6,0.0001)n =15ans =4.9999>> meth('x^3-3*x^2-9*x-5',4,0.0001)n =4ans =5.0000>> pitr(@(x)3+9/x+5/x^2,4,0.0001)n =10ans =4.9999