Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2017, 18:36   #1
AriadnaNoldor
Новичок
Джуниор
 
Регистрация: 04.06.2017
Сообщений: 1
По умолчанию Scilab - График функции трех переменных

Добрый вечер. Нужно построить поверхность заданную функцией трех переменных в сферических координатах (строки 36-42). Подскажите, пожалуйста, как правильно реализовать перевод координат и отрисовку графика. Заранее благодарю.
Код:
xdel(winsid());
clear;
clc;
F=figure(1, 'menubar', 'none', 'toolbar', 'none', 'figure_name', 'Векторный потенциал витка с током','position', [150,170,230,250]);
col=[0.1,0.3,0.5];
set(F, 'backgroundcolor', col);
C1=uicontrol(F, 'style', 'text', 'position', [40, 200, 190, 20], 'string', 'радиус витка:', 'backgroundcolor', col);
E1=uicontrol(F, 'style', 'edit', 'position', [130,200,25,20],'string', '1');
C2=uicontrol(F, 'style', 'text', 'position', [40, 170, 190, 20], 'string', 'сила тока:', 'backgroundcolor', col);
E2=uicontrol(F, 'style', 'edit', 'position', [130,170,25,20],'string', '10');
B=uicontrol(F, 'style', 'pushbutton', 'position', [40,70,100,20], 'string', 'Построить', 'callback', 'potencial');
function potencial()
a=eval(get(E1,'string'));
r=0:0.05:2.5*a;
m=1;
I=eval(get(E2,'string'));
h=%pi/20;
tet=0:%pi/20:2*%pi;
D=0;
deff('B=b(fi)','B=cos(fi)/(a^2+(r(i))^2-2*a*r(i)*sin(tet(j))*cos(fi))^0.5');
for i=1:length(r)
    if a<>r(i) then
    for j=1:length(tet)
        for fi=h:h:2*%pi-h
            D=D+b(fi);
        end;
        for l=1:length(fi)
        C=h*((b(0)+b(2*%pi))/2)+h*D;
    A(i,j,l)=m*I*a*C;
end;
end;
elseif a==r(i) then  A(i,j,l)=0;
end;
end;
F2=figure(2,'menubar',  'none', 'toolbar', 'none','figure_name', 'график векторного потенциала');
deff("[x,y,z]=sph(tet,fi)",["x=r*cos(tet).*cos(fi)";"y=r*cos(tet).*sin(fi)"; "z=r*sin(tet)"]);
plot3d(sph(r,tet,A(:,:,:)));
xH_axes=gce();
h_axes=gca();
xH_axes.data.x=xx;
xH_axes.data.y=yy;
xH_axes.data.z=zz;
endfunction
M=uimenu(F, 'label', 'Справка');
M1=uimenu(M, 'label', 'Автор', 'callback', 'avtor');
M2=uimenu(M, 'label', 'О программе', 'callback', 'proga');
function avtor()
    messagebox('Автор: .........');
endfunction
function proga()
    messagebox('Программа изображает векторный потенциал витка с током. Радиус витка и сила тока задается пользователем');
endfunction
AriadnaNoldor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График функции двух переменных в Delphi Жулдызай Общие вопросы Delphi 2 10.04.2016 16:36
Осуществление сортировки значений трех переменных. Inesto Паскаль, Turbo Pascal, PascalABC.NET 1 22.05.2013 20:53
График функции двух переменных в Delphi Беллая Помощь студентам 16 29.09.2010 20:16
Равенство трех переменных k1r1ch Общие вопросы C/C++ 3 23.02.2010 20:54
График в scilab Craz Помощь студентам 2 25.10.2009 09:57