Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.04.2020
Сообщений: 11
Matlab 2020

Нужно дополнить код решением, используя классический метод Ньютона

14.10.2020, 13:17. Показов 1201. Ответов 1

Студворк — интернет-сервис помощи студентам
Код представлен ниже:
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
iBis=0;%constants
imNM=0;  
e=0.0000001;
lb=-10;
rb=-4;
pkx1=-10;
pk=-4;
 
p=-10:0.1:-4;
%fzero
f=@(p) (0.001*p.^5)+(0.02*p.^4)+(0.5*p.^3)+(4*p.^2)+10*p+40; 
y=f(p);
figure;
plot(p,y);
grid;
p1=[-10 -4];
opts=optimset('Display','iter','Tolx',1e-5);%TolX – final p tolerance
disp('Information about function fzero'); 
[p, fval]=fzero(f,p1,opts);
% p01=fzero(f, p1);
hold on;
plot(p,fval,'ko');
 fprintf('Root (fzero): %.8f\n', p); %formatted output
%Bisection Method
while (abs(rb-lb)>e) 
 iBis=iBis+1; %counter
 mid=(rb+lb)/2;
 if(f(lb)*f(mid)<0)
     rb=mid;
 elseif (f(mid)*f(rb)<0)
     lb=mid;
 else
     break;
 end
end
fprintf('Root (BisectionMethod): %.8f\n', mid);
fprintf('Number of iterations (BisectionMethod): %d\n', iBis);
%Modified Newton's Method (mNM)
%finding differential 
 syms x;           %create symbolic variable
 y=(0.001*x.^5)+(0.02*x.^4)+(0.5*x.^3)+(4*x.^2)+10*x+40; %my function, but p==x
 z1=diff(y);       %finding differential of my function
                   %it returns the equation in symbolic form
 z2=diff(z1);
 z2=subs(z2,x,pkx1);
 z2=double(z2);
 z1=subs(z1,x,pkx1);%replace x with pkx1(right border) 
 z1=double(z1);     %convert to numerical form
if (f(pkx1)*z2>0)
 while(abs(pkx1-pk)>e)
     imNM=imNM+1; %counter
     pk=pkx1;     %write the previous value
     pkx1=pk-f(pk)/z1; %count next value
     
     if (f(pkx1)==0) %if funсtion = 0 then 
        break;       %we stop the cycle 
     end
 
 end
 fprintf('Root (mNM): %.8f\n',pkx1);%and display the data
 fprintf('Number of iterations (mNM): %d\n',imNM);
 else
     return;
end
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2020, 13:17
Ответы с готовыми решениями:

Дополнить метод Ньютона, учитывая сходимость
Вот решал задачку методом Ньютона. Мне сказали дополните программу, чтобы она контролировала сходимость этого метода, т.е. если fabs(x-x)...

Вычислить корни уравнения, используя метод простой итерации, метод Ньютона
2 1) Вычислить корни уравнения 2*(e^x)-5*x-2 с точностью 0.000001, используя метод простой итерации 2) Решить это же уравнение методом...

нужно дополнить - исправить код
Понимаю, что задач вроде не сложная, но никак не получается переделать код. Я решил задачу , которую выкладывал ниже, про кол-во...

1
574 / 363 / 186
Регистрация: 11.01.2019
Сообщений: 1,220
15.10.2020, 10:14
Лучший ответ Сообщение было отмечено Beetlejuice1 как решение

Решение

Beetlejuice1, решение методом касательных Ньютона
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
clear
syms x
y=(0.001*x.^5)+(0.02*x.^4)+(0.5*x.^3)+(4*x.^2)+10*x+40;
diap=[-10 -4]; % диапазон
a = diap(1); b = diap(2); % границы
df = diff(y); % первая 
ddf = diff(df); % и вторая производные
f = matlabFunction(y); 
df = matlabFunction(df);
ddf = matlabFunction(ddf);
eps = 0.0000001; % задание точности
k=0;
if f(a)*ddf(a) > 0 % с какой границы начать искать
      xk=a; x0=b;
   else
      xk=b; x0=a;
end
while  abs(xk-x0)>eps 
        x0 = xk; % x0 - значение предыдущего шага
        xk = x0 - f(x0)/df(x0); % новое значение
        k=k+1;
end
fprintf('Корень(Newton): %.8f\n',xk);
fprintf('Число итераций (Newton): %d\n',k);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2020, 10:14
Помогаю со студенческими работами здесь

Нужно дополнить код комментариями
Такая просьба. Нужно расписать исходный програмный код, чтобы рассказать преподу что происходит с начала программы, до ее конца(объяснить...

Нужно дополнить код комментариями
Такое дело. Нужно дополнить исходный код уже готовой программы комментариями(можно в отдельном текстовом файле), для того, что бы потом...

Решить уравнение, используя модифицированный метод Ньютона
Решить уравнение : cos 2/x- 2 sin 1/x +1/x=0, используя модифицированный метод Ньютона: {x}_{n+1}={x}_{n}-f({x}_{n})/f'{x}_{0} ...

Решить уравнение используя модифицированный метод Ньютона
Помогите пожалуйста

Решить два уравнения, используя метод Ньютона
Нужно решить два уравнения используя метод Ньютона на интервале от -15 до 15. Помогите пожалуйста!!! Для набора математических...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru