Я получаю ошибку при выполнении кода ниже для вычисления одного простого интеграла в Matlab. Код приведен ниже.Как решить интеграл в Matlab, имеющий верхний предел, заданный как синусоидальная функция?
%Parameter Innitizlation
epsilon0=8.85*10^-12;
d_mos=6*10^-9;
epsilon_mos=5*epsilon0;
d_g=30*10^-9;
epsilon_g=19*epsilon0;
vt=-2;
e=1.6*10^-19;
n=[];
i=1;
t2=[];
u=60; % cm^2/v*S
h=1.05*10^-34; % ev*s
%Capacitor Calaculation
c_g=(epsilon_g/d_g);
c_mos=(epsilon_mos/d_mos);
c_t=1/((1/c_g)+(1/c_mos));
%Input Voltage
t = 0:0.2:10;
vg = 5*sin(t);
%Surface Voltage
fun=1-(c_t/c_g);
vs = integral(fun,0,vg);
figure
plot(t,vs)
title('vs vs time')
Ошибка
Ошибка я получаю «??? Неопределенная функция или метод„Интеграл“для входных аргументов типа„двойной“.
Ошибка = => MIT at 29 vs = integer (fun, 0, vg); ""
вашей переменной 'fun' является двойным вектором, а не функция ручки. Первым вводом интеграла должен быть дескриптор функции. – Daniel
@ Daniel .. Какой вид возможного решения, пожалуйста. –
Я не знаю правильного решения, потому что я не знаю, какую функцию вы пытаетесь реализовать. – Daniel