Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/58: Рейтинг темы: голосов - 58, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 94
24.04.2015, 17:23  [ТС]
Студворк — интернет-сервис помощи студентам
letete, точность действительно выше. оптимальный шаг - это шаг, при котором погрешность минимальна. Я прав? но не понимаю, что имеется в виду в задание, в пункте 1, и как это реализовать в matlab
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clc
clear
x=-5:0.1:5
f=x.*sqrt(cos(x)+2)
df=sqrt(cos(x)+2)-(x.*sin(x))/sqrt(2*(cos(x)+2));
for i=2:100
    h=x(i+1)-x(i)
    dff(i)=(f(i+1)-f(i-1))/(2*h);%центральная разностная производная
end;
y=x;
y(101)=[]
g=sym('g');
b=g*sqrt(cos(g)+2);
z=diff(b,g)
ezplot(z,[-4.5 4.5])
hold on
plot(x,df,'g',y,dff,'r')
grid
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.04.2015, 17:23
Ответы с готовыми решениями:

Численное дифференцирование
Вычислить первую и вторую производную от таблично заданной функции yi=f(xi) i=0,1,2,3,4 в точке x=X В моем варианте X=2.0 ...

Численное дифференцирование
Здрастуйте! Помогите решить задачу. Не могу понять условие. Вот скрин.

