help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Integration problem


From: John W. Eaton
Subject: Re: Integration problem
Date: Thu, 8 Jan 2009 17:34:19 -0500

On  8-Jan-2009, James Sherman Jr. wrote:

| While I don't have octave available currently, I believe your problem is
| that the quad function requires the first input to be a function of one
| input.  So, for a single u value it would look like:
| 
| >function y=int(x)
| >y=sin(10.*x);
| >endfunction;
| 
| Then the quad line should work.  Now if you want to dynamically change the u
| value, then you might do something like:
| 
| index = 1;
| results = zeros(size([-10:0.1:10]));
| 
| for u = [-10:0.1:10]
| 
|    % creates the function as a string where the first input to int is the
| current value of u
|    function_string = sprintf('int(%d, x)', u);
| 
|    % creates an inline function that only has one input 'x', because we want
| u to be constant.
|    int_inline = inline(function_string, 'x');
| 
|    results(index) = quad('int_inline',0,2.*pi);
| 
|    index = index + 1;
| end
| 
| There may be a better way to do this, but I think this should work.

Using an anonymous function is a bit simpler:

  rng = -10:0.1:10;
  results = zeros (size (rng));
  idx = 1;
  for u = rng
    results(idx++) = quad (@(x) sin(u*x), 0, 2*pi);
  endfor

jwe


reply via email to

[Prev in Thread] Current Thread [Next in Thread]