【问题标题】:How to plot 2 functions with Julia如何用 Julia 绘制 2 个函数
【发布时间】:2019-08-30 22:18:08
【问题描述】:

我正在努力绘制评估函数和 Cbebyshev 近似。 我正在使用 Julia 1.2.0。

编辑:抱歉,添加了完整的代码。

using Plots
pyplot()
mutable struct Cheb_struct
    c::Vector{Float64}
    min::Float64
    max::Float64
end

function cheb_coeff(min::Float64, max::Float64, n::Int, fn::Function)::Cheb_struct
    struc = Cheb_struct(Vector{Float64}(undef,n), min, max)
    f = Vector{Float64}(undef,n)
    p = Vector{Float64}(undef,n)
    max_plus_min = (max + min) / 2
    max_minus_min = (max - min) / 2
    for k in 0:n-1
        p[k+1] = pi * ((k+1) - 0.5) / n
        f[k+1] = fn(max_plus_min + cos(p[k+1])*max_minus_min)
    end
    n2 = 2 / n
    for j in 0:n-1
        s = 0
        for i in 0:n-1
            s += f[i+1]*cos(j*p[i+1])
        struc.c[j+1] = s * n2
    end
end
    return struc
end

function approximate(struc::Cheb_struct, x::Float64)::Float64
    x1 = (2*x - struc.max - struc.min) / (struc.max - struc.min)
    x2 = 2*x1
    t = s = 0
    for j in length(struc.c):-1:2
        pom = s
        s = x2 * s - t + struc.c[j]
        t = pom
    end
    return (x1 * s - t + struc.c[1] / 2)
end

fn = sin
struc  = cheb_coeff(0.0, 1.0, 10, fn)
println("coeff:")

for x in struc.c
    @printf("% .15f\n", x)
end

println("\n     x         eval          approx      eval-approx")
for x in struc.min:0.1:struc.max
    eval = fn(x)
    approx   = approximate(struc, x)
    @printf("%11.8f %12.8f  %12.8f   % .3e\n", x,eval, approx, eval - approx)
    display(plot(x=eval,y=approx))
end

我的绘图窗口是空的。

如果有人知道如何绘制这两个函数,我将不胜感激。

【问题讨论】:

  • 请包含其他人可以尝试运行的工作代码。你还没有定义struc 和approximate,所以我们不能运行这段代码。此外,您似乎一次只绘制一个点,大概,您应该尝试一次绘制整条线。

标签: plot julia


【解决方案1】:

您应该提供一个工作代码作为示例。

但是下面的代码可以告诉你如何绘制:


using Plots
pyplot()
fn = sin
approxf(x) = sin(x)+rand()/10
x = 0:0.1:1
evalv = fn.(x)
approxv   = approxf.(x)
p = plot(evalv,approxv)
using PyPlot
PyPlot.display_figs() #needed when running in IDE such as Atom

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多