Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
Научно-практический журнал "Exponenta Pro. Математика в приложениях". Вышел 1/2004 номер журнала
Для студентов
Электронные консультации. Вопросы по пакету Mathematica

 

Вопрос. Почему не работает графика, при использовании функций Plot, Plot3d выдаются сообщения об ошибке?

 

Ответ. Графика не работает в "пиратских" версиях пакета. Видимо, её труднее всего "взломать". Пользуйтесь лицензионным ПО! (Зайдите на страничку "Как купить научное ПО" с ценами на пакеты для образовательных организаций, студентов, аспирантов, научных работников).

 

Вопрос. Почему функция, находящаяся в стандартном пакете приложений программы Mathematica, не работает, даже после того, как загружен пакет?

 

Ответ. Скорее всего, Вы загрузили пакет после того, как использовали функцию. Например, Вы хотите воспользоваться функцией InequalitySolve, находящейся в пакете Algebra`InequalitySolve`. Если Вы сначала выполните команду

[Graphics:Images/index_gr_3.gif]

[Graphics:Images/index_gr_4.gif]

а потом загрузите пакет

[Graphics:Images/index_gr_5.gif]

[Graphics:Images/index_gr_6.gif]

то программа Mathematica выдаст сообщение о том, что символ InequalitySolve уже существует и функция все равно не будет работать.

  В такой ситуации нужно выполнить команду

[Graphics:Images/index_gr_8.gif]

  Потом загрузить пакет заново

[Graphics:Images/index_gr_9.gif]

  Тогда функция будет работать.

[Graphics:Images/index_gr_10.gif]

[Graphics:Images/index_gr_11.gif]

  Если Вы будете сначала загружать пакет, а потом использовать функцию, находящуюся в этом пакете, таких проблем у Вас не возникнет.

 

Вопрос. Почему при решении уравнения с помощью функции Solve эта функция выдает сообщение "General::ivar: 3 is not a valid variable." и не решает уравнение?

 

Ответ. Скорее всего, Вы ранее присвоили переменной, относительно которой решается уравнение, какое-то значение. Поэтому функция выдает ошибку. Например, если Вы выполните команду

[Graphics:Images/index_gr_13.gif]

[Graphics:Images/index_gr_14.gif]

а потом захотите решить уравнение

[Graphics:Images/index_gr_15.gif]

[Graphics:Images/index_gr_16.gif]

[Graphics:Images/index_gr_17.gif]

то программа Mathematica выдаст как раз это сообщение.

В такой ситуации нужно выполнить команду

[Graphics:Images/index_gr_18.gif]

Теперь все должно получиться

[Graphics:Images/index_gr_19.gif]

[Graphics:Images/index_gr_20.gif]

Если Вы будете очищать значения перменных, которые Вы больше не используете, таких проблем у Вас не возникнет.

 

Вопрос. Почему, если я хочу нарисовать несколько графиков одновременно, созданных функцией Table, функция Plot ругается и ничего не рисует?

 

Ответ. У функции Plot нестандартный порядок вычислений, то есть аргументы функции передаются без предварительного вычисления. Выражение, которое нужно нарисовать, вычисляется только после того, когда вместо x подставляются численные значения. Чтобы изменить порядок вычислений, можно воспользоваться функцией Evaluate. Сравните эти две команды:

[Graphics:Images/index_gr_26.gif]

[Graphics:Images/index_gr_27.gif]

[Graphics:Images/index_gr_28.gif]

[Graphics:Images/index_gr_29.gif]

[Graphics:Images/index_gr_30.gif]

[Graphics:Images/index_gr_31.gif]

[Graphics:Images/index_gr_32.gif]

[Graphics:Images/index_gr_33.gif]

[Graphics:Images/index_gr_34.gif]

[Graphics:Images/index_gr_35.gif]

 

Вопрос. Почему, если я хочу нарисовать график функции f(x_, n_) := Normal[Series[Cos[x], {x, 0, n}]] при x от -p до p, функция Plot ругается и ничего не рисует?

 

Ответ. У функции Plot нестандартный порядок вычислений, то есть аргументы функции передаются без предварительного вычисления. Выражение, которое нужно нарисовать, вычисляется только после того, когда вместо x подставляются численные значения.

Определим функцию f

[Graphics:Images/index_gr_44.gif]

Чтобы нарисовать эту функцию, нужно изменить порядок вычислений функции Plot, то есть нужно воспользоваться функцией Evaluate

[Graphics:Images/index_gr_47.gif]

[Graphics:Images/index_gr_48.gif]

