[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: polyfit questions
From: |
Georg P. Israel |
Subject: |
RE: polyfit questions |
Date: |
Thu, 27 Jul 2006 10:02:06 +0200 |
Dear Frank,
please look into the attachment.
It is a badly documented peace of octave code ;-).
Now some explanations to the function.
I try to do some some geometric lens distortion correction.
In this process, I do need to have a function that calculates the
relative distortion in function to the distance to the distortion
centre. This is r^2 = x^2 + y^2. Because the square root function is to
expensive, I do have to define the correction polynom as a function of
r^2.
Hence, my correction function is f(r) = polyval(a,r^2).
I have been able to find nice parameters "a" such that the distortion is
corrected.
However, for test, I like to find the inverse function that can use the
same infrastructure.
Best regards
Georg
On Wed, 2006-07-26 at 15:16 -0400, Frank Palazzolo wrote:
> Ok, why are you using f = x .* polyval(...) instead of f = polyval(...)?
>
> I tried doing this problem 2 ways myself, but the success of the
> least-squares fit to the inverse seems very dependant on the actual
> polynomial "a" used. Can you give us an "a" vector which you believe has an
> inverse in that form?
>
> Thanks,
> Frank
>
> -----Original Message-----
> From: address@hidden [mailto:address@hidden
> On Behalf Of Georg P. Israel
> Sent: Tuesday, July 25, 2006 11:37 AM
> To: address@hidden
> Subject: polyfit questions
>
>
> Dear Octave users,
>
> it seems that polyfit does not work for me.
> This is not a software issue, but it seems that I overlook some mathematical
> issues.
>
> I do have a function of the form of a polynome:
>
> f(x)= a0+a1*x^1+...+a6*x^6
>
> The function gets called with x:= X^2
> Hence, the actual function is of the order of 13 with all odd elements zero.
>
> I like to find the inverse function to this function such that:
>
> g(f(x)) = x
>
> g(y) should be notated in the same form as f(x).
> If I try to do this with a normal polynome where x:=X then the fitting works
> fine. But when I try to do the same with x:=X^2 then this stuff fails
> misserably. This means, the resulting approximated polynome is very much
> different form the original.
>
> Do I overlook something??
>
>
> To be more specific:
>
> x = [0:1:215];
> f(x) = x .* polyval(a,x.^2);
>
> now, I tried to find the g(y) that has the same form of a polynome as
> f(x) but approximates the inverse of this function.
>
> If I define f(x) = x .* polyval(a,x); and it's inverse similar then all
> works fine. But if I use a power of two then all fails.
>
> Has anybody an idea how to define this ???
>
> Looking very much forward reading about some nice suggestions.
>
> Georg P. Israel
> <info at CMOSVision.com>
>
>
>
> _______________________________________________
> Help-octave mailing list
> address@hidden https://www.cae.wisc.edu/mailman/listinfo/help-octave
>
cmv_fit.m
Description: Text Data