找回密码
 欢迎注册
查看: 9791|回复: 4

[提问] 稍修改下我的Mathematica代码,关于高斯整数开平方

[复制链接]
发表于 2012-11-7 08:58:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
  1. d = 11 - 4 I; pell = -1; P[0] = 0; Q[0] = 1;
  2. x[0] = (P[0] + Sqrt[d])/Q[0];
  3. a[0] = Round[x[0]];
  4. i = 0;
  5. While[(x[i] != 1/(x[0] - a[0]) && P[i] != pell) || i == 1,
  6.   P[i + 1] = Q[i] a[i] - P[i];
  7.   Q[i + 1] = (d - P[i + 1]^2)/Q[i];
  8.   x[i + 1] = (P[i + 1] + Sqrt[d])/Q[i + 1];
  9.   a[i + 1] = Round[x[i + 1]];
  10.   Print[{i, P[i], Q[i], a[i]}]; i++];
复制代码
其中pell为事先要迭代停止的P值,等于-1则不用管它,P[0]为P的初值,这里等于0也不用管它,现在的有两个问题,
一, 怎样修改代码,使得 P[ i ],Q[ i ],a [ i ]分别按照一维表的格式输出。
二, 怎样修改代码,在复平面上分别画出P[ i ],Q[ i ],a[ i ]点值分布图。
Mathematica我还不太熟悉,Any help will be appreciated !
程序运行的结果可以自己看
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-11-7 10:52:40 | 显示全部楼层
呵呵,没有明白什么叫做高斯整数开平方呢。
所以弱弱的问一下,如果输入的是11-4I,那么要求输出的结果是什么呢?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-11-7 15:16:27 | 显示全部楼层
我猜他是为了求解pell方程而写的这个程序,不过我觉得没什么意思!
况且与其修改他写的程序,还不如我自己写一个呢
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-11-7 15:38:50 | 显示全部楼层
不错,是求解pell方程的函数,不过该程序是暂时先得到高斯整数的不尽根的连分式展开。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-11-20 13:18:22 | 显示全部楼层
我想把把它用于大数分解,想动态利用P,Q,a的值,即即每次迭代后,不保留原来的值。用什么语句,帮帮我啊
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-19 19:50 , Processed in 0.055604 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表