当前位置: 首页 > article >正文

使用Mathematica绘制随机多项式的根

使用ListPlot和NSolve直接绘制:

(*返回系数为r和s之间整数的n次随机多项式*) 
eq[n_, r_, s_] := RandomInteger[{r, s}, {n}] . Array[Power[x, # - 1] &, n] 
(*返回给定随机多项式的根所对应的笛卡尔坐标*) 
sol[n_, r_, s_] := {Re[#], Im[#]} & /@ (x /. NSolve[eq[n, r, s] == 0, x]) ListPlot[sol[400, 1, 6], PlotRange -> {{-1.5, 1.5}, {-1.5, 1.5}}, AspectRatio -> Automatic, PlotStyle -> {PointSize[Medium], Opacity[0.2], Black}]

使用Image和Fourier:

SetSystemOptions["SparseArrayOptions" -> {"TreatRepeatedEntries" -> 1}];
\[Gamma] = 0.12;
\[Beta] = 1.0;
fLor = Compile[{{x, _Integer}, {y, _Integer}}, (\[Gamma]/(\[Gamma] + x^2 + y^2))^\[Beta], RuntimeAttributes -> {Listable}(*,CompilationTarget->"C"*)];
<< Developer`
$PlotComplexPoints[list_, magnification_, paddingX_, paddingY_, brightness_] := Module[{RePos = paddingX + 1 + Round[magnification (# - Min[#])] &[Re[list]], ImPos = paddingY + 1 + Round[magnification (# - Min[#])] &[Im[list]],sparse, lor, dimX, dimY}, dimX = paddingX + Max[RePos];dimY = paddingY + Max[ImPos];Image[(brightness Sqrt[dimX dimY] Abs[InverseFourier[Fourier[SparseArray[Thread[{ImPos, RePos}\[Transpose] -> ConstantArray[1, Length[list]]], {dimY, dimX}]] Fourier[RotateRight[fLor[#[[All, All, 1]], #[[All, All, 2]]] &@Outer[List, Range[-Floor[dimY/2], Floor[(dimY - 1)/2]], Range[-Floor[dimX/2], Floor[(dimX - 1)/2]]], {Floor[dimY/2], Floor[dimX/2]}]]]])\[TensorProduct]ToPackedArray[{1.0, 0.3, 0.1}], Magnification -> 1]]

直接绘制10000个随机的复平面点图:

$PlotComplexPoints[ RandomComplex[{-1 - I, 1 + I}, 10000], 300, 20, 20, 10]

随机的150阶多项式的根的分布图:

expr = Evaluate@Sum[RandomInteger[{1, 10}] #^k, {k, 150}] &; 
list = Table[N@Root[expr, k], {k, 150}]; 
$PlotComplexPoints[list, 320, 20, 20, 140]

http://www.lryc.cn/news/2394425.html

相关文章:

  • IEEE PRMVAI 2025 WS 26:计算机视觉前沿 Workshop 来袭!
  • 360浏览器设置主题
  • 最卸载器——Geek Uninstaller 使用指南
  • leetcode216.组合总和III:回溯算法中多条件约束下的状态管理
  • 应急响应靶机-web3-知攻善防实验室
  • 【基于SpringBoot的图书购买系统】Redis中的数据以分页的形式展示:从配置到前后端交互的完整实现
  • Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
  • PMO价值重构:从项目管理“交付机器”到“战略推手”
  • 如何成为一名优秀的产品经理
  • [SLAM自救笔记0]:开端
  • 零知开源——STM32F407VET6驱动Flappy Bird游戏教程
  • [SC]SystemC在CPU和GPU等复杂SoC验证中的应用
  • 鸿蒙OSUniApp导航栏组件开发:打造清新简约的用户界面#三方框架 #Uniapp
  • 力扣HOT100之动态规划:300. 最长递增子序列
  • EEPROM库详解
  • JDK21深度解密 Day 10:微服务架构适配JDK21
  • Java并发编程实战 Day 2:线程安全与synchronized关键字
  • 在win10/11下Node.js安装配置教程
  • 飞致云开源社区月度动态报告(2025年5月)
  • 压缩包方式在Linux和Windows下安装mongodb
  • 智慧场馆:科技赋能的艺术盛宴
  • flutter常用动画
  • Windows10下使用QEMU安装Ubuntu20.04虚拟机,并启用硬件加速
  • 《ChatGPT o3抗命:AI失控警钟还是成长阵痛?》
  • 题目 3293: 蓝桥杯2024年第十五届决赛真题-数位翻转
  • Reactor 和 Preactor
  • 【sa-token】 sa-token非 web 上下文无法获取 HttpServletRequest。
  • 论爱情《态度》
  • 多台电脑共用一个ip地址可以吗?会怎么样
  • 线程(上)【Linux操作系统】