首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jacobi方法中的坐标对数标度图

Jacobi方法中的坐标对数标度图
EN

Stack Overflow用户
提问于 2017-12-15 23:24:53
回答 1查看 377关注 0票数 0

我必须用Jacobi,Gauss和SOR方法来求解Ax=b,我们使用分解A=M。

例如,对于Jacobi方法,我们使用M=diag(A)和N=M-A。

我编写了一个函数

代码语言:javascript
复制
jacobi(A,b,Imax,err,x0)

对于矩阵A,列向量b,最大迭代次数Imax,容差误差,用于Jacobi方法。我用了一个“停止测试”

哪里

是步骤k处的“残差”。

这是我的代码:

代码语言:javascript
复制
import numpy as np
import scipy.linalg as la

def jacobi(A,b,Imax,eps,x0):
    M=np.diag(np.diag(A))
    N=M-A
    r=np.dot(A,x0)-b
    x=x0
    i=0
    err=1+eps
    res=[]
    while ((i<Imax) and ((la.norm(r))>=eps)):
        x=np.dot(np.dot((la.inv(M)),N),x)+np.dot((la.inv(M)),b)
        r=np.dot(A,x)-b
        err = la.norm(r,2)
        res.append(err)
        i=i+1
    return (x,i,res)

而测试:

代码语言:javascript
复制
A=np.array([[2,0,0],[4,5.4,0],[7,8,9]])
x0=np.array([[1],[1],[1]])   
b=np.array([[20],[8],[7]])
print(jacobi(A,b,1000,10**(-3),x0))

现在,我必须在一个图(序数的对数标度)上表示这些值。

在n的函数中

我只想知道如何用对数表示图形?我是Python的初学者,我不知道如何表示一个图.我试着说清楚,抱歉我的英语不好.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-15 23:36:59

下面是一些虚拟值的日志图

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

j = np.power(10,range(10))    # <--- here use your computed values instead

plt.plot(j)
plt.yscale('log')
plt.show()

如果您想要日志,也可以设置xscale

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47841088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档