русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Сначала построим график функции для приближенного определения корней и интервалов


Дата добавления: 2013-12-23; просмотров: 709; Нарушение авторских прав


Plot(x,cos(x))

Grid on;

Найдем нули функции

Уточним значение корней 1.8 3.1 4.3

Измените интервал для Х и шаг так, чтобы хорошо были видны корни.

Постройте график, проанализируйте его и при необходимости

Для приближенного определения корней и интервалов.

Если такая точка не найдена то выдается NaN

Вычисление нулей функции в окрестности точки

Функция fzero

--------fzero('функция',x)----------

 

fzero('функция',x) возвращает уточненное значение x, при котором достигается нуль функции, представленной строкой,при начальном значении аргумента x. (функция в нуле меняет знак)

(Not-a-Number не числовой характер данных)

x1=fzero('x-5',4)

x2=fzero('x-5',2)

x3=fzero('2^x-8',0)

x4=fzero('2^x-7',0)

x5=fzero('0.25*x+sin(x)-1',5)

>> x1=fzero('x-5',4)

x1 =

>> x2=fzero('x-5',2)

x2 =

>> x5=fzero('0.25*x+sin(x)-1',5)

x5 =

5.8128

Для более сложных функций: сначала построим график функции

 

Пример 1

Найдем нули функции y=x.^3-9*x.^2+26.*x-24;

x=1.5:0.5:4.5;

y=x.^3-9*x.^2+26.*x-24;

plot(x,y),grid %добавим сетку

теперь уточним значение корней в окрестности точек, где функция y=x.^3-9*x.^2+26.*x-24; пересекает ось ОХ.

x1=fzero('x^3-9*x^2+26*x-24',1.8)

x2=fzero('x^3-9*x^2+26*x-24',3.1)

x3=fzero('x^3-9*x^2+26*x-24',4.3)

%Правильный ответ должен быть 2, 3, 4.

>> x=1.5:0.1:4.5;

>>

>> y=x.^3-9*x.^2+26.*x-24;

>> plot(x,y),grid

 

 

 
 

 


>> x1=fzero('x^3-9*x^2+26*x-24',1.8)

x2=fzero('x^3-9*x^2+26*x-24',3.1)

x3=fzero('x^3-9*x^2+26*x-24',4.3)



x1 =

x2 =

3.0000

x3 =

 

--------------------------------------------

Пример 2

Y=x.^2-5*x+6

Построим график

x=-2:0.2:5;

plot(x,x.^2-5*x+6)

 

x=fzero('x^2-5*x+6',1)

x=fzero('x^2-5*x+6',4)

%Правильный ответ должен быть 2, 3.

 
 


x=fzero('x^2-5*x+6',1)

x=fzero('x^2-5*x+6',4)

x =

x =

3.0000

2)Вычисление нулей функции на интервале:

%-------------fzero('функция',[x1,x2])------------

Для Примера 1

x1_1=fzero('x^3-9*x^2+26*x-24',[1.8 4.5])%возвращает только один корень т.к. fzero('функция',[x1,x2])работает только с интервалом с одной сменой знака.

x1_1=fzero('x^3-9*x^2+26*x-24',[1.8 2.3])(x1_1 = 2.0000 )

 

 

--------------------------------------------------------------------------------

Пример 3

 

Найдем нули функции Y=cos(x);

 

x=-2*pi:0.1:2*pi;

x=fzero('cos',[1 3])

или x=fzero('cos(x)',[1 3])

или х= fzero(@cos.[1 3])

нельзя написать интервал 'cos',[-5 5], т.к. на этом интервале много смен знаков - выдает ошибку.

На интервале [1 3] только одна смена знака

 
 

 


корень = 1.57

 

Пример 4

 

 

Найдем нули функции 0.25*x+sin(x)-1;

 

x=0:0.1:10;

plot(x,0.25*x+sin(x)-1)

grid on; %по графику видно, что нули функции нужно искать в интервалах %[0.5 1], [2 3], [5 6]

 

x1=fzero('0.25*x+sin(x)-1',[0.5 1])

x2=fzero('0.25*x+sin(x)-1',[2 3])

x3=fzero('0.25*x+sin(x)-1',[5 6])

 
 


x1 =

0.8905

x2 =

2.8500

x3 =

5.8128

 

 

3)Вычисление нулей функции с заданной точностью:

--------------fzero('функция',x,eps) --------

Для Примера 4

 

x4=fzero('0.25*x+sin(x)-1',5,0.00001)

x4=fzero('0.25*x+sin(x)-1',[5 6],0.00001)

-------------------------------------------------------------

4)Вычисление нулей функции с п\п функцией

Функцию y=0.25*x+sin(x)-1 мы оформили как М-функцию fun5.m и сохранили в отдельном файле с именем fun5.m в той же директории, что и вызывающая её программа.

Под функциями понимаются как встроенные функции, например sin(x) или ехр(х),так и функции пользователя, например f(x), задаваемые как M-файлы-функции. Например, функция fe=@exp; сохранена как M-файл.

function f=fun5(x);функция; fun5 – имя функции

f=0.25*x+sin(x)-1;

x1=fzero('fun5',[0.5 1])на интервале

 

>> x1=fzero('fun5',[0.5 1])

x1 =

0.8905



<== предыдущая лекция | следующая лекция ==>
Настройка отчета | Матричный метод


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.