Как запустить функцию matlab?
В командной строке (command window) создаёшь переменную x и массив params размером 1х2. Далее в командной строке вызываешь функцию mu=bellmf(x, params).
Пример что должно получиться:
>> x = 1; >> params = [1, 0]; >> mu=bellmf(x, params) mu = 0.5000
А вообще советую посмотреть examples в matlab help.
Отслеживать
ответ дан 29 мая 2017 в 10:46
71 4 4 бронзовых знака
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8412
Протабулировать функцию на отрезке [a, b] с шагом h с точностью ε, основываясь на ряде Тейлора

Доброго времени, прошу помощи. Мне необходимо протабулировать интегральный синус с помощью ряда Тейлора, где значения
a=0, b=5, h=0.5, ε=
Мне как бы всё понятно, касательно расчётов «на бумаге», но вот не могу правильно написать функцию в Матлабе (пока не разобрался). Подскажите, что я пишу не так в сценарии m-файла
1 2 3 4 5 6 7 8 9 10 11 12
function si=si(x) var x:real; i=0;s=0;f=x; g=5; s=0; eps=0.000001; begin while abs(f)>=eps s=s+f; f=-f*x*x*(2*i+1)/((2*i+2)*(2*i+3)*(2*i+3)); inc(i); end si=s; end
Добавлено через 1 час 38 минут
Мои танцы с бубнами не дали многих результатов, но получилось вот так. В результате мне выдает только 1 ответ.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
function si=myfun(a,b,h,eps) eps=0.00001; a=0; b=5; i=1; h=0.5; N=10; s=0; I=1; for x=a:h:b while abs(I)>eps if i>N break end I=(((-1)^i)*(x^(2*i+1)))/((2*i+1)*(factorial(2*i+1))) s=s+I i=i+1 end end end
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Протабулировать функцию на отрезке с шагом
Протабулировать функцию y=\sin ^+\ln x на отрезке с шагом h=0.1 и упорядочить значения.

Протабулировать функцию y=x2-2x+1 на отрезке от -1 до 3 с шагом 0.25
2)Протабулировать функцию y = x2-2x+1 на отрезке от -1 до 3 с шагом 0.25. Вывести на экран все пары.
Протабулировать функцию y на отрезке [а, b] с шагом h
Протабулировать 1. функцию y на отрезке с шагом h. 2. сумму S функционального ряда разложения.

