С Новым годом! Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
1

Программу написанную на Maple перевести в Matlab

28.11.2014, 22:18. Показов 3313. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, нужна помощь в матлаб. Нужно переписать с мепл в матлаб, сама начала делать, нужно исправить и привести в рабочее состояние.
Задача такая, реализовать пользовательский интерфейс. Решается дифференциальное уравнение и система диф. уравнений с вводом данных и построением графика.
Прикрепляю решение в мепл и начатую программу в матлаб. Есть код из книги по реализации в матлаб, но у меня он не работает, прикрепляю всё что есть
Миниатюры
Программу написанную на Maple перевести в Matlab   Программу написанную на Maple перевести в Matlab   Программу написанную на Maple перевести в Matlab  

Программу написанную на Maple перевести в Matlab   Программу написанную на Maple перевести в Matlab   Программу написанную на Maple перевести в Matlab  

Вложения
Тип файла: rar maple.rar (7.9 Кб, 11 просмотров)
Тип файла: rar матлаб.rar (7.1 Кб, 10 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2014, 22:18
Ответы с готовыми решениями:

Перевести код из Maple в Matlab
Приветствую. Помогите, пожалуйста, справиться с проектом. Для его успешного выполнения необходимо...

Как перевести код из maple в matlab
как перевести код из maple в matlab срочно надо!!!

Перевести часть кода с Maple на Matlab
Всем привет,пытаюсь перевести код с Maple на Matlab , возникли некоторые вопросы:...

Перевести программу,написанную на паскале,на язык си++
uses crt; var a:array of integer; m,i,j,s,mx:integer; begin randomize; write('Количество...

20
318 / 257 / 30
Регистрация: 30.03.2013
Сообщений: 755
28.11.2014, 23:45 2
может это подойдет

http://www.maplesoft.com/suppo... ion/Matlab
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
29.11.2014, 15:30  [ТС] 3
Спасибо, но я и ранее пробовала, не помогло
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
01.12.2014, 12:50 4
у тебя ошибка
не
p = [-r/Tmax*(r-mu)*s];
а
p = [-r/Tmax, (r-mu), s];

соответственно и функцию Tpr исправил

но как я понял, там целая система! да еще и куча каких-то графиков.
Можешь пояснить словами, что нужно получить?
Вложения
Тип файла: rar Temp_GUI.rar (7.2 Кб, 12 просмотров)
1
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
02.12.2014, 16:05  [ТС] 5
Спасибо))) ещё я знаю, что у меня само диф. уравнение вроде как не верно написано, что скорее всего нужно отдельной функцией прописывать, но у меня не вышло, видимо я не так что-то делаю. Нужно получить то, что на картинке, только там мепл
Миниатюры
Программу написанную на Maple перевести в Matlab  
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
02.12.2014, 17:08  [ТС] 6
Ой, простите, сначала написала, потом программу проверила)) всё замечательно, огромное вам спасибо) вот только как сделать, чтобы было видно все кривые как на том скрине в мепле выше? входные параметры нужны как на скрине, сори, что раньше их не вбила
Миниатюры
Программу написанную на Maple перевести в Matlab  
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
02.12.2014, 20:06  [ТС] 7
остальные линии не показывает, не знаю, что делать(

Добавлено через 2 часа 12 минут
Я разобралась, спасибо)
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
02.12.2014, 20:55  [ТС] 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
23
24
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
s = str2double(get(handles.edit1,'String'));
r = str2double(get(handles.edit2,'String'));
Tmax = str2double(get(handles.edit3,'String'));
mu = str2double(get(handles.edit4,'String'));
 
p = [-r/Tmax, (r-mu), s];
 
T0 = max(roots(p));
Tpr = @(t,T) s+r*T*(1-T/Tmax)-mu*T;
 
[t,T]=ode23(Tpr,[0 50],0);
 
