используя Matlab fsolve (), чтобы найти нулевые точки функции 2 с 2 переменными - PullRequest
0 голосов
/ 14 ноября 2018

Я использую Matlab, чтобы попытаться решить 2 уравнения с 2 переменными.

Я определяю 2 функции: f2 (n_1, n_2), f3 (n_1, n_2) , которые зависят друг от другана f1 (n_1, n_2) , затем я определил векторизованную функцию G (n_1, n_2) , которая содержит их обоих.

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

вышеупомянутое отображается в коде ниже:

код:

clear, close all; clc
%Const
N0=25;
G1=1;G2=1;
a1=6;a2=3;
k1=1;k2=4;
%main
syms n_1 n_2
X_0=[-5;5];
f1=N0-a1.*n_1-a2.*n_2;
f2=f1.*G1.*n_1-k1.*n_1;
f3=f1.*G2.*n_2-k2.*n_2;
G=@(n_1,n_2) [f2;f3];
s = fsolve(G,X_0);

ошибка:

Error using fsolve (line 269)
FSOLVE requires all values returned by functions to be of data type     double.

Error in Ex1_Q3_DavidS (line 37)
s = fsolve(G,X_0);

спасибо

1 Ответ

0 голосов
/ 14 ноября 2018

fsolve - это функция, которая использует численные методы для поиска корня числовой функции.

Числовая функция, например, f=@(x)x^2=2;.В MATLAB вы можете оценить f() по любому номеру, и он вернет число, но нет математической абстракции более высокого порядка.Это, однако, самый быстрый способ сделать математику в компьютере, поскольку это не высший интеллект, а прославленный калькулятор.

Однако некоторые люди хотят дать более высокий интеллект компьютерам и закодировать очень сложные символические наборы инструментов, которые с помощью наборов правил пытаются научить компьютеры мыслить полуподобными людьми и решать символические уравнения, как вы это делаете на бумаге.Для решения этих уравнений в MATLAB введена функция solve.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...