Error using inline/subsref (line 12) Not enough inputs to inline function.
1 回表示 (過去 30 日間)
古いコメントを表示
Hi, I've been tested so many times and tried all the answers from here and still not working.
if the expression is

with
m=4.541*TN*S0/T
T=1:0.1:100
TN=70
S0=0.99
integration with simpson 1/3
here my code:
clear all; clc;
f1=inline('3/2*(cos(x)^2)*exp(m*(3/2*(cos(x)^2))-1/2)*sin(x)','m','x');
f2=inline('exp(m*(3/2*(cos(x)^2)-1/2))','m','x');
T0=1;
TM=100;
dT=0.1;
TN=70;
S0=0.99;
for T=T0:dT:TM;
m=4.541*TN*S0/T;
a=0;b=pi;
c=0;d=pi;
n=100;
h=(b-a)/n;
f1a=f1(a);f1b=f1(b);
f2a=f2(a);f2b=f2(b);
jumeven=0;jumodd=0;
for i=1:n-1
p=mod(1,2);
if p==0
xi=x+i*h;
jumeven=jumeven+f(xi);
else
xi=x+i*h;
jumodd=jumodd+f(xi);
end
end
I1=(h/3)*(f1a+4*jumodd+2*jumeven+f1b);
I2=(h/3)*(f2c+4*jumodd+2*jumeven+f2d);
S=I1/I2;
S0=S;
end
disp([S' T']);
disp([S]);
plot(S,T,'ob-','linewidth',3);
grid on;
xlabel('S','fontsize',18);
ylabel('T','fontsize',18);
4 件のコメント
Walter Roberson
2022 年 3 月 12 日
f1 = @(m,x) 3/2*(cos(x).^2).*exp(m.*(3/2*(cos(x).^2))-1/2).*sin(x);
f2 = @(m,x) exp(m.*(3/2*(cos(x).^2)-1/2));
採用された回答
KSSV
2022 年 3 月 11 日
These lines:
f1a=f1(a);f1b=f1(b);
f2a=f2(a);f2b=f2(b);
Should be:
f1a=f1(m,a);f1b=f1(m,b);
f2a=f2(m,a);f2b=f2(m,b);
As the functions f1, f2 need two inputs.
5 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Function Creation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