[t,T]=ode23(Tpr,[0 50],T0/4);plot(t,T)
[t,T]=ode23(Tpr,[0 50],T0/2);plot(t,T)
[t,T]=ode23(Tpr,[0 50],(T0+Tmax)/2);plot(t,T)
[t,T]=ode23(Tpr,[0 50],Tmax);plot(t,T)
axes (handles.axes1);
plot(t,T);
grid;
guidata(hObject,handles);
Миниатюры
Программу написанную на Maple перевести в Matlab  
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
02.12.2014, 20:58  [ТС] 9
файлы
Вложения
Тип файла: rar фп.rar (7.4 Кб, 5 просмотров)
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
03.12.2014, 01:32  [ТС] 10
Не могу понять в чём ошибка, почему не строит график, пожалуйста, помогите! Есть картинка графика, построенного в Maple
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
s = str2double(get(handles.edit1,'String'));
r = str2double(get(handles.edit2,'String'));
Tmax = str2double(get(handles.edit3,'String'));
mu = str2double(get(handles.edit4,'String'));
Bet = str2double(get(handles.edit5,'String'));
Alf = str2double(get(handles.edit8,'String'));
k1 = str2double(get(handles.edit6,'String'));
k2 = str2double(get(handles.edit9,'String'));
N = str2double(get(handles.edit7,'String'));
 
[t,y]=ode23('yrav',[0 365],[1000;0;0;0.001]); %выдаёт ошибку на эту строчку
 
axes (handles.axes1);
plot(t,y);
grid;
guidata(hObject,handles);
yrav.m
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
function Spr=yrav(t,y)
%y(1)=T, y(2)TL, y(3)=TA, y(4)=V
s = 70; r = 0.03; Tmax=1500; mu = 0.02; Bet=0.24;
Alf= 2.4; k1 = 0.000024; k2 = 0.003; N = 1400;
 
Spr = zeros(4,1);
Spr(1) = s-mu*y(1)+r*y(1).*(1-(y(1)+y(2)+y(3))/Tmax)-k1*y(4).*y(1);
Spr(2) = s-mu*y(1)+r*y(1).*(1-y(1)+y(2)+y(3))/Tmax)-k1*y(4).*y(1);
Spr(3) = k2*y(2)-Bet*y(3);
Spr(4) = N*Bet*y(3)-k1*y(4).*y(1)-Alf*y(4);
 
%Spr=[s-mu*y(1)+r*y(1).*(1-(y(1)+y(2)+y(3))/Tmax)-k1*y(4).*y(1); k1*y(4).*y(1)-mu*y(2)-k2*y(2); k2*y(2)-Bet*y(3); N*Bet*y(3)-k1*y(4).*y(1)-Alf*y(4)];
end
Миниатюры
Программу написанную на Maple перевести в Matlab  
Вложения
Тип файла: rar система.rar (9.6 Кб, 4 просмотров)
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
03.12.2014, 02:24  [ТС] 11
Прошу прощения, ошибка в коде из-за не внимательности
файл yrav.m 8 строка
Matlab M
1
k1*y(4).*y(1)-mu*y(2)-k2*y(2);
прикрепляю архив с исправленными файлами и столкнулась со следующим:

графики строятся, но не похожи на файлы Maple совсем, пожалуйста, подскажите, что не так, как их исправить;
Ещё одна проблема: не могу менять значения параметров в пользовательском интерфейсе, они не воспринимаются, все значения идут с файла yrav.m и не могут изменяться
Вложения
Тип файла: rar исправ.rar (9.6 Кб, 7 просмотров)
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
03.12.2014, 02:37  [ТС] 12
С графиком разобралась, всё правильно.
Но со второй проблемой нет. Подскажите, как исправить ввод параметров?
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
03.12.2014, 10:14 13
Цитата Сообщение от Marmeladka Посмотреть сообщение
s = 70; r = 0.03; Tmax=1500; mu = 0.02; Bet=0.24;
Alf= 2.4; k1 = 0.000024; k2 = 0.003; N = 1400;
все эти переменные нужно сделать глобальными (во всех подфункциях!)

Добавлено через 26 минут
Цитата Сообщение от Marmeladka Посмотреть сообщение
помогите вместо обычного графика вывести фазовым портретом, как на рисунке
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
s = str2double(get(handles.edit1,'String'));
r = str2double(get(handles.edit2,'String'));
Tmax = str2double(get(handles.edit3,'String'));
mu = str2double(get(handles.edit4,'String'));
 
p = [-r/Tmax, (r-mu), s];
 
T0 = max(roots(p));
Tpr = @(t,T) s+r*T*(1-T/Tmax)-mu*T;
 