[Graphics:Images/index_gr_49.gif]

 

Вопрос. Как реализовать нахождение наименьшего корня уравнения x^3-10*x+2=0, если известно, что этот наименьший корень находится на интервале (-4;-3) методами:
a) метод Ньютона (метод касательных)
б) модифицированный метод Ньютона
в) итерационный метод
г) комбинированный метод.

 

Ответ. Mathematica так сильна, что не требует итераций для решения полиномиальных уравнений.Ответ с 6 знаками дается (в нашем случае) после команды. NSolve[x^3-10*x+2==0,x]. В ответе получится три корня с точностью до 6 знаков. Оператор N[%,20] дает три корня с точностью до 20 знаков. И так далее.

 

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

 

Ответ. Если известно, какое число стоит в каждой клетке матрицы, то ввести саму матрицу довольно просто. Все сделают операторы.
N=M[f[i,j],{i,n},{j,n}];
Здесь m- порядок квадратной матрицы M. f[i,j]-значения функции f на элементах i,j (строках и столбцах матрицы). Очень эффектно применить оператор NatrixForm[M] (без знака препинания). На экране возникнет нужная матрица в красивом порядке.

 

Вопрос. Как задать тип переменной? Например, задано выражение :
In[1] = a2 := q2 + I p2
b := Re[a2]
Тогда получется ответ
Out[3] = -Im[p2] + Re[q2]
Нужно получить ответ - Out[3] = q2. Т.е. Mathematica "считает", что q2, p2 - комплексные числа.Как объяснить ей, что это не так? Как задать тип переменных q2, p2?

 

Ответ. Для того, чтобы быть уверенным, что число z является вещественным, потребуйте Im[z]=0.

 

Вопрос. У меня перестали запускаться какие-бы то ни был процедуры. Что я ни пишу в "In", в "Out" ничего не выходит, и новая клетка (Cell) не появляется. Что делать?

 

Ответ. Выберете меню Edit, далее Preferences, далее Evaluate Options. По-видимому, у Вас стоит Evaluator-->False. Поставьте Evaluator-->Local, и все заработает.

 

Вопрос. Я задал некоторый цикл For, скажем For[i=1,i<100,c*=i; Print[c],++i]; для вычисления факториала. А Mathematica ругается. Что делать?

 

Ответ. Это стандартная ошибка: перед ++i запятая не ставится; в процедуре For отделяются запятыми лишь начальное условие (i=1) и условие продолжения (i<100). ++i - это одна из команд "что делать", поэтому она и идет наравне со, скажем, командой Print, и отделяется точкой с запятой.

 

Вопрос. У меня есть двойной (тройной) массив. Как превратить его  в одинарный?

 

Ответ. командой Flatten. Она работает для массивов сколь угодно большого порядка вложенности.

 

Вопрос. Мне нужно перебирать большие простые числа. Каким алгоритмом посоветуете мне воспользоваться.

 

Ответ. Никаким. У Mathematica есть встроенная функция Prime[q], которая дает Вам q-е по счету простое число.

 

Вопрос. Я вычислял некоторые данные (скажем, значения функции f[x]) при x от 1 до 100 и пытался записывать их в файл с помощью For[i=1,i<101;Put[f[i],"file.txt"];++i]; но в файле оказалось записано лишь f[100]. Что делать?

 

Ответ. нужно вместо команды Put запускать команду PutAppend. Тогда все данные будут записываться, каждое с новой строки.

 

Вопрос. Теперь я хочу загрузить элементы из файла с помощью Get["file.txt", x]; а Mathematica выдает лишь последний элемент.

 

Ответ. Воспользуйтесь коммандой Read. Запуская Read["file.txt",number], Mathematica поочередно будет считывать из файла, трактуя записи в нем как числа. Можно считывать и в других форматах, например, Byte, Character, Real,и т.д.

 

Вопрос. Я задал матрицу 2x2 из элементов {{A,B},{C,D}}, а Mathematica ругается.

 

Ответ. Просто у Mathematica есть зарезервированные символы, которые не могут быть переменными. Так, D это дифференциал, а C - это константы, возникающие при решении дифференциального уравнения. Хоть это Вам может и не быть удобно, придется выбирать другие буквы. Из заглавных латинских запрещены C,D,E,I,N,O. Прописные латинские буквы не зарезервированы.

 

Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 11.05.04
Сайт начал работу 1.09.00

Программное обеспечение Microsoft, Macromedia, VERITAS, Novell, Borland, Symantec, Oracle и др.