简体   繁体   中英

Not enough input arguments error in matlab

This is my matlab code , I got Not enough input argument error in line 2 and i don't know how to fix it. Anyhelp ? Thanks in advance .

function [] = Integr1( F,a,b )
i = ((b - a)/500);
x = a;k = 0; n = 0;
while x <= b
    F1 = F(x);
    x = x + i;
    F2 = F(x);
   m = ((F1+F2)*i)/2;
    k = k +m;
end
k
x = a; e = 0; o = 0;
while x <= (b - 2*i)
    x = x + i;
    e = e + F(x);
    x = x + i;
    o = o + F(x);
end
n = (i/3)*(F(a) + F(b) + 2*o + 4*e)

This code performs integration by the trapezoidal rule. The last line of code gave it away. Please do not just push the Play button in your MATLAB editor. Don't even think about it, and ignore that it's there. Instead, go into your Command Prompt, and you need to define the inputs that go into this function. These inputs are:

  • F : A function you want to integrate:
  • a : The starting x point
  • b : The ending x point

BTW, your function will not do anything once you run it. You probably want to return the integral result, and so you need to modify the first line of your code to this:

function n = Integr1( F,a,b )

The last line of code assigns n to be the area under the curve, and that's what you want to return.

Now, let's define your parameters. A simple example for F is a linear function... something like:

F = @(x) 2*x + 3;

This defines a function y = 2*x + 3 . Next define the starting and ending points:

a = 1; b = 4;

I made them 1 and 4 respectively. Now you can call the code:

out = Integr1(F, a, b);

out should contain the integral of y = 2*x + 3 from x = 1 to x = 4 .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM