You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab无循环求解级数aₙ:技术实现问询

MATLAB Vectorized Solution for the Alternating Odd Power Series

Let's break down how to compute this alternating series without any loops—MATLAB's vectorized operations are perfect for this kind of problem, since they let us compute all terms at once instead of iterating one by one.

First, let's formalize the pattern of each term in the series:
For the (k)-th term (where (k) ranges from 1 to (n)):

  • Sign: Alternates starting with positive: ((-1)^{k+1})
  • Numerator: (x) raised to the ((2k-1))-th power (the sequence of odd exponents: 1, 3, 5, ...)
  • Denominator: The corresponding odd integer: (2k-1)

Full Function Implementation

function series_sum = compute_alternating_series(n, x)
    % COMPUTE_ALTERNATING_SERIES calculates the sum of the series x - x^3/3 + x^5/5 - ... up to n terms
    % Inputs:
    %   n - Number of terms to compute (positive integer)
    %   x - Input value (scalar, vector, or matrix)
    % Output:
    %   series_sum - Sum of the first n terms of the series
    
    % Handle edge case where n is 0 (return 0 sum)
    if n == 0
        series_sum = 0;
        return;
    end
    
    % Create an index vector for each term (1 to n)
    k = 1:n;
    
    % Calculate components for each term using vectorized operations
    signs = (-1).^(k + 1);          % Alternating sign vector
    exponents = 2*k - 1;            % Odd exponents for each term
    numerators = x.^exponents;      % x raised to each odd exponent (element-wise)
    denominators = exponents;       % Denominators match the exponents
    
    % Compute each term and sum them up
    terms = signs .* numerators ./ denominators;
    series_sum = sum(terms);
end

How It Works

  • Vectorized Indexing: We use k = 1:n to create a vector of all term indices. This lets us compute every component of the series in one go, no loops needed.
  • Element-Wise Operations: The .^, .*, and ./ operators ensure that we perform calculations on each element of the vectors independently—this even means the function works if x is a vector or matrix, not just a scalar!
  • Edge Case Handling: We added a check for (n=0) to return a valid sum of 0, though the problem likely assumes (n) is a positive integer.

Test with Your Example

Let's test the function with your sample input: (n=3), (x=1)

compute_alternating_series(3, 1)

This returns (1 - 1/3 + 1/5 = 13/15 ≈ 0.8667), which matches the expected result.

If you run it with (x=2) and (n=3), you'll get (2 - (2^3)/3 + (2^5)/5 = 2 - 8/3 + 32/5 = (30 - 40 + 96)/15 = 86/15 ≈ 5.7333).

内容的提问来源于stack exchange,提问作者M.Papapetros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:16:24