hold on
[t,T]=ode23(Tpr,[0 50],0);plot(t,T)
[t,T]=ode23(Tpr,[0 50],T0/4);plot(t,T)
[t,T]=ode23(Tpr,[0 50],T0/2);plot(t,T)
[t,T]=ode23(Tpr,[0 50],(T0+Tmax)/2);plot(t,T)
[t,T]=ode23(Tpr,[0 50],Tmax);plot(t,T)
axes (handles.axes1);
plot(t,T);
Добавлено через 58 секунд
Давай все вопросы, касательно этой задачи обсуждать в этой теме
С чем там еще непонятки?
1
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
03.12.2014, 13:31  [ТС] 14
Matlab M
1
2
s = 70; r = 0.03; Tmax=1500; mu = 0.02; Bet=0.24;
Alf= 2.4; k1 = 0.000024; k2 = 0.003; N = 1400;
Вот тут не понятно как сделать переменные глобальными во всех подфункциях, подскажите, пожалуйста
с фазовым портретом всё ок, огромное спасибо!!!

Добавлено через 6 минут
в фазовом портрете, подскажите, пожалуйста как очистить график, перед построением нового, а то когда ввожу в пользовательском интерфейсе другие значения, новый график накладывается на старый
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
03.12.2014, 14:07 15
Лучший ответ Сообщение было отмечено Marmeladka как решение

Решение

Цитата Сообщение от Marmeladka Посмотреть сообщение
как очистить график, перед построением нового
вот так
Matlab M
15
16
17
18
19
20
21
22
axes (handles.axes1);
cla % очищаем график
hold on
[t,T]=ode23(Tpr,[0 50],0);plot(t,T)
[t,T]=ode23(Tpr,[0 50],T0/4);plot(t,T)
[t,T]=ode23(Tpr,[0 50],T0/2);plot(t,T)
[t,T]=ode23(Tpr,[0 50],(T0+Tmax)/2);plot(t,T)
[t,T]=ode23(Tpr,[0 50],Tmax);plot(t,T)
как сделать переменные глобальными во всех подфункциях
посмотри код gui.m, строки 173 и 197
обрати внимание, я ввел функцию yrav.m в тело gui.m (строки 196-207) также само можно сделать и с Tpr
Вложения
Тип файла: rar Temp_GUI_1.rar (9.4 Кб, 7 просмотров)
1
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
03.12.2014, 18:17  [ТС] 16
К сожалению, работает как и раньше,ввод значений параметров в пользовательском интерфейсе не воспринимаются
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
03.12.2014, 21:12 17
Лучший ответ Сообщение было отмечено Marmeladka как решение

Решение

аааа! у тебя в самой функции прописаны значения переменных, поэтому изменения данных не влияют!
удали строки 200, 201 и будет тебе счастье!
1
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
03.12.2014, 23:02  [ТС] 18
Отлично заработало, спасибо)))))
Скажите, пожалуйста, как эти две программы объединить в одну? чтобы при нажатии на первую кнопку выводился пользовательский интерфейс с фазовым портретом, а при нажатии на другую система диф.ур?
Миниатюры
Программу написанную на Maple перевести в Matlab  
Вложения
Тип файла: rar совместная.rar (23.2 Кб, 6 просмотров)
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 32
04.12.2014, 15:47  [ТС] 19
Пожалуйста, подскажите, какие команды прописать в кнопках
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
04.12.2014, 16:22 20
Лучший ответ Сообщение было отмечено Marmeladka как решение

Решение

Marmeladka, тут двумя строчкам не отделаешься чтобы вызвать другие формы из других каталогов, нужно изменить каталог, запустить форму, а когда форма закрывается - вернуть взад!
гляди: сборка.zip
1
04.12.2014, 16:22
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2014, 16:22
Помогаю со студенческими работами здесь

Нужно перевести небольшую программу, написанную на C++, на С (неповторяющиеся символы в строке)
Текст задачи - "Для заданной строки получить те символы, которые встречаются в ней по одному разу."...

Перевести программу из С++ в Maple
int _tmain(int argc, _TCHAR* argv) { int i; float x, x1, x2, y, u, mas; //scanf_s("%f", &x);...

Нужно перевести программу с языка matlab в C#
Здравствуйте! Есть такое задание, поможете? Нужно портировать программу с языка matlab в C#. ...

Кто может Помочь перевести программу с Pascal на Matlab??
:senor:


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru