Изменение типа данных метки или текстового поля в конструкторе приложений MATLAB - PullRequest
0 голосов
/ 06 октября 2019

Я разрабатываю приложение, используя конструктор приложений MATLAB для решения нелинейных уравнений с использованием метода деления пополам.

Ниже приведена функция вызова кнопки для выполнения расчета и получения корня / решения. функции:

% Button pushed function: SolveButton
    function SolveButtonPushed(app, event)

     func = (app.func.Value);
     a = (app.num1.Value);
     b = (app.num2.Value);
     error = (app.errortol.Value);

     fx = 2*error; n = 0;
     while ((abs(fx) > (error) )&(n<=100))
        n=n+1;
        x=a;
        fa=eval(func);
        x=(a+b)/2;
        fx=eval(func);
        if (sign(fx)==sign(fa))
           a=x;
        else
           b=x;
        end
     end

    var = linspace(a,b,50);
    result = eval(func);
    plot(app.UIAxes, var, result)
    app.solution.Text=num2str(x);
    end

Вот как выглядит интерфейс: Bisection App

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

from command window

function [x, n]=bisection(f, a, b, TOL, NO)
fx = 2*TOL; n = 0;
while ((abs(fx)>TOL)&&(n<=NO))
   n=n+1;
   x=a;
   fa=eval(f);
   x=(a+b)/2;
   fx=eval(f);
   if (sign(fx)==sign(fa))
      a=x;
   else
      b=x;
   end
end

Это из-за типов данных текстовых полей и меток? Я имею в виду, как я могу заставить приложение принимать отрицательные числа в полях ввода? Как я могу заставить приложение идентифицировать e как натуральное число в математике?

...