Norton equivalent calculator
A Norton equivalent replaces an ideal voltage source and its series resistance with an ideal current source and a parallel resistance that behaves identically at the output terminals.
Run — free
This calculator performs that source transformation directly: it divides the signed source voltage by the positive series resistance to obtain Norton current, then carries the same resistance into the parallel branch. The result is useful when writing node-voltage equations, combining current sources, or simplifying a linear resistive network before further analysis.
Enter the source using a consistent reference polarity
Start with the voltage-source form of the two-terminal network: an ideal source voltage in series with a resistance. Enter the source voltage in volts and the series resistance in ohms. The resistance must be finite and greater than zero because the conversion divides by it, and because a zero-ohm ideal voltage source does not have a finite Norton current. Voltage may be positive, zero, or negative. Its sign records the polarity you chose for the original source and therefore controls the sign of the resulting current. Before entering a negative voltage, keep the same terminal labels and reference direction throughout your schematic; changing both the polarity labels and the numeric sign would reverse the source twice. The calculator accepts ordinary decimal or scientific-notation values and returns amperes and ohms. The optional precision setting controls displayed rounding without changing the underlying relationship. Unit prefixes are not inferred, so convert millivolts, kilohms, or megohms to volts and ohms first, or scale every quantity carefully before interpreting the amperes in the result.
Understand the Norton transformation
The conversion uses two equations: I_N = V_S / R_S and R_N = R_S. Norton current is the short-circuit current that the original voltage source and series resistor would deliver at the selected output terminals. The resistance does not receive a reciprocal or any other numerical transformation; it simply moves from a series position in the voltage-source representation to a parallel position in the current-source representation. These two networks have the same terminal voltage for every external load in a linear resistive circuit. You can verify the result by connecting a load resistance to either form and comparing the load voltage or current. With the Norton form, current division gives the load current. With the original form, the series circuit gives the same value. A negative Norton current is valid and means the actual source current points opposite to the positive reference direction described by your source-voltage polarity. The formula text included in the output makes the convention explicit and helps preserve calculation context in reports or automated node-analysis pipelines.
Use the result in node-based circuit analysis
Norton form is especially convenient for nodal analysis because current sources enter Kirchhoff current equations directly and parallel conductances combine cleanly. Place the returned current source between the same two terminals as the original branch, orient its positive reference consistently, and place the returned resistance in parallel with it. If several transformed branches meet at one node, sum their signed source currents according to your chosen current convention and add their conductances, where each conductance is 1/R. The transformation applies to ideal independent sources with linear series resistance and also to a larger linear two-terminal network after you have found its open-circuit voltage and equivalent resistance. It does not by itself determine the equivalent resistance of a network containing dependent sources, nonlinear devices, frequency-dependent impedance, or active operating-point effects. For AC phasor circuits, the same structural idea uses complex impedance rather than a single real resistance, which is outside this calculator’s real-number input contract. Treat rounded output as presentation data; retain enough precision when the value will feed another calculation, particularly when nearly cancelling signed currents are combined.
What you can do with it
Prepare a nodal-analysis equation
Transform a voltage-source branch into a current injection and parallel resistance before applying Kirchhoff’s current law at a node.
Combine parallel source branches
Convert compatible source branches to Norton form so their signed currents and parallel conductances can be combined systematically.
Check a source-transformation exercise
Confirm the current magnitude, direction sign, and unchanged resistance when moving between voltage-source and current-source representations.
FAQ
What is the Norton current formula?
Divide the signed source voltage by the positive series resistance: I_N = V_S / R_S. The result is in amperes when volts and ohms are used.
What happens to the series resistance?
Its numerical value stays the same, but it is connected in parallel with the Norton current source.
Can the source voltage be negative?
Yes. A negative value produces a negative Norton current, indicating that current flows opposite to the stated positive reference direction.
Why is zero resistance rejected?
The current calculation divides by resistance. An ideal voltage source with zero series resistance would require an unbounded short-circuit current unless its voltage were also zero, so it has no finite Norton representation under this contract.
Does this work with complex AC impedance?
No. This calculator accepts real voltage and resistance values. Phasor source transformations require complex-number voltage and impedance handling.
What does the API calculation cost?
The API price is $0.002 per request. The same deterministic calculation is also available free in the browser.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/elec/norton-equivalent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_voltage_v":12,"series_resistance_ohm":6}'const res = await fetch("https://api.kit.forhosting.com/elec/norton-equivalent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_voltage_v": 12,
"series_resistance_ohm": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/norton-equivalent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_voltage_v": 12,
"series_resistance_ohm": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/norton-equivalent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_voltage_v":12,"series_resistance_ohm":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_voltage_v":12,"series_resistance_ohm":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/norton-equivalent", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"source_voltage_v": 12,
"series_resistance_ohm": 6
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.norton_equivalent",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |