2014 dxdy logo

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

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




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

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

мне дана функция: 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 
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 
Огромное спасибо, упустил момент(поповоду по элементного деления),пошел дальше изучать матлаб.

 
 
 
 Re: Matlab: построение графика с двумя переменными
Сообщение03.11.2011, 15:05 
Аватара пользователя
biv171 в сообщении #492406 писал(а):
s(i) = x(i)/(x(i)+y(i)) - x0/(x0+y0)


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

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group