Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/26: Рейтинг темы: голосов - 26, средняя оценка - 4.85
52 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46

Квадратное уравнение

20.10.2013, 13:18. Показов 5551. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
function [x1,x2]=korni(a,b,c)
 
if (a==0)&&(b==0)
    fprintf('eto ne yravnenie!')
    x1 = [];
    x2 = [];
else
if (a==0)&&(b~=0)
    fprintf('yravnenie ne kvadratnoe')
    x1 = -c/b;
    x2 = x1;
else
 
d = (b^2 - 4*a*c);
if (d<0)
    fprintf('discriminant otricatelnui, korni kompleksnue');
end
d=sqrt(d);
x1 = (-b + d)/2*a;
x2 = (-b - d)/2*a;
end
end
x=[(x1+x2)/2-10:0.1:(x1+x2)/2+10];
y=a*x.^2+b*x+c;
plot(x,y)
end
Выдает:
function [x1,x2]=korni(a,b,c)
|
Error: Function definitions are not permitted in this context.
подскажите, как исправить
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2013, 13:18
Ответы с готовыми решениями:

Квадратное уравнение
Добрый день помогите с программой для решения квадратного уравнения. Допустим у нас есть массив из 2 переменных а и в. Для каждого значения...

Квадратное уравнение с параметрами
Как в среде matlab будет выглядеть цикл решения уравнения ...

Квадратное уравнения на M-файл
Как можно вызывать M-файл на командном окне function =korni(a,b,c) a=input('Введите a= '); b=input('Введите b= '); ...

9
 Аватар для incognito
153 / 145 / 2
Регистрация: 08.04.2010
Сообщений: 1,010
20.10.2013, 13:25
olya-neznakomce, рекомендую в первом случае использовать функцию error('text') вместо fprintf.
Она останавливает выполнение команд.
0
52 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46
20.10.2013, 13:28  [ТС]
ничего не изменилось

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function[x1,x2] = root2 (a,b,c)
if (nargin<3)
error('задайте 3 коэффициента')
end
[Na, Ma]=size(a);
[Nb,Mb]=size(b);
[Nc,Mc]=size(c);
if (Na~=1)|(Ma~=1)|(Nb~=1)|(Mb~=1)|(Nc~=1)|(Mc~=1)
error(' аргументы должны быть числами')
end
D=b^2-4*a*c;
if D<0
error('комплексные корни')
end
x1=(-b+sqrt(D))/2;
x2(-b-sqrt(D))/2;
if(nargout ~=2
warning('это только один корень')
disp('для получения 2 корней используйте')
disp('[x1,x2]=root2(a,b,c)')
end
и здесь такая же ошибка
0
 Аватар для incognito
153 / 145 / 2
Регистрация: 08.04.2010
Сообщений: 1,010
20.10.2013, 13:30
olya-neznakomce, Вы вызываете функцию в тексте программы или в командном окне?
0
52 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46
20.10.2013, 13:32  [ТС]
а где надо?
0
 Аватар для incognito
153 / 145 / 2
Регистрация: 08.04.2010
Сообщений: 1,010
20.10.2013, 13:35
где надо - Вам решать

если я вызываю в тексте м-файла, то пишу в таком виде:
Matlab M
1
2
 
function [x1,x2]=korni(a,b,c)
где a,b,c - расчитаны ранее.

если в командном окне, то пишу:
Matlab M
1
[x1,x2]=korni(a,b,c)
где a,b,c - расчитаны ранее.

как-то так...
0
52 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46
20.10.2013, 14:08  [ТС]
Cпасибо) а как и где нужно задать a,b,c?
0
 Аватар для incognito
153 / 145 / 2
Регистрация: 08.04.2010
Сообщений: 1,010
20.10.2013, 14:13
Если Вы вызываете в тексте м-файла:
строками ранее у Вас должны содержаться выражения для расчета a,b,c.

Если Вы вызываете в командном окне:
необходимо до вызова функции задать a,b,c.

Как-то так...
0
 Аватар для lomt
454 / 280 / 13
Регистрация: 13.11.2012
Сообщений: 588
Записей в блоге: 1
20.10.2013, 14:30
Господа, вы немного путаетесь в оприеделениях действий
Если нам надо вызывать функцию, то разницы нет, и в командном окне, и в скрипте, и в функции вызов
производится определением выходным и входныхз аругментов, то есть что-то типа [x1,x2]=korni(a,b,c)
если же вы хотите определить функцию, то в любом случаи пользуются двумя методами: определениям с end:
Matlab M
1
2
3
function [x1,x2]=korni(a,b,c)
...
end
или без него:
Matlab M
1
function [x1,x2]=korni(a,b,c)
НО тогда во всём вашем скрипте должен сохраняться один и тот же вид определения!!!!
В этом случаи определяем функцию так:
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
function[x1,x2] = root2 (a,b,c)
 
if (nargin<3)
error('задайте 3 коэффициента')
end
[Na, Ma]=size(a);
[Nb,Mb]=size(b);
[Nc,Mc]=size(c);
if (Na~=1)|(Ma~=1)|(Nb~=1)|(Mb~=1)|(Nc~=1)|(Mc~=1)
error(' аргументы должны быть числами')
end
D=b^2-4*a*c;
if D<0
error('комплексные корни')
end
x1=(-b+sqrt(D))/2;
x2=(-b-sqrt(D))/2;
if  nargout ~= 2
warning('это только один корень')
disp('для получения 2 корней используйте')
disp('[x1,x2]=root2(a,b,c)')
end
end
Потом вызываем её из командного окна,к примеру для уравнения x2-4=0:
Matlab M
1
2
3
4
5
>> [x1,x2] = root2(1,0,-4)
x1 =
     2
x2 =
    -2
1
52 / 1 / 0
Регистрация: 17.10.2011
Сообщений: 46
20.10.2013, 14:47  [ТС]
спасибо всем большое))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2013, 14:47
Помогаю со студенческими работами здесь

Создать производные классы линейное уравнение и квадратное уравнение, в которых данная функция переопределена
Создать абстрактный базовый класс уравнение с виртуальной функцией - корни уравнения. Создать производные классы линейное уравнение и...

Квадратное уравнение
Привет всем, застрял, помогите :) Ввести три вещественных числа a, b, c. Решить квадратное уравнение ax2 +bx+c=0. Вывести информацию...

Квадратное уравнение
Класс « квадратное уравнение » : - Квадратное уравнение задается тремя числами ( a , b , c ) , которые описывают уравнения ax^2 + bx + c...

Квадратное уравнение
Знающие люди, составьте пожалуйста программу:

Квадратное уравнение
Недавно начал изучать язык и по мере прочтения книги решил порешать задачи. Сначала все было хорошо, но когда дошел до квадратного...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru