To physically compute the power series for cos x ($1 - x^2/2 + x^4/24$) in hardware, use a cascaded analog multiplier topology driven by the AD633 IC and a TL082 summing op-amp. This analog computing circuit evaluates the Maclaurin series in real-time without ADC latency, outputting a cosine approximation for input voltages representing radians ($\pm 3.14V$). Below is the exact node-by-node topology, the precision resistor values required to scale the $x^2$ and $x^4$ terms, and the failure modes you will encounter on the bench.
The Topology: Analog Evaluation of the Power Series for Cos x
The Maclaurin series expansion for cosine is $\cos(x) \approx 1 - \frac{x^2}{2!} + \frac{x^4}{4!}$. To map this to a physical circuit, we assign a voltage scale where $1V = 1$ radian. The circuit requires three distinct computational blocks feeding into a final summing node:
- Squaring Block (Node A): An AD633 analog multiplier configured as a squarer. Input $x$ is fed to both $X_1$ and $Y_1$. The output at Node A is $V_A = x^2 / 10V$ (due to the AD633's internal 10V scaling denominator).
- Fourth-Power Block (Node B): A second AD633 multiplier takes Node A as its input, squaring it again. The output at Node B is $V_B = x^4 / 1000V$.
- Summing and Scaling Node (Node C): An inverting summing amplifier (TL082) combines the scaled $x^2$ term, the scaled $x^4$ term, and a DC reference voltage to generate the final output at Node D.
Analog multipliers like the AD633 divide the product of the X and Y inputs by 10V to prevent internal saturation when operating on $\pm 10V$ rails. Your feedback resistor network must mathematically cancel this divisor while applying the Taylor series coefficients ($0.5$ and $0.04167$).
Decision Path: Selecting the Multiplier IC
Choosing the right analog multiplier dictates your bandwidth, noise floor, and scaling complexity. Here is the decision matrix for selecting the core IC for polynomial evaluation:
| Criteria | AD633 (Analog Devices) | MPY634 (Texas Instruments) | AD538 (Analog Devices) |
|---|---|---|---|
| Cost (Approx. 2026) | ~$16.00 | ~$48.00 | Obsolete / Hard to source |
| Bandwidth (-3dB) | 1 MHz | 10 MHz | N/A |
| Internal Scaling | Fixed 10V divisor | User-configurable via pins | Fixed |
| Packaging for Prototyping | 8-pin PDIP | 14-pin PDIP | 14-pin DIP |
The Verdict: For sub-megahertz waveform shaping and educational analog computing, pick the AD633JNZ (8-pin PDIP). The fixed 10V divisor simplifies the resistor math, and the 8-pin footprint leaves more room on the breadboard for precision resistor networks. Reserve the MPY634 for RF mixing or high-speed active filter designs.
Design Walkthrough: Calculating Real Component Values
We need the final output to be $V_{out} = 1 - 0.5x^2 + 0.04167x^4$. Using an inverting summing amplifier topology for the final stage, the output equation is $V_{out} = - [V_{in1}(R_f/R_1) + V_{in2}(R_f/R_2) + V_{ref}(R_f/R_3)]$.
Step 1: The $x^2$ Term
Node A provides $+x^2/10$. We feed this into $R_1$. The contribution to the output is $-(x^2/10)(R_f/R_1)$. We want this to equal $-0.5x^2$.
$(1/10)(R_f/R_1) = 0.5 \implies R_f/R_1 = 5$.
Selection: Set $R_1 = 10.0k\Omega$ (1% metal film). Therefore, $R_f = 50.0k\Omega$. The closest E96 standard value is $49.9k\Omega$.
Step 2: The $x^4$ Term
Node B provides $+x^4/1000$. Because we need a positive coefficient ($+0.04167$) at the output of an inverting summer, we must first invert Node B using a spare op-amp (TL082, unity gain inverter: $R_{in}=10k, R_f=10k$). Let's call this inverted node $-V_B$.
Feed $-V_B$ into $R_2$. The contribution is $-(-x^4/1000)(R_f/R_2) = +(x^4/1000)(R_f/R_2)$. We want this to equal $0.04167x^4$.
$(1/1000)(R_f/R_2) = 0.04167 \implies R_f/R_2 = 41.67$.
Selection: With $R_f = 49.9k\Omega$, $R_2 = 49.9k / 41.67 = 1.197k\Omega$. The exact E96 standard value is $1.20k\Omega$ (1% metal film).
Step 3: The Constant Offset (+1V)
We need $+1V$ at the output. The summer contribution is $-V_{ref}(R_f/R_3) = +1$.
Selection: Use a buffered $-1.0V$ reference derived from the negative supply rail. Set $R_3 = R_f = $ $49.9k\Omega$.
Behavior Table and Failure Mode Contrast
Analog computing circuits are highly sensitive to component drift. Here is how the circuit behaves when specific elements deviate or fail completely.
| Element | Parameter Change | Effect on Cosine Output |
|---|---|---|
| $R_1$ ($x^2$ gain) | +5% Drift (Heat) | Amplitude droop; the 'dips' of the cosine wave fail to reach -1V, flattening the waveform. |
| $R_2$ ($x^4$ gain) | -10% Drift | Harmonic distortion increases; the waveform peaks become overly sharp (closer to a triangle wave) as the 4th-order correction drops. |
| Multiplier X-Input | Short to GND | $x$ becomes 0. Output locks to exactly +1.0V DC (only the constant offset term remains). |
| Summing Node C | Open circuit (lifted op-amp pin) | Op-amp U3A saturates to the positive rail (~+13V) as input bias current charges stray breadboard capacitance. |
Why Analog Polynomial Evaluation Over Digital DSP?
With microcontrollers and DSPs capable of executing Taylor series approximations in nanoseconds, why build this on a breadboard?
- Zero Latency Feedback: In high-speed analog control loops (like phase-locked loops or analog synthesizer LFOs), the ADC-to-DAC pipeline latency of a DSP introduces phase shift that destabilizes the loop. The AD633 computes the series continuously with a propagation delay of roughly 300ns.
- Glitch-Free Output: Digital analog-to-digital conversion introduces quantization noise and step-glitches that require aggressive analog low-pass filtering. The analog multiplier output is inherently continuous.
- Educational Synthesis: For electrical engineering students, physically wiring the $x^4$ term and watching the waveform sharpen on an oscilloscope builds an intuitive understanding of harmonic convergence that a Python script cannot replicate.
Step-by-Step Breadboard Testing and Verification
Do not inject an AC signal until the DC transfer function is verified. Follow this sequence to prevent chasing ghost oscillations.
- Rail Preparation: Power the breadboard with $\pm 15V$ from a linear bench supply. Place 100nF ceramic and 10\mu F electrolytic decoupling capacitors directly across the VCC/VEE pins of every AD633 and TL082.
- Verify the Squarer (Node A): Disconnect Node A from the summing network. Apply a precise +2.00V DC to the $X_1/Y_1$ inputs. Measure Node A with a multimeter. It must read exactly +0.40V ($2^2 / 10$). If it reads 0.42V, trim the input voltage slightly; AD633 J-grade chips have up to 2% full-scale error.
- Verify the Fourth-Power Block (Node B): Reconnect Node A to the second multiplier. With +2.00V still at the input, Node B should read +0.016V ($2^4 / 1000$). Because this value is so small, use a 4.5-digit multimeter or an oscilloscope with high-gain DC coupling.
- DC Sweep the Summing Node: Connect the summing resistors. Apply 0V input. The output (Node D) must read +1.00V. Apply +1.57V ($\pi/2$ radians). The output should read approximately 0V (the cosine of 90 degrees). Apply +3.14V ($\pi$ radians). The output should read -1.00V.
- AC Injection: Switch to a function generator. Inject a 100Hz triangle wave (0V to +3.14V peak). Observe Node D on an oscilloscope. You will see the triangle wave morph into a smooth cosine curve. If the peaks are flat, increase $R_f$ slightly; if the peaks are spiked, decrease $R_2$.
For reliable, repeatable results on the bench, standard 5% carbon film resistors will yield unacceptable waveform distortion. Commit to using 1% tolerance metal film resistors (like the Vishay MRS25 series) for the summing network, and default to the AD633JNZ for your multiplier topology.






