2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Matlab: построение графика с двумя переменными
Сообщение14.10.2011, 13:07 


14/10/11
15
Добрый день.

Задачка такая:

мне дана функция: s0=x0/(x0+y0) -первый элемент
s(i) = x(i)/(x(i)+y(i)) - x0/(x0+y0) - последующие

, где i=1,..,6
x(i): x0,x1,x2 и т.д - переменные имеющие значения от 0 до 1000 каждая. (0,1000]
y(i): y0,y1,y2 и т.д - переменные имеющие значения от 0 до 1000 каждая. (0,1000]

вопросы:

1) при построении первого графика функции: s0=x0/(x0+y0) возникли следующие ошибки:

1. > [x,y]=meshgrid(0:.01:1000,0:.01:1000);
??? Maximum variable size allowed by the program is exceeded.

Видимо слишком много значений получается с шагом 0,01 -я правильно понимаю?тогда я делаю так:

2. >> [X,Y]=meshgrid(0:0.01:1,0:0.01:1);
>> Z=X/(X+Y);
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.805311e-022.
(Type "warning off MATLAB:nearlySingularMatrix" to suppress this warning.)

Данная ошибка говорит о проблемах изображения графика, можно ли как-нибудь данный график все- таки построить?

2)второй вопрос конечно может быть и не к вам, но все-таки: можно ли построить график общей функции:
s(i) = x(i)/(x(i)+y(i)) - x0/(x0+y0)

или это нереально( я понимаю что получается слишком много переменных).


Просьба помочь по возможности,заранее большое спасибо.

 Профиль  
                  
 
 Re: Matlab: построение графика с двумя переменными
Сообщение14.10.2011, 13:36 
Заслуженный участник


11/05/08
32166
biv171 в сообщении #492406 писал(а):
[x,y]=meshgrid(0:.01:1000,0:.01:1000);
??? Maximum variable size allowed by the program is exceeded.

А чего ж другого Вы ожидали?... Функция meshgrid возвращает пару двумерных массивов. В Вашем случае: сто тысяч на сто тысяч -- десять миллиардов элементов; это около ста шестидесяти гигабайт. Естественно, что Matlab обижается.

biv171 в сообщении #492406 писал(а):
>> Z=X/(X+Y);
Warning: Matrix is close to singular or badly scaled.

Тоже вполне очевидная реакция. Вы пытаетесь разделить матрицу на матрицу по правилам линейной алгебры, в то время как должно стоять поэлементное деление (т.е. с точкой).

 Профиль  
                  
 
 Re: Matlab: построение графика с двумя переменными
Сообщение14.10.2011, 14:11 


14/10/11
15
Огромное спасибо, упустил момент(поповоду по элементного деления),пошел дальше изучать матлаб.

 Профиль  
                  
 
 Re: Matlab: построение графика с двумя переменными
Сообщение03.11.2011, 15:05 
Экс-модератор
Аватара пользователя


23/12/05
12050
biv171 в сообщении #492406 писал(а):
s(i) = x(i)/(x(i)+y(i)) - x0/(x0+y0)


Не совсем понятно, что Вы имеете в виду - фактически, вы имеете функцию одной переменной $i$, вопрос только в том, что Вы хотите показать по осям

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group