Matlab: система двух уравнений с двумя неизвестными

У меня есть такая задача: функция «fun», которая подчиняется «s» (то есть «s» должно быть возведено в квадрат, умножено на «R» и добавлено к «fun», чтобы получить «P»). «P» должно быть дифференцировано на «x» и «y», оба эти уравнения равны нулю, а затем я должен получить два уравнения двух неизвестных, которые должны быть решены. Я получаю ошибку в «s», говоря «неопределенная функция или переменная «x».»У меня очень мало опыта работы в Matlab, поэтому я действительно не знаю, как правильно писать эту строку (или эти строки). Если кто-то может помочь, это будет здорово, спасибо.

function [x1,y1] = penalty(fun)

s=x-2*y+1;

prompt='Enter R: ';
R=input(prompt);

P=fun+R*s^2;

dPx=diff(P,x);
dPy=diff(P,y);

[x1,y1]=solve(dPx==0,dPy==0,x,y);

end

1 ответ

  1. Синтаксис функции неверен. Я изменил эту часть. Тем не менее, есть проблема, потому что я понятия не имею, что вы подразумеваете под забавой в своем коде. В противном случае измененный код, вероятно, будет выполняться без проблем.

    function [x1, y1] = penalty(x, y)
    
    s=x-2*y+1;
    
    prompt='Enter R: ';
    R=input(prompt);
    
    P= fun +R*s^2; % What is fun?
    
    dPx=diff(P,x);
    dPy=diff(P,y);
    
    [x1, y1]=solve(dPx==0,dPy==0,x,y);
    
    end