Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
23 / 23 / 2
Регистрация: 10.03.2015
Сообщений: 155
1

Вставить в одну координатную плоскость несколько графиков функций

11.03.2015, 15:16. Просмотров 1671. Ответов 4
Метки нет (Все метки)


Добрый день. Не получается вставить в одну координатную плоскость график интерполянты, исходной функции и узлов интерполяции таким образом, чтобы исходная функция была гладкой. У меня она получается ломанной, если беру интервал с большим шагом. Возможно ли без шага построить исходную функцию гладкой на одной плоскости с интерполянтой? Заранее спасибо!
Вот сам код:
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
clc; close all; clear all;
a=0; % задаем начало интервала.
b=2; % задаем конец интервала.
h=0.5; % задаем шаг в интервале.
x = (a:h:b); % задаем значение x
y = sin(3*x)+cos(x).^2; % Значения у
N = length(x); % определяем количество точек.
xx = linspace(min(x),max(x),100); % формируем линейный массив размера 1x100 от минимального к максимальному.
% Создаем матрицу степеней х
for i = 1:N 
    for j = 1:N
        A(i,j) = x(i)^(N-j);
    end
end
B = y'; % вектор столбец правой части.
P = A\B; % считаем коэффициенты многочлена.
yy = polyval(P,xx); % вычисляем функцию в новых точках.
plot(x,y,'ob', x,y,'b--',xx,yy,'r') % вывод узлов интерполяции, исходной функции и графика полинома (интерполянты). 
%syms x
%ezplot(sin(3*x)+(cos(x))^2,[0 2])
axis tight % устанавливаем диапазоны координат по осям в соответствии с диапазонами изменения данных;
legend('Узлы интерполяции', 'Исходная функция','Интерполянта')
xlabel('x') % подписываем ось x.
ylabel('y') % подписываем ось y.
title('Полиномиальная интерполяция')
Добавлено через 2 минуты
Я тут новичок, поэтому не знаю как код правильно вставлять, чтобы удобнее было смотреть.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2015, 15:16
Ответы с готовыми решениями:

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

Вывести кривую на координатную плоскость
Пытаюсь разобраться с GrafABC, но не понимаю. Дана кривая в виде кубического уравнения: y=4*х^3 +...

Нарисовать координатную плоскость и треугольник на ней
Program tri_tochki; uses GraphABC; function postroenie(var x1,x2,y1,y2:real):real; begin...

Отобразить координатную плоскость и построить график функции
Вывести на экран график функции Отобразить координатную плоскость. Вывод графика производить...

4
46 / 46 / 10
Регистрация: 11.03.2014
Сообщений: 133
11.03.2015, 16:41 2
Я, конечно, не модератор, но не стоит плодить темы. Вы уже задали этот вопрос тут:
Нахождение погрешности интерполируемой функции от исходной
Также стоит потратить немного времени и ознакомиться с этим:
СЕКРЕТНО! Прежде чем создавать новую тему

Узнаете как правильно оформлять код, и подчерпнете массу другой полезной информации.
0
23 / 23 / 2
Регистрация: 10.03.2015
Сообщений: 155
11.03.2015, 16:49  [ТС] 3
Цитата Сообщение от trarbish Посмотреть сообщение
Узнаете как правильно оформлять код, и подчерпнете массу другой полезной информации.
Спасибо. Действительно полезно.

Добавлено через 1 минуту
Цитата Сообщение от trarbish Посмотреть сообщение
Я, конечно, не модератор, но не стоит плодить темы. Вы уже задали этот вопрос тут:
Я думал, что каждой теме свой вопрос, и поэтому создал новую тему с новым вопросом.
0
46 / 46 / 10
Регистрация: 11.03.2014
Сообщений: 133
11.03.2015, 16:56 4
Лучший ответ Сообщение было отмечено Sergey777 как решение

Решение

Цитата Сообщение от Sergey777 Посмотреть сообщение
Я думал, что каждой теме свой вопрос, и поэтому создал новую тему с новым вопросом.
Тогда зачем нужно было задавать вопрос в той теме?
Касательно решения:
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
clc; close all; clear all;
syms xxx
 
a=0; % задаем начало интервала.
b=2; % задаем конец интервала.
h=0.5; % задаем шаг в интервале.
x = (a:h:b); % задаем значение x
y = sin(3*x)+cos(x).^2; % Значения у
N = length(x); % определяем количество точек.
xx = linspace(min(x),max(x),100); % формируем линейный массив размера 1x100 от минимального к максимальному.
% Создаем матрицу степеней х
for i = 1:N 
for j = 1:N
A(i,j) = x(i)^(N-j);
end
end
B = y'; % вектор столбец правой части.
P = A\B; % считаем коэффициенты многочлена.
yy = polyval(P,xx); % вычисляем функцию в новых точках.
plot(x,y,'ob',xx,yy,'r') % вывод узлов интерполяции, исходной функции и графика полинома (интерполянты). 
axis tight % устанавливаем диапазоны координат по осям в соответствии с диапазонами изменения данных;
legend('Узлы интерполяции', 'Интерполянта')
xlabel('x') % подписываем ось x.
ylabel('y') % подписываем ось y.
title('Полиномиальная интерполяция')
hold on
ezplot(sin(3*xxx)+(cos(xxx))^2,[a b]);
1
23 / 23 / 2
Регистрация: 10.03.2015
Сообщений: 155
11.03.2015, 17:35  [ТС] 5
Цитата Сообщение от trarbish Посмотреть сообщение
Касательно решения:
Большое спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2015, 17:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Несколько графиков функций в одном Tchart
Здравствуйте! необходимо написать программу, которая на одном графике рисует несколько функций....

Прямая l разбивает координатную плоскость на две полуплоскости. Выяснить, верно ли, что точки (a,b) и (c,d) принадлежат разным полуплоскостям.
Даны действительные числа a, b, c, d, s, t, u (s и t одновременно не равны нулю). Известно, что...

Объединить несколько функций в одну
Подскажите, пожалуйста! Фрагменты 1 и 2 нужно забрать в одну функцию, фр. 3 и 4 тоже в одну функцию...

ATtiny2313. Несколько функций на одну кнопку
Всем привет. Люди, нужна помощь. У меня есть програмка, которая после каждого нажатия кнопки,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.