wsc810 发表于 2012-11-7 08:58:18

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

d = 11 - 4 I; pell = -1; P = 0; Q = 1;
x = (P + Sqrt)/Q;
a = Round];
i = 0;
While[(x != 1/(x - a) && P != pell) || i == 1,
P = Q a - P;
Q = (d - P^2)/Q;
x = (P + Sqrt)/Q;
a = Round];
Print[{i, P, Q, a}]; i++];其中pell为事先要迭代停止的P值,等于-1则不用管它,P为P的初值,这里等于0也不用管它,现在的有两个问题,
一, 怎样修改代码,使得 P[ i ],Q[ i ],a [ i ]分别按照一维表的格式输出。
二, 怎样修改代码,在复平面上分别画出P[ i ],Q[ i ],a[ i ]点值分布图。
Mathematica我还不太熟悉,Any help will be appreciated !
程序运行的结果可以自己看

zgg___ 发表于 2012-11-7 10:52:40

呵呵,没有明白什么叫做高斯整数开平方呢。
所以弱弱的问一下,如果输入的是11-4I,那么要求输出的结果是什么呢?

郭先抢 发表于 2012-11-7 15:16:27

我猜他是为了求解pell方程而写的这个程序,不过我觉得没什么意思!
况且与其修改他写的程序,还不如我自己写一个呢

wsc810 发表于 2012-11-7 15:38:50

不错,是求解pell方程的函数,不过该程序是暂时先得到高斯整数的不尽根的连分式展开。

wsc810 发表于 2012-11-20 13:18:22

我想把把它用于大数分解,想动态利用P,Q,a的值,即即每次迭代后,不保留原来的值。用什么语句,帮帮我啊
页: [1]
查看完整版本: 稍修改下我的Mathematica代码,关于高斯整数开平方