laplace_transform
Perform Laplace transform calculations for functions of time using specified variables to convert time-domain equations into the s-domain for analysis.
Instructions
Calculate the Laplace transform of a function
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | Function of time | |
| laplaceVar | Yes | Laplace variable | |
| timeVar | Yes | Time variable |
Implementation Reference
- index.js:368-390 (handler)Core handler function that computes the Laplace transform using numerical integration approximating the integral from 0 to infinity with 1000 steps up to t=100.const laplaceTransform = (expr, t, s) => { try { const node = math.parse(expr); // Using numerical integration for a basic approximation const upperLimit = 100; // Approximation of infinity const steps = 1000; const dt = upperLimit / steps; let result = math.complex(0, 0); for (let i = 0; i < steps; i++) { const time = i * dt; const scope = { [t]: time }; const ft = math.evaluate(node, scope); const expTerm = math.exp(math.multiply(math.complex(-s, 0), time)); result = math.add(result, math.multiply(ft, expTerm, dt)); } return result.toString(); } catch (e) { return `Error: ${e.message}`; } };
- index.js:445-450 (schema)Zod input schema defining parameters for the Laplace transform tool and string output schema.inputSchema: z.object({ expression: z.string().describe('Function of time'), timeVar: z.string().describe('Time variable'), laplaceVar: z.string().describe('Laplace variable') }), outputSchema: z.string(),
- index.js:441-455 (registration)Genkit tool registration for 'laplace_transform', specifying name, description, schema, and async handler that delegates to the laplaceTransform function.ai.defineTool( { name: 'laplace_transform', description: 'Calculate the Laplace transform of a function', inputSchema: z.object({ expression: z.string().describe('Function of time'), timeVar: z.string().describe('Time variable'), laplaceVar: z.string().describe('Laplace variable') }), outputSchema: z.string(), }, async ({ expression, timeVar, laplaceVar }) => { return laplaceTransform(expression, timeVar, laplaceVar); } );