Протабулировать функцию на отрезке ab с шагом h
протабулировать функцию на отрезке ab с шагом h. y=ln(ln(x-1)+ln(\sqrt)) Добавлено через.
Регистрация: 20.06.2013
Сообщений: 24
Смотрите, если подставить x=a, где a=0, то вы получите I=0, естественно точность достигнута и вы получаете 1 решение.
Если изменить, a допустим на 1, то будет их несколько. Набросал на скорую руку, взгляните, может поможет.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
clc clear all close all eps=1e-6; a=1; b=5; i=0; h=0.5; si(1)=0; I(1)=1; x=a:h/100:b; for i=1:length(x) if I(i)>eps I(i+1)=abs((((-1)^i)*(x(i)^(2*i+1)))/((2*i+1)*(factorial(2*i+1)))); si(i+1)=si(i)+I(i+1); k=i+1; %Количество шагов else break end end I si k
Документация
И скрипты и функции позволяют вам повторно использовать последовательности команд путем хранения их в программных файлах. Скрипты являются самым простым типом программы, поскольку они хранят команды точно так же, как вы ввели бы их в командной строке. Функции обеспечивают больше гибкости, в основном, потому что можно передать входные значения и возвратить выходные значения. Например, эта функция с именем fact вычисляет факториал номера ( n ) и возвращает результат ( f ).
function f = fact(n) f = prod(1:n); end
Этот тип функции должен быть задан в файле, не в командной строке. Часто, вы храните функцию в ее собственном файле. В этом случае лучшая практика должна использовать то же имя для функции и файла (в этом примере, fact.m ), начиная с MATLAB ® сопоставляет программу с именем файла. Сохраните файл или в текущей папке или в папке на пути поиска файлов MATLAB.
Можно вызвать функцию из командной строки, с помощью тех же синтаксических правил, которые применяются к функциям, установленным с MATLAB. Для примера вычислите факториал 5.
x = 5; y = fact(5)
y = 120
Начиная в R2016b, другая опция для хранения функций должна включать их в конце файла скрипта. Например, создайте файл с именем mystats.m с несколькими командами и двумя функциями, fact и perm . Скрипт вычисляет сочетание (3,2).
x = 3; y = 2; z = perm(x,y) function p = perm(n,r) p = fact(n)/fact(n-r); end function f = fact(n) f = prod(1:n); end
Вызовите скрипт из командной строки.
mystats
z = 6
Синтаксис для функционального определения
Первая линия каждой функции является оператором определения, который включает следующие элементы.
function ключевое слово (требуется)
Используйте символы нижнего регистра для ключевого слова.
(Дополнительные) выходные аргументы
Если ваша функция возвращает один выходной параметр, можно задать выходное имя после function ключевое слово.
function myOutput = myFunction(x)
Если ваша функция возвращает больше, чем один выходной параметр, заключите выходные имена в квадратные скобки.
function [one,two,three] = myFunction(x)
Если нет никакого выхода, можно не использовать его.
function myFunction(x)
Или можно использовать скобки пустого квадрата.
function [] = myFunction(x)
Имя функции (требуется)
Допустимые имена функций следуют тем же правилам как имена переменных. Они должны начаться с буквы и могут содержать буквы, цифры или символы нижнего подчеркивания.
Примечание
Чтобы избежать беспорядка, используйте то же имя и для файла функции и для первой функции в файле. MATLAB сопоставляет вашу программу с именем файла , не имя функции. Файлы скрипта не могут иметь того же имени как функция в файле.
(Дополнительные) входные параметры
Если ваша функция принимает какие-либо входные параметры, заключите их имена в круглые скобки после имени функции. Разделите входные параметры запятыми.
function y = myFunction(one,two,three)
Если нет никаких входных параметров, можно не использовать круглые скобки.
Совет
Когда вы задаете функцию с несколькими аргументами ввода или вывода, перечисляете любые обязательные аргументы сначала. Это упорядоченное расположение позволяет вам вызывать свою функцию, не задавая дополнительные аргументы.
Содержимое функций и файлов
Тело функции может включать допустимые выражения MATLAB, операторы управления, комментарии, пустые строки и вложенные функции. Любые переменные, которые вы создаете в функции, хранятся в рабочей области, характерной для этой функции, которая является отдельной от базового рабочего пространства.
Программные файлы могут содержать несколько функций. Если файл содержит только функциональные определения, первая функция является основной функцией и является функцией, которую MATLAB сопоставляет с именем файла. Функции, которые следуют за основной функцией или кодом скрипта, являются вызванными локальными функциями. Локальные функции только доступны в файле.
Операторы end
Функции заканчиваются любым end оператор, конец файла или линия определения для локальной функции, какой бы ни на первом месте. end оператор требуется если:
- Любая функция в файле содержит вложенную функцию (функция, полностью содержавшая в ее родительском элементе).
- Функция является локальной функцией в файле функции, и любая локальная функция в файле использует end ключевое слово.
- Функция является локальной функцией в файле скрипта.
Несмотря на то, что это является иногда дополнительным, использовать end для лучшей удобочитаемости кода.
Смотрите также
Похожие темы
- Файлы и Папки, что MATLAB доступы
- Базирование и функционирование рабочих областей
- Типы функций
- Добавление функций к скриптам
MATLAB — Функции
Функция — это группа операторов, которые вместе выполняют задачу. В MATLAB функции определены в отдельных файлах. Имя файла и функции должны совпадать.
Функции работают с переменными в их собственном рабочем пространстве, которое также называется локальным рабочим пространством , отдельно от рабочего пространства, к которому вы обращаетесь в командной строке MATLAB, которое называется базовым рабочим пространством .
Функции могут принимать более одного входного аргумента и могут возвращать более одного выходного аргумента.
Синтаксис оператора функции —
function [out1,out2, . outN] = myfun(in1,in2,in3, . inN)
пример
Следующая функция с именем mymax должна быть записана в файл с именем mymax.m . Он принимает пять чисел в качестве аргумента и возвращает максимум чисел.
Создайте файл функции с именем mymax.m и введите в него следующий код —
function max = mymax(n1, n2, n3, n4, n5) %This function calculates the maximum of the % five numbers given as input max = n1; if(n2 > max) max = n2; end if(n3 > max) max = n3; end if(n4 > max) max = n4; end if(n5 > max) max = n5; end
Первая строка функции начинается с ключевого слова function . Это дает название функции и порядок аргументов. В нашем примере функция mymax имеет пять входных аргументов и один выходной аргумент.
Строки комментариев, которые идут сразу после оператора функции, содержат текст справки. Эти строки печатаются при вводе —
help mymax
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
This function calculates the maximum of the five numbers given as input
Вы можете вызвать функцию как —
mymax(34, 78, 89, 23, 11)
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
ans = 89
Анонимные функции
Анонимная функция похожа на встроенную функцию в традиционных языках программирования, определенную в одной инструкции MATLAB. Он состоит из одного выражения MATLAB и любого количества входных и выходных аргументов.
Вы можете определить анонимную функцию прямо в командной строке MATLAB или в функции или скрипте.
Таким образом, вы можете создавать простые функции без необходимости создавать файл для них.
Синтаксис для создания анонимной функции из выражения:
f = @(arglist)expression
пример
В этом примере мы напишем анонимную функцию с именем power, которая будет принимать два числа в качестве входных данных и возвращать первое число, возведенное в степень второго числа.
Создайте файл сценария и введите в нем следующий код —
power = @(x, n) x.^n; result1 = power(7, 3) result2 = power(49, 0.5) result3 = power(10, -10) result4 = power (4.5, 1.5)
Когда вы запускаете файл, он отображает —
result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459
Основные и подфункции
Любая функция, кроме анонимной, должна быть определена в файле. Каждый файл функции содержит требуемую первичную функцию, которая появляется первой, и любое количество необязательных подфункций, которые идут после основной функции и используются ею.
Первичные функции могут быть вызваны из-за пределов файла, который их определяет, либо из командной строки, либо из других функций, но подфункции не могут быть вызваны из командной строки или других функций вне файла функции.
Подфункции видны только основной функции и другим подфункциям в файле функций, который их определяет.
пример
Напишем функцию с именем quadratic, которая будет вычислять корни квадратного уравнения. Функция будет принимать три входа: квадратичный коэффициент, линейный коэффициент и постоянный член. Это вернуло бы корни.
Файл функций quadratic.m будет содержать основную функцию quadratic и вспомогательный диск , который вычисляет дискриминант.
Создайте файл функции quadratic.m и введите в него следующий код —
function [x1,x2] = quadratic(a,b,c) %this function returns the roots of % a quadratic equation. % It takes 3 input arguments % which are the co-efficients of x2, x and the %constant term % It returns the roots d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % end of quadratic function dis = disc(a,b,c) %function calculates the discriminant dis = sqrt(b^2 - 4*a*c); end % end of sub-function
Вы можете вызвать вышеуказанную функцию из командной строки как —
quadratic(2,4,-4)
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
ans = 0.7321
Вложенные функции
Вы можете определить функции в теле другой функции. Это так называемые вложенные функции. Вложенная функция содержит любой или все компоненты любой другой функции.
Вложенные функции определены в области действия другой функции и имеют общий доступ к рабочему пространству содержащей функции.
Вложенная функция имеет следующий синтаксис:
function x = A(p1, p2) . B(p2) function y = B(p3) . end . end
пример
Перепишем функцию quadratic из предыдущего примера, однако на этот раз функция диска будет вложенной функцией.
Создайте файл функции quadratic2.m и введите в него следующий код —
function [x1,x2] = quadratic2(a,b,c) function disc % nested function d = sqrt(b^2 - 4*a*c); end % end of function disc disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % end of function quadratic2
Вы можете вызвать вышеуказанную функцию из командной строки как —
quadratic2(2,4,-4)
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
ans = 0.73205
Частные функции
Закрытая функция — это основная функция, которая видна только ограниченной группе других функций. Если вы не хотите показывать реализацию функции (й), вы можете создать их как частные функции.
Закрытые функции находятся в подпапках со специальным именем private .
Они видны только функциям в родительской папке.
пример
Перепишем квадратичную функцию. На этот раз, однако, функция диска, вычисляющая дискриминант, будет частной функцией.
Создайте подпапку с именем private в рабочем каталоге. Сохраните в нем следующий файл функции disc.m —
function dis = disc(a,b,c) %function calculates the discriminant dis = sqrt(b^2 - 4*a*c); end % end of sub-function
Создайте функцию quadratic3.m в вашем рабочем каталоге и введите в нее следующий код:
function [x1,x2] = quadratic3(a,b,c) %this function returns the roots of % a quadratic equation. % It takes 3 input arguments % which are the co-efficient of x2, x and the %constant term % It returns the roots d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % end of quadratic3
Вы можете вызвать вышеуказанную функцию из командной строки как —
quadratic3(2,4,-4)
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
ans = 0.73205
Глобальные переменные
Глобальные переменные могут совместно использоваться более чем одной функцией. Для этого вам нужно объявить переменную как глобальную во всех функциях.
Если вы хотите получить доступ к этой переменной из базовой рабочей области, объявите переменную в командной строке.
Глобальное объявление должно произойти до того, как переменная будет фактически использована в функции. Рекомендуется использовать заглавные буквы для имен глобальных переменных, чтобы отличать их от других переменных.
пример
Давайте создадим файл функции с именем medium.m и наберем в нем следующий код:
function avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; end
Создайте файл сценария и введите в нем следующий код —
global TOTAL; TOTAL = 10; n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42]; av = average(n)
Когда вы запустите файл, он покажет следующий результат —