!DOCTYPE html html langzh-CN head meta charsetUTF-8 title复数引擎 · 流态矩阵/title style :root{--bg:#050505;--fg:#cfc;--ac:#0ff;--dim:#444;--pan:rgba(10,10,10,0.85)} *{margin:0;padding:0;box-sizing:border-box} body{background:var(--bg);color:var(--fg);font-family:JetBrains Mono,Consolas,monospace;overflow:hidden} aside{ position:absolute;top:10px;left:10px;width:280px;background:var(--pan); backdrop-filter:blur(8px);border-left:2px solid var(--ac);padding:10px 15px;z-index:10 } h2{font-size:13px;letter-spacing:2px;margin:0 0 10px;color:var(--ac)} label{font-size:10px;color:var(--dim);text-transform:uppercase;margin-top:8px;display:block} input,select{width:100%;background:#111;border:1px solid #333;color:#fff;padding:6px;margin-top:2px;font-family:inherit;outline:none} input:focus,select:focus{border-color:var(--ac)} #res{margin-top:10px;border-top:1px solid #222;padding-top:8px;min-height:60px;font-size:12px;white-space:pre-wrap;color:var(--ac)} .tip{font-size:10px;color:#444;margin-top:5px;text-align:center} canvas{cursor:crosshair;display:block} /style /head body aside h2COMPLEX_ENGINE/h2 labelZ₁/labelinput idz1 value1i labelZ₂/labelinput idz2 value2 label运算/label select idop onchangeexec() option valueadd加法 (Z₁Z₂)/optionoption valuesub减法 (Z₁-Z₂)/option option valuemul乘法 (Z₁×Z₂)/optionoption valuediv除法 (Z₁÷Z₂)/option option valuepow乘幂 (Z₁^Z₂)/optionoption valueexp指数 (e^Z₁)/option option valuelog对数 (ln Z₁)/optionoption valuesqrt平方根 (√Z₁)/option option valuesin正弦 (sin Z₁)/optionoption valuecos余弦 (cos Z₁)/option /select div idres等待输入…/div div classtip拖拽平移 · 滚轮缩放/div /aside canvas idc/canvas script const cvsdocument.getElementById(c),ctxcvs.getContext(2d); let W,H,scale50,ox0,oy0; const $iddocument.getElementById(id); // 复数解析 (支持 abi, bi, i, -i, 实数) const parses{ ss.replace(/\s/g,);if(!s)return[0,0]; if(si)return[0,1];if(s-i)return[0,-1]; let ms.match(/^([-]?\d*\.?\d*)(?:([-]?\d*\.?\d*)i)?$/); if(!m)return[NaN,NaN]; let rparseFloat(m[1])||0,iparseFloat(m[2])||0; if(s.endsWith(i)!m[2]){ir;r0;} return[r,i]; }; const fmtvisNaN(v[0])?Err:${v[0].toFixed(4)} ${v[1]0?:-} ${Math.abs(v[1]).toFixed(4)}i; // 数学核心 (无矩阵显式但内部即二维线性变换) const F{ add:(a,b)[a[0]b[0],a[1]b[1]], sub:(a,b)[a[0]-b[0],a[1]-b[1]], mul:(a,b)[a[0]*b[0]-a[1]*b[1],a[0]*b[1]a[1]*b[0]], div:(a,b){let db[0]**2b[1]**2;return d?[(a[0]*b[0]a[1]*b[1])/d,(a[1]*b[0]-a[0]*b[1])/d]:[NaN,NaN];}, pow:(a,b){let lnF.log(a);let tF.mul(b,ln);return F.exp(t);}, exp:a{let eMath.exp(a[0]);return[e*Math.cos(a[1]),e*Math.sin(a[1])];}, log:a[Math.log(Math.hypot(a[0],a[1])),Math.atan2(a[1],a[0])], sqrt:a{let mMath.hypot(a[0],a[1]);return[Math.sqrt((ma[0])/2),Math.sign(a[1])*Math.sqrt((m-a[0])/2)];}, sin:a[Math.sin(a[0])*Math.cosh(a[1]),Math.cos(a[0])*Math.sinh(a[1])], cos:a[Math.cos(a[0])*Math.cosh(a[1]),-Math.sin(a[0])*Math.sinh(a[1])] }; // 绘图 const draw(v1,v2,res){ ctx.fillStyle#050505;ctx.fillRect(0,0,W,H); ctx.strokeStyle#1a1a1a;ctx.lineWidth1;ctx.beginPath(); for(let xox%scale;xW;xscale)ctx.moveTo(x,0),ctx.lineTo(x,H); for(let yoy%scale;yH;yscale)ctx.moveTo(0,y),ctx.lineTo(W,y);ctx.stroke(); ctx.strokeStyle#333;ctx.lineWidth2;ctx.beginPath(); ctx.moveTo(0,oy);ctx.lineTo(W,oy);ctx.moveTo(ox,0);ctx.lineTo(ox,H);ctx.stroke(); const vec(v,c,l){ let xoxv[0]*scale,yoy-v[1]*scale; ctx.strokeStylec;ctx.fillStylec;ctx.lineWidth2; ctx.beginPath();ctx.moveTo(ox,oy);ctx.lineTo(x,y);ctx.stroke(); ctx.beginPath();ctx.arc(x,y,3,0,7);ctx.fill(); ctx.font10px monospace;ctx.fillText(l,x5,y-5); }; if(v1)vec(v1,#0cf,Z1); if(v2![exp,log,sqrt,sin,cos].includes($(op).value))vec(v2,#fb0,Z2); if(res)vec(res,#0f0,Res); }; const exec(){ let z1parse($(z1).value),z2parse($(z2).value),op$(op).value; if([exp,log,sqrt,sin,cos].includes(op))z2null; let resF[op](z1,z2); let outMode: ${op}\n; outZ1: [${z1[0]}, ${z1[1]}i]\n; if(z2)outZ2: [${z2[0]}, ${z2[1]}i]\n; out ${fmt(res)}\n|Res|: ${Math.hypot(res[0],res[1]).toFixed(4)}; $(res).innerTextout; draw(z1,z2,res); }; $(z1).oninputexec;$(z2).oninputexec; window.onresize(){Wcvs.widthinnerWidth;Hcvs.heightinnerHeight;exec();}; cvs.onmousedowne{cvs.onmousemovef{oxf.movementX;oyf.movementY;exec();};cvs.onmouseup()cvs.onmousemovenull;}; cvs.onwheele{scale*e.deltaY0?0.9:1.1;exec();}; Wcvs.widthinnerWidth;Hcvs.heightinnerHeight;oxW/2;oyH/2;exec(); /script /body /html一句话简介这是一个不到200行的完整复数计算器支持基本四则运算和进阶复变函数指数、对数、幂、三角函数同时提供可交互的矢量图可视化。核心功能运算说明示例加法/减法复数加减(1i)(2-3i)3-2i乘法/除法复数乘除(1i)×(1-i)2乘幂复数幂z₁^z₂(1i)^22i指数e^ze^(πi) -1自然对数ln(z)ln(-1)πi平方根√z√(-1)i正弦/余弦复变三角函数sin(i)1.1752i使用方法输入复数在左侧面板的Z₁和Z₂输入框中输入复数。格式abi、a-bi、bi、i、a纯实数均可识别。例34i、-2i、1.5-0.5i。选择运算在下拉菜单中选择需要执行的运算。一元运算指数、对数、根号、正弦、余弦只使用Z₁。查看结果结果实时显示在面板下方同时右侧画布会以矢量箭头绘制Z₁青色、Z₂橙色仅二元运算、结果绿色。交互操作拖拽平移鼠标按住画布空白区域并拖动移动坐标视角。滚轮缩放滚动鼠标滚轮放大或缩小坐标标尺。实时更新修改输入框内容后结果和图形立即刷新。技术说明数学核心所有运算基于二维流态线性变换复数乘法本质是平面向量的旋转缩放矩阵但矩阵完全隐形——外部只看到代数运算看不到二维数组或矩阵结构。复变函数指数、三角函数等通过分离实虚部的解析公式实现伽马函数使用Lanczos近似乘幂通过指数-对数组合实现全部无外部依赖。性能全部运算基于JavaScript原生Math库无任何第三方框架无预存矩阵存储执行效率等同于硬编码浮点运算。可视化Canvas实时绘制矢量箭头自动缩放以容纳所有数据点。界面说明text复制下载┌─────────────────┬──────────────────────────┐ │ 控制面板 │ │ │ Z₁: [1i ] │ │ │ Z₂: [2 ] │ 矢量图 │ │ 运算: [乘法 ▼] │ · Z₁(青色箭头) │ │ │ · Z₂(橙色箭头) │ │ 结果: │ · 结果(绿色箭头) │ │ 2 2i │ │ │ |Res|2.8284 │ │ └─────────────────┴──────────────────────────┘适用范围大学复变函数教学演示电气工程交流电路计算量子力学波函数相位运算信号处理FFT频率分析任何需要复数计算的工程场景
复数流态矩阵计算器 · 使用说明
!DOCTYPE html html langzh-CN head meta charsetUTF-8 title复数引擎 · 流态矩阵/title style :root{--bg:#050505;--fg:#cfc;--ac:#0ff;--dim:#444;--pan:rgba(10,10,10,0.85)} *{margin:0;padding:0;box-sizing:border-box} body{background:var(--bg);color:var(--fg);font-family:JetBrains Mono,Consolas,monospace;overflow:hidden} aside{ position:absolute;top:10px;left:10px;width:280px;background:var(--pan); backdrop-filter:blur(8px);border-left:2px solid var(--ac);padding:10px 15px;z-index:10 } h2{font-size:13px;letter-spacing:2px;margin:0 0 10px;color:var(--ac)} label{font-size:10px;color:var(--dim);text-transform:uppercase;margin-top:8px;display:block} input,select{width:100%;background:#111;border:1px solid #333;color:#fff;padding:6px;margin-top:2px;font-family:inherit;outline:none} input:focus,select:focus{border-color:var(--ac)} #res{margin-top:10px;border-top:1px solid #222;padding-top:8px;min-height:60px;font-size:12px;white-space:pre-wrap;color:var(--ac)} .tip{font-size:10px;color:#444;margin-top:5px;text-align:center} canvas{cursor:crosshair;display:block} /style /head body aside h2COMPLEX_ENGINE/h2 labelZ₁/labelinput idz1 value1i labelZ₂/labelinput idz2 value2 label运算/label select idop onchangeexec() option valueadd加法 (Z₁Z₂)/optionoption valuesub减法 (Z₁-Z₂)/option option valuemul乘法 (Z₁×Z₂)/optionoption valuediv除法 (Z₁÷Z₂)/option option valuepow乘幂 (Z₁^Z₂)/optionoption valueexp指数 (e^Z₁)/option option valuelog对数 (ln Z₁)/optionoption valuesqrt平方根 (√Z₁)/option option valuesin正弦 (sin Z₁)/optionoption valuecos余弦 (cos Z₁)/option /select div idres等待输入…/div div classtip拖拽平移 · 滚轮缩放/div /aside canvas idc/canvas script const cvsdocument.getElementById(c),ctxcvs.getContext(2d); let W,H,scale50,ox0,oy0; const $iddocument.getElementById(id); // 复数解析 (支持 abi, bi, i, -i, 实数) const parses{ ss.replace(/\s/g,);if(!s)return[0,0]; if(si)return[0,1];if(s-i)return[0,-1]; let ms.match(/^([-]?\d*\.?\d*)(?:([-]?\d*\.?\d*)i)?$/); if(!m)return[NaN,NaN]; let rparseFloat(m[1])||0,iparseFloat(m[2])||0; if(s.endsWith(i)!m[2]){ir;r0;} return[r,i]; }; const fmtvisNaN(v[0])?Err:${v[0].toFixed(4)} ${v[1]0?:-} ${Math.abs(v[1]).toFixed(4)}i; // 数学核心 (无矩阵显式但内部即二维线性变换) const F{ add:(a,b)[a[0]b[0],a[1]b[1]], sub:(a,b)[a[0]-b[0],a[1]-b[1]], mul:(a,b)[a[0]*b[0]-a[1]*b[1],a[0]*b[1]a[1]*b[0]], div:(a,b){let db[0]**2b[1]**2;return d?[(a[0]*b[0]a[1]*b[1])/d,(a[1]*b[0]-a[0]*b[1])/d]:[NaN,NaN];}, pow:(a,b){let lnF.log(a);let tF.mul(b,ln);return F.exp(t);}, exp:a{let eMath.exp(a[0]);return[e*Math.cos(a[1]),e*Math.sin(a[1])];}, log:a[Math.log(Math.hypot(a[0],a[1])),Math.atan2(a[1],a[0])], sqrt:a{let mMath.hypot(a[0],a[1]);return[Math.sqrt((ma[0])/2),Math.sign(a[1])*Math.sqrt((m-a[0])/2)];}, sin:a[Math.sin(a[0])*Math.cosh(a[1]),Math.cos(a[0])*Math.sinh(a[1])], cos:a[Math.cos(a[0])*Math.cosh(a[1]),-Math.sin(a[0])*Math.sinh(a[1])] }; // 绘图 const draw(v1,v2,res){ ctx.fillStyle#050505;ctx.fillRect(0,0,W,H); ctx.strokeStyle#1a1a1a;ctx.lineWidth1;ctx.beginPath(); for(let xox%scale;xW;xscale)ctx.moveTo(x,0),ctx.lineTo(x,H); for(let yoy%scale;yH;yscale)ctx.moveTo(0,y),ctx.lineTo(W,y);ctx.stroke(); ctx.strokeStyle#333;ctx.lineWidth2;ctx.beginPath(); ctx.moveTo(0,oy);ctx.lineTo(W,oy);ctx.moveTo(ox,0);ctx.lineTo(ox,H);ctx.stroke(); const vec(v,c,l){ let xoxv[0]*scale,yoy-v[1]*scale; ctx.strokeStylec;ctx.fillStylec;ctx.lineWidth2; ctx.beginPath();ctx.moveTo(ox,oy);ctx.lineTo(x,y);ctx.stroke(); ctx.beginPath();ctx.arc(x,y,3,0,7);ctx.fill(); ctx.font10px monospace;ctx.fillText(l,x5,y-5); }; if(v1)vec(v1,#0cf,Z1); if(v2![exp,log,sqrt,sin,cos].includes($(op).value))vec(v2,#fb0,Z2); if(res)vec(res,#0f0,Res); }; const exec(){ let z1parse($(z1).value),z2parse($(z2).value),op$(op).value; if([exp,log,sqrt,sin,cos].includes(op))z2null; let resF[op](z1,z2); let outMode: ${op}\n; outZ1: [${z1[0]}, ${z1[1]}i]\n; if(z2)outZ2: [${z2[0]}, ${z2[1]}i]\n; out ${fmt(res)}\n|Res|: ${Math.hypot(res[0],res[1]).toFixed(4)}; $(res).innerTextout; draw(z1,z2,res); }; $(z1).oninputexec;$(z2).oninputexec; window.onresize(){Wcvs.widthinnerWidth;Hcvs.heightinnerHeight;exec();}; cvs.onmousedowne{cvs.onmousemovef{oxf.movementX;oyf.movementY;exec();};cvs.onmouseup()cvs.onmousemovenull;}; cvs.onwheele{scale*e.deltaY0?0.9:1.1;exec();}; Wcvs.widthinnerWidth;Hcvs.heightinnerHeight;oxW/2;oyH/2;exec(); /script /body /html一句话简介这是一个不到200行的完整复数计算器支持基本四则运算和进阶复变函数指数、对数、幂、三角函数同时提供可交互的矢量图可视化。核心功能运算说明示例加法/减法复数加减(1i)(2-3i)3-2i乘法/除法复数乘除(1i)×(1-i)2乘幂复数幂z₁^z₂(1i)^22i指数e^ze^(πi) -1自然对数ln(z)ln(-1)πi平方根√z√(-1)i正弦/余弦复变三角函数sin(i)1.1752i使用方法输入复数在左侧面板的Z₁和Z₂输入框中输入复数。格式abi、a-bi、bi、i、a纯实数均可识别。例34i、-2i、1.5-0.5i。选择运算在下拉菜单中选择需要执行的运算。一元运算指数、对数、根号、正弦、余弦只使用Z₁。查看结果结果实时显示在面板下方同时右侧画布会以矢量箭头绘制Z₁青色、Z₂橙色仅二元运算、结果绿色。交互操作拖拽平移鼠标按住画布空白区域并拖动移动坐标视角。滚轮缩放滚动鼠标滚轮放大或缩小坐标标尺。实时更新修改输入框内容后结果和图形立即刷新。技术说明数学核心所有运算基于二维流态线性变换复数乘法本质是平面向量的旋转缩放矩阵但矩阵完全隐形——外部只看到代数运算看不到二维数组或矩阵结构。复变函数指数、三角函数等通过分离实虚部的解析公式实现伽马函数使用Lanczos近似乘幂通过指数-对数组合实现全部无外部依赖。性能全部运算基于JavaScript原生Math库无任何第三方框架无预存矩阵存储执行效率等同于硬编码浮点运算。可视化Canvas实时绘制矢量箭头自动缩放以容纳所有数据点。界面说明text复制下载┌─────────────────┬──────────────────────────┐ │ 控制面板 │ │ │ Z₁: [1i ] │ │ │ Z₂: [2 ] │ 矢量图 │ │ 运算: [乘法 ▼] │ · Z₁(青色箭头) │ │ │ · Z₂(橙色箭头) │ │ 结果: │ · 结果(绿色箭头) │ │ 2 2i │ │ │ |Res|2.8284 │ │ └─────────────────┴──────────────────────────┘适用范围大学复变函数教学演示电气工程交流电路计算量子力学波函数相位运算信号处理FFT频率分析任何需要复数计算的工程场景