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

Ошибка при построении графика "Conversion to double from sym is not possible"

25.11.2012, 21:32. Показов 7338. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Посмотрите товарищи скрипт:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
syms x y ur expr massage %инициализация символьных переменных.
ur = '6*exp(x)*(sin(x)+cos(x))-diff(diff(y))'; %Задание.
expr=['Dy=',char(ur)]; %Формирование диф. Уравнения.
y=dsolve(expr,'x'); %Решение диф. Уравнения.
y=y(1,1);
massage = ['y=',char(y)];
fprintf('y=');
pretty(simplify(y)); %Вывод решения.
syms x_new y_new
x_new = -2:0.01:2; %Формируем сетку значений аргумента.
y=subs(y,'x',x_new); %Подставляем значения.
for cycle=-5:1:5; %Варьируем значение производной константы.
val = cycle;
y_new = real(subs(y,'C23',val));
grid on; hold on; 
plot(x_new, y_new); %Прорисовка интегральной кривой
end;
xlabel('x'); %Подписываем оси
ylabel('y');
title(char(['Integral curves of Equation: ',char(expr)]));
%Титульная надпись графика.
legend(char(massage)); %Легенда графика.
После запуска выскакивает сообщение:
Error using plot
Conversion to double from sym is not possible.

Кто может подсказать, в чем дело.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2012, 21:32
Ответы с готовыми решениями:

Ошибка при построении графика "no known conversion from 'double [10]' to 'const QVector<double>'"
Приветствую! Имеется код: #define Q 10 double x; double xf, yf, yf_err; double W = { 1., 2., 3., 4., 5., 6., 7.,...

Ошибка при построении графика
Итак, что я делал Дано диф.уравнение 4-го порядка решили в общем виде, решили с условиями. В итоге получили некоторое решение,...

Ошибка при построении графика y=x^3
Здравствуйте всем, мне нужно чтобы при нажатии на кнопку строился график y=x^3. Я вроде бы сделал, но не могу понять график расположен...

8
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
26.11.2012, 09:13
Дружочек! зачем же ты x_new и y_new определил как символьные? Поэтому plot тебя не понимает!
Убери строчечку:
syms x_new, y_new

*впердь, когда выкладываешь код, используй теги [matlab][/matlab]
1
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 11
26.11.2012, 11:19  [ТС]
Спасибо

Добавлено через 3 минуты
Убрал. Но все равно также ругается. Syms - это обращение к командам Maple?

Добавлено через 1 минуту
Может не нужно было убирать? В задаче аналитически нужно решить ДУ.
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
26.11.2012, 13:04
Цитата Сообщение от camakob Посмотреть сообщение
Syms - это обращение к командам Maple
Нет, syms это тип данных (символьный). Все что делается до 9-й строки - это аналитическое символьное вычисление и мы его не трогаем.
Я предлагаю убрать строку 9: syms x_new y_new
Тогда x_new будет типа double и y_new, по идее, также.
Единственное, моя версия MATLAB (7.0.1) не может переварить данный код
0
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 11
26.11.2012, 13:14  [ТС]
Убрал как Вы написали. Все равно сообщение:

Error using plot
Conversion to double from sym is not possible.

Error in z_5 (line 16)
plot(x_new, y_new); %Прорисовка интегральной кривой
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
26.11.2012, 15:31
У меня ругается на dsolve
Какая у тебя версия матлаба?
И еще напиши результат, который в y.
0
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 11
26.11.2012, 18:28  [ТС]
Matlab R2012a.
y=
6 exp(x) (cos(x) + 3 sin(x))
---------------------------- + C2 exp(-x)
5
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
27.11.2012, 11:08
Кажется разобрался
Я взял твое выражение для у.
Убрал syms x_new y_new
в программе заменил
y_new = real(subs...
на
y_new = double(subs...
Константу C23 обозвал С2, как в y.
Получилась программа:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clear;
clc;
 
syms x y C2
 
y = 6*exp(x)*(cos(x)+3*sin(x))/5 + C2*exp(-x)
 
x_new = -2:0.01:2; %Формируем сетку значений аргумента.
y=subs(y,'x',x_new); %Подставляем значения.
for cycle=-5:1:5; %Варьируем значение производной константы.
    y_new = double(subs(y,'C2',cycle));
    grid on; hold on;
    plot(x_new, y_new); %Прорисовка интегральной кривой
end;
xlabel('x'); %Подписываем оси
ylabel('y');
title(char(['Integral curves of Equation: ',char(expr)]));
%Титульная надпись графика.
legend(char(massage)); %Легенда графика.
Запустил, подождал и получил красивейший график!



Только подписи не поставились, т.к. нет первой части программы.
*Правда легенду ты не совсем правильно использовал. легенда - это подпись к каждой кривой на рисунке и по логике в ней должны быть значения константы C2:
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;
clc;
 
syms x y C2
 
y = 6*exp(x)*(cos(x)+3*sin(x))/5 + C2*exp(-x)
 
x_new = -2:0.01:2; %Формируем сетку значений аргумента.
y=subs(y,'x',x_new); %Подставляем значения.
 
val = -5:1:5; % значение производной константы.
y_new = [];
for i = 1:length(val); %Варьируем значение производной константы.
    y_new(:,i) = double(subs(y,'C2',val(i)));
    str{i} = ['C2=',num2str(val(i))]; % записываем легенду текущей кривой
end;
plot(x_new, y_new); %Прорисовка интегральной кривой
grid on; hold on;
xlabel('x'); %Подписываем оси
ylabel('y');
expr = 'Dy=6*exp(x)*(sin(x)+cos(x))-diff(diff(y))';
title(char(['Integral curves of Equation: ',char(expr)]));
%Титульная надпись графика.
legend(str); %Легенда графика.
Тогда и график получается веселее

0
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 11
27.11.2012, 13:35  [ТС]
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.11.2012, 13:35
Помогаю со студенческими работами здесь

Ошибка при построении графика в 3D
пишет, что функция не определена файл с программой

Ошибка при построении графика
Народ подскажите ,пожалуйста,почему выскакивает ошибка(( Invalid Floating Operation Заранее благодарю Вас! это программа построения...

Ошибка при построении графика
Не понимаю почему график красный, я убрал модуль x и все заработало, но мне нужно сделать с модулем

Ошибка при построении графика.
L= Mp= V= k= M=(L.*Mp.*V.*k) figure(1) plot(V,k) L =

Ошибка при построении графика
Здравствуйте, уважаемые форумчане! Помогите разобраться, где в коде ошибка. МАТЛАБ не может построить необходимый график. B=sqrt(2); ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru