내가하려고하는 것이 의미가 있는지 확실하지 않습니다. 저는 mathematica에서 몇 가지 코드를 프로토 타이핑하고 있습니다. 어느 날 C++로 작성하려고합니다. 내가 (MS VC++ 컴파일러를 사용함에 따라) 배정도로만 계산할 수있는 환경.mathematica에서 의미있는 오류 플롯을 만드는 법?
나는 함수 f를 근사화하는 다항식을 가지고 있으며, 나는 에러 곡선을 그리기를 원한다. 다항식의 계수는 정밀도를 계산하기 위해 계산되었습니다 (C++의 경우와 같음). 그러나 상대 오차를 플롯하면 수치 잡음의 음모를 얻을 수 있습니다. 다항식은 테일러 다항식이므로 오차는 매끄러운 곡선이 될 것으로 기대합니다. 어떻게하면 더 합리적인 줄거리를 얻을 수 있습니까? 아래의 코드는 Cos 함수를 테스트 케이스로 사용하여 수행하려는 작업을 보여줍니다. 음모의 결과는 수치적인 잡음뿐입니다.
f[x_] = Cos[x]
a[k_] := N[(-1)^k/(2*k)!]
approx[x_] := Sum[a[k]*x^(2*k), {k, 0, 12}]
Plot[approx[x]/f[x] - 1, {x, -Pi, Pi}, WorkingPrecision -> 30]
나는 계수 a[k]
이 계산되는 정밀도를 높일 수 있습니다.
a[k_] := N[(-1)^k/(2*k)!,30]
더 현명한 플롯을 얻기 위해서이지만 이것은 프로토 타입 코드의 목적에 어긋납니다. 왜냐하면 결국 C++로 작성한 근사값의 오류 플롯을 그래프로 나타 내기 때문입니다. 그리고 그 환경에서 계수는 배정도로만 계산됩니다.
나는이 테스트가 의미가 있다고 생각합니까 ?? 내 approximation 기계 정밀도에 대한 정확한 것으로 기대하지만 오류 곡선을 그릴 수 있습니까?
읽어 주셔서 감사합니다. Pi/2
또는 -Pi/2
중 하나를 포함하는 범위 approx[x]/Cos[x] - 1
계획을 세우고 모든