Численное дифференцирование
Здравствуйте! Помогите решить задачу. Я сделал аналитический метод, но не понимаю, как сделать численный :(

32
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
24.04.2015, 17:46
вдруг решил запустить твой и заметил, что ты тщательно скрываешь свои косяки!.. два вопроса: зачем это вдруг ты считаешь на интервале [-5, 5], а выводишь на интервале [-4.5, 4.5]? и что у тебя с первым значением dff вдруг произошло?
1
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 94
24.04.2015, 17:56  [ТС]
letete, про интервал, игрался со значениями, а вообще получается, что начало и конец графиков не совпадают, так как i=2:100. при i=1 выдает ошибку

Добавлено через 2 минуты
letete, и почему то график (x,df) выводит не такой, какой должен быть
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
24.04.2015, 17:56
естественно!
Цитата Сообщение от Creimi Посмотреть сообщение
3. блаблабла.. Доопределить краевые точки значением первой
разностной производной той же точности.
1
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 94
24.04.2015, 18:04  [ТС]
letete, смысл задания понятен. но как это реализовать в matlab?
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
24.04.2015, 18:05
Цитата Сообщение от Creimi Посмотреть сообщение
и почему то график (x,df) выводит не такой, какой должен быть
отвечаю: потому что производную не правильно посчитал
0
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 94
24.04.2015, 18:20  [ТС]
letete, через матлаб считал производную. Даже еще раз пересчитал, все равно такой же график.
Matlab M
1
df=(cos(x) + 2).^(1/2) - (x.*sin(x))/(2*(cos(x) + 2).^(1/2));
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
24.04.2015, 18:26
не такой же. две ошибки...

Добавлено через 1 минуту
Matlab M
1
df = sqrt(cos(x)+2)-(x.*sin(x))./(2.*(sqrt(cos(x)+2)));
1
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 94
24.04.2015, 18:39  [ТС]
letete, исправил. теперь df правильно выводит
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clc
clear
x=-5:0.1:5
f=x.*sqrt(cos(x)+2)
df=(cos(x) + 2).^(1/2) - (x.*sin(x))./(2.*(cos(x) + 2).^(1/2));
for i=2:100
    h=x(i+1)-x(i)
    dff(i)=(f(i+1)-f(i-1))/(2*h);%центральная разностная производная
end;
y=x;
y(101)=[]
g=sym('g');
b=g*sqrt(cos(g)+2);
z=diff(b,g)
ezplot(z,[-5 5])
hold on
plot(x,df,'g',y,dff,'r')
grid
Добавлено через 8 минут
letete, так что же с этим оптимальным шагом делать?
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
24.04.2015, 18:55
Цитата Сообщение от Creimi Посмотреть сообщение
так что же с этим оптимальным шагом делать?
хороший вопрос!

ответ: понятия не имею!
зависит от того, что имел ввиду преподаватель. в моем понимании оптимальный шаг = оптимальный по скорости счета, но я всего лишь простой инженер. очевидно, что здесь имеется ввиду нечто другое. скорее всего оговорка о 10% от максимального значения дана не просто так. возможно, я бы сделал так: максимальное значение функции - это около 4.47; 10% от этого = 0.447... дальше известный факт, что погрешность для центральной разностной производной O(h2), следовательно, корень из шага должен давать эти 10%... т.е. h = 0.2
но мне вот лично такие рассуждения кажутся за уши притянутыми... этот вопрос лучше задавать тому, кто будет проверять
1
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 94
24.04.2015, 19:01  [ТС]
letete, и последний вопрос тогда, как сравнить результаты аналитический и численный. пытаюсь просто вычесть эти два графика, но выводит не то, что надо
0
141 / 111 / 19
Регистрация: 14.04.2014
Сообщений: 224
Записей в блоге: 10
24.04.2015, 19:14
откровенно говоря, я понятия не имею что ты там выводишь...
вот, зацени, что у меня получилось
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
clc, clear
start = -4; finish = 4; h = 0.2;        % пределы и начальный шаг
 
x = start : h : finish;                 % с этим шагом что-то считаем
df = sqrt(cos(x)+2)-(x.*sin(x))./(2.*(sqrt(cos(x)+2)));
                                        % почему я считаю производную - не знаю, 
                                        % просто так погрешность меньше получается
                                        
m = max(df)/10; h = m^2;                % пересчитываем сетку
x = start : h : finish;                 % и заново с новым типа оптимальным
f = x.*sqrt(cos(x)+2);                  % шагом все остальное
df = sqrt(cos(x)+2)-(x.*sin(x))./(2.*(sqrt(cos(x)+2)));
 
dff = zeros(size(x));                   % резервируем память под массив 
dff(1) = (f(2)-f(1))/h;                 % доопределяем первую точку
for i = 2: (finish-start)/h
    dff(i) = (f(i+1)-f(i-1))/(2*h);     % центральная разностная схема
end;
dff(i+1) = (f(end)-f(end-1))/h;         % доопределяем вторую точку
 
g = sym('g');                           % символьный счет
b = g*sqrt(cos(g)+2);
z = diff(b,g);
ezplot(z,[start finish])                % вывод синего графика, символьный
hold on
grid on
plot(x,df,'g', x,dff,'r')               % вывод сосчитанной производной (зеленая)
                                        % и разностной производной (красная)
disp(char('Получившийся шаг: ', num2str(h)))
disp(char('Количество узлов: ', num2str(size(x,2))))
2
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 94
24.04.2015, 19:29  [ТС]
letete, вопрос в том как сравнить эти результаты, чтобы погрешность узнать между аналитическим и численным результатами?

Добавлено через 6 минут
letete, все сделал. Спасибо большое за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2015, 19:29

Численное дифференцирование
Доброе время суток, ув. форумчане. У меня есть оцифрованный график перемещения моста при прогибе y(x) (наборы точек). Координату x я...

Тема: Численное дифференцирование и интегрирование в MatLab
1. Используя возможности математического пакета определите значения определенного интеграла и первой производной функции. 2....

Двойное дифференцирование функций в Matlab
Добрый день. Подскажите как это делается?

Численное интегрирование функций
clc clear a=xlsread('lab6',1,'B1'); %нижняя граница b=xlsread('lab6',1,'C1'); %верхняя n=10; h=(b-a)/n;%шаг x=a:h:b; y=...

Численное дифференцирование функций
Помогите найти значения первой и второй производной функции в точке x=(a+b)/2 c помощью сплайнов. ф-я: f(x)=1+1/x; a=1; b=4; ...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru