• Регистрация
alexeevdmitriy97
alexeevdmitriy97 0.00
н/д

Зависимость одного параметра от другого в среде Матлаб

02.11.2021

Доброго времени суток! Подскажите пожалуйста, как построить зависимость параметра x и параметра y от P (x и y присутствуют в расчетах неопределенных интегралов q1 и q2, произведение которых дает величину P)
clc,clear
fun=@(x) (1/(1.414214.*sqrt(2*pi)).*exp(-((x-16).^2)./4));
q0=integral(fun,1,24);
syms y
f1=q0*((1./359)).^2*0.2*exp(-0.2*y).*0.850904;
q1=int(f1)
syms x y;
f(x,y)=q0*((1./359)).^2*(0.2.*exp(-0.2.*y).*0.707107)/(((exp(-((x-16).^2)./4)./(1.414214.*sqrt(2.*pi))).^2)+((exp(-((x-16).^2)./4)./(1.414214.*sqrt(2.*pi))).^2)+2.*((exp(-((x-16).^2)./4)./(1.414214.*sqrt(2.*pi))).^2).*1).^0.5
q2=int(f,x)
P=q1*q2

Теги

    02.11.2021

    Ответы

    • aBoomest
      aBoomest+942.89
      2.11.2021 17:53

      plot(P,x); plot(P,y);

      • alexeevdmitriy97
        alexeevdmitriy970.00
        3.11.2021 07:50

        В данном случае эта функция не работает

        • aBoomest
          aBoomest+942.89
          3.11.2021 09:37

          ezplot или fplot

          либо символьные переменные вычиснить на интервале (subs) (вроде как там еще надо тип было определеить, не помню точно)

      • alexeevdmitriy97
        alexeevdmitriy970.00
        3.11.2021 09:44

        Да, это можно сделать с помощью subs, только я не знаю, как это можно применить в данном коде. Не поможете?

        • aBoomest
          aBoomest+942.89
          3.11.2021 10:14
          syms x
          y = @(x)exp(1-x)*sin(x)
          fplot(y,[0 5]);
          
          или
          
          syms x f
          f = exp(1-x)*sin(x)
          xx = (0:0.1:5)';
          yy = double(subs(f,x,xx));
          plot(xx,yy);
          
          • alexeevdmitriy97
            alexeevdmitriy970.00
            3.11.2021 12:06

            Так то все прекрасно, но как применить это к моему коду, я не понимаю. Матлаб ругается и выдает ошибки.

            • aBoomest
              aBoomest+942.89
              3.11.2021 14:37

              P - у вас ф-ция 2-х переменных.

              Вы либо строите поверхность.

              Либо задаете конкретные x и строите зависимость от у.
              И наоборот аналогично зависимость от  х

              на скорую руку

              clc;
              clear all;
              close all;
              fun=@(x) (1/(1.414214.*sqrt(2*pi)).*exp(-((x-16).^2)./4));
              q0=integral(fun,1,24);
              syms x y;
              f1=q0*((1./359)).^2*0.2*exp(-0.2*y).*0.850904;
              q1=int(f1);
              
              f(x,y)=q0*((1./359)).^2*(0.2.*exp(-0.2.*y).*0.707107)/(((exp(-((x-16).^2)./4)./(1.414214.*sqrt(2.*pi))).^2)+((exp(-((x-16).^2)./4)./(1.414214.*sqrt(2.*pi))).^2)+2.*((exp(-((x-16).^2)./4)./(1.414214.*sqrt(2.*pi))).^2).*1).^0.5;
              q2=int(f,x);
              P=q1*q2;
              
              xx = (0:0.01:1)';
              count = size(xx,1);
              yy = xx;
              % xxyy = meshgrid(xx,yy);
              PP = [];
              for ii = 1:count
                  PP = [PP double(subs(P,{x y},{xx(ii) yy}))];
              end;
              surf(xx,yy,PP);
              • alexeevdmitriy97
                alexeevdmitriy970.00
                4.11.2021 00:42

                В таком случае выдает ошибку вот такого рода:

                Error using surf (line 71)
                Z must be a matrix, not a scalar or vector.

                Error in Chern (line 18)
                surf (xx,yy,PP);

                 

                Вот мне нужно посмотреть, как изменяется P в зависимости от x или y при постоянстве других переменных. Для x [0:1:24], для y [1:1:10]

                • aBoomest
                  aBoomest+942.89
                  4.11.2021 18:00

                  замените

                  xx = (0:1:24)';

                  ну и yy тоже определите согласнотому что написали