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

Использование quad2d

12.07.2013, 03:05. Показов 4081. Ответов 51
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет ВСЕМ!

q = quad2d(fun,a,b,c,d,param1,val1,param2,val2,...) - вот как пишет справка

что значит val1,val2,... и какие они значения принимают

я записываю так:

Matlab M
1
X = quad2d (@myXcul,-2,2,0,2*pi, par1,par2,par3);
где функция @myXcul зависит от этих 3 параметров

Выдаёт ошибку

??? Error using ==> quad2d at 134
Parameters must be a character.

Что делать? Или подскажыте другой способ вычесления функции...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2013, 03:05
Ответы с готовыми решениями:

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между...

Создание и использование своих @NamedQueries. Использование EntityManager
Добрый день! Создавал классы сущностей и сессий через NetBeans генераторы кода. Использование...

Задачи на использование событий. Осуществить использование событий в программе с применением синтаксиса обработчика, рекомендованного для среды NET Fr
NET Framework. Программа для поиска простых чисел среди чисел Фибоначчи. При нахождении...

Использование функций, использование break
Здравствуйте. Не знал как назвать тему, боялся что, если назову "КАК ЭТО РАБОТАЕТ?" то её удалят....

51
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 71
16.07.2013, 20:22  [ТС] 41
Author24 — интернет-сервис помощи студентам
да но как это реализировать в матлабе?
0
318 / 257 / 30
Регистрация: 30.03.2013
Сообщений: 755
16.07.2013, 20:59 42
Максимальное освещение в экваториальной точке шара, зависит от видимой в этой точке площади цилиндра.

То есть нужно считать видимую площадь цилиндра от экватора шара к его полюсу. До тех пор пока видимая площадь цилиндра ( боковая ) не станет равна нулю.

http://math.stackexchange.com/... nt-of-view

или тут

http://www.physicsforums.com/s... hp?t=80136
0
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
16.07.2013, 21:26 43
А где в той функции уравнение самого линейного излучателя?

Не по теме:

CSergio, на крайний случай есть раздел https://www.cyberforum.ru/order-program/

0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 71
16.07.2013, 21:59  [ТС] 44
Цитата Сообщение от Зосима Посмотреть сообщение
А где в той функции уравнение самого линейного излучателя?

Не по теме:

CSergio, на крайний случай есть раздел https://www.cyberforum.ru/order-program/

Matlab M
1
2
3
xi=x1+m*t;
yi=y1+n*t;
zi=z1+p*t;
Добавлено через 27 минут
блин не получаетса. ужас какойто.
0
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
17.07.2013, 19:31 45
CSergio, кажется я начинаю постигать суть...
Попробую вечером что-то набросать.
0
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
17.07.2013, 23:11 46
Хм... пока пива с чипсами не выпил - ничего не получалось
Функция (считает вектор излучения Е)
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
function E = myE(x,y,z,xi,yi,zi)
% x,y,z - координаты точки сферы, для которой считаем вектор Е
% E = [Ex, Ey, Ez] - вектор излучения
 
[Nx,Ny,Nz] = surfnorm(xi,yi,zi); % векторы нормали
Ex = 0; Ey = 0; Ez =0; 
for i = 1:size(xi,1)
    for j = 1:size(xi,2)
        Bxy = [x-xi(i,j), y-yi(i,j)];
        Bxz = [x-xi(i,j), z-zi(i,j)]; % вектор от точки поверхности к искомой точке
        Nxy = [Nx(i,j), Ny(i,j)];
        Nxz = [Nx(i,j), Nz(i,j)];
        % угол между нормалью излучателяи вектором к точке
        fi_xoy = acos( sum(Bxy.*Nxy)/(norm(Bxy)*norm(Nxy)) ); % вплостоксти XOY
        fi_xoz = acos( sum(Bxz.*Nxz)/(norm(Bxz)*norm(Nxz)) ); % вплостоксти XOZ
        % суммируем проекции векторов на оси
        Dx = norm(Nxy)*cos(fi_xoy) * cos(atan2(Bxy(2),Bxy(1)));
        Dy = norm(Nxy)*cos(fi_xoy) * sin(atan2(Bxy(2),Bxy(1))); 
        Dz = norm(Nxz)*sin(fi_xoz) * sin(atan2(Bxz(2),Bxz(1)));
        Ex = Ex + Dx*((fi_xoy>=-pi/2)&(fi_xoy<=pi/2));  
        Ey = Ey + Dy*((fi_xoy>=0)&(fi_xoy<=pi));
        Ez = Ez + Dz*((fi_xoz>=0)&(fi_xoz<=pi)); 
    end
end
E = [Ex, Ey, Ez]/(size(xi,1)*size(xi,2)); % нормируем вектор
И программа расчета:
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
31
32
33
34
35
36
clear
clc
 
% сфера
R=1;
u1 = linspace(0,2*pi,50)';
v1 = linspace(0,2*pi,20);
X = R*sin(u1)*cos(v1);
Y = R*sin(u1)*sin(v1);
Z = R*cos(u1)*ones(size(v1));
hold on
surf(X,Y,Z,'Facealpha',0.0);
%shading interp
%випромінювач
u = linspace(-0.5,0.5,20)';
v = linspace(0,2*pi,20);
rr = 0.1;
xi = rr*ones(size(u))*cos(v);
yi = rr*ones(size(u))*sin(v);
zi = u*ones(size(v));
surf(xi,yi,zi)
grid on
axis equal
xlabel('ось  X'),ylabel('ось Y'),zlabel('ось Z')
% plot3(x11,y11,z11)
for i=1:size(X,1)
    for j=1:size(X,2)
        E = myE(X(i,j),Y(i,j),Z(i,j), xi,yi,zi);
        XX(i,j) = E(1);
        YY(i,j) = E(2);
        ZZ(i,j) = E(3);
    end
end
quiver3 (X,Y,Z,XX,YY,ZZ,3)
view(40,20)
% mesh(X1+XX1.*0.004-0.05,Y1+YY1.*0.004-5,Z1+ZZ1.*0.004)
Получается вот такая красота:
Использование quad2d
1
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 71
18.07.2013, 21:59  [ТС] 47
Ты ГЕНИЙ!!!

Добавлено через 2 минуты
Я уже 2 ночи не спал и никак. Блин как у тебя это получаетса...
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 71
18.07.2013, 22:05  [ТС] 48
что-то у меня не то.

Почему у меня получаетса другой рисунок???

Максимум излучения получаетса но полюсах. Что-то в настройках???
Миниатюры
Использование quad2d  
0
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
18.07.2013, 22:08 49
я просто нарисовал и все обозначил

Добавлено через 1 минуту
в строках 20-22 исправь
Matlab M
1
2
3
Ex = Ex + Dx*((fi_xoy>=-pi/2)&(fi_xoy<=pi/2));  
Ey = Ey + Dy*((fi_xoy>=-pi/2)&(fi_xoy<=pi/2));
Ez = Ez + Dz*((fi_xoz>=-pi/2)&(fi_xoz<=pi/2));
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 71
18.07.2013, 22:17  [ТС] 50
С меня пиво
0
6 / 6 / 0
Регистрация: 14.06.2013
Сообщений: 100
01.10.2013, 14:57 51
Ребят, не подскажите, трехмерный аналог quad2d существует ли в более поздних версиях matlab? А то что то в 2010b ничего подобного я не нашел. triplequad меня не устраивает. Уж больно он медленный и особые точки не обходит (это мое умозаключение в результате сравнения quad2d и dblquad)

Добавлено через 8 часов 4 минуты
Нашел какой то integral3. вот только начиная с какой версии matlab он есть
0
6 / 6 / 0
Регистрация: 14.06.2013
Сообщений: 100
04.10.2013, 15:17 52
В связи с доступность matlab2013a скачал его, оказалось что integral3 там есть и прекрасно работает, всем удачи)
0
04.10.2013, 15:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2013, 15:17
Помогаю со студенческими работами здесь

Использование строк.Использование структур
Задачка: Дана строка,состоящая из групп нулей и едениц. Найти и вывести на экран группы с нечетным...

Использование конструкторов. Перегрузка конструкторов. Использование свойств
Помогите реализовать свойства, позволяющие осуществить проверку на допустимые значения для данных...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг...

C++ использование {}
в c++ есть функции циклы и они выполняют команды стоящие в последующем {} Как реализовать подобную...


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

Или воспользуйтесь поиском по форуму:
52
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru