Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

There has been a spate of Questions posted in the past week about computing eigenvalues. Invariably, the Questioners have computed some eigenvalues by applying fsolve to a characteristic polynomial obtained from a floating-point matrix via LinearAlgebra:-Determinant. They are then surprised when various tests show that these eigenvalues are not correct. In the following worksheet, I show that the eigenvalues computed by the fsolve@Determinant method (when applied to a floating-point matrix) are 100% garbage for dense matrices larger than about Digits x Digits. The reason for this is that computing the determinant introduces too much round-off error into the coefficients of the characteristic polynomial. The best way to compute the eigenvalues is to use LinearAlgebra:-Eigenvalues or LinearAlgebra:-Eigenvectors. Furthermore, very accurate results can be obtained without increasing Digits.

 

The correct and incorrect ways to compute floating-point eigenvalues

Carl Love 2016-Jan-18

restart:

Digits:= 15:

macro(LA= LinearAlgebra):

n:= 2^5:  #Try also 2^3 and 2^4.

A:= LA:-RandomMatrix(n):

A is an exact matrix of integers; Af is its floating-point counterpart.

Af:= Matrix(A, datatype= float[8]):

P:= LA:-CharacteristicPolynomial(A, x):

P is the exact characteristic polynomial with integer coefficients; Pf is the floating-point characteristic polynomial computed by the determinant method.

Pf:= LA:-Determinant(Af - LA:-DiagonalMatrix([x$n])):

RP:= [fsolve(P, complex)]:

RP is the list of floating-point eigenvalues computed from the exact polynomial; RPf is the list of eigenvalues computed from Pf.

RPf:= [fsolve(Pf, complex)]:

RootPlot:= (R::list(complexcons))->
     plot(
          [Re,Im]~(R), style= point, symbol= cross, symbolsize= 24,
          axes= box, color= red, labels= [Re,Im], args[2..]
     )
:

RootPlot(RP);

RootPlot(RPf);

We see that the eigenvalues computed from the determinant are completely garbage. The characteristic polynomial might as well have been x^n - a^n for some positive real number a > 1.

 

Ef is the eigenvalues computed from the floating-point matrix Af using the Eigenvalues command.

Ef:= convert(LA:-Eigenvalues(Af), list):

RootPlot(Ef, color= blue);

We see that this eigenvalue plot is visually indistinguishable from that produced from the exact polynomial. This is even more obvious if I plot them together:

plots:-display([RootPlot(Ef, color= blue), RootPlot(RP)]);

Indeed, we can compare the two lists of  eigenvalues and show that the maximum difference is exceedingly small.

 

The following procedure is a novel way of sorting a list of complex numbers so that it can be compared to another list of almost-equal complex numbers.

RootSort:= (R::list(complexcons))-> sort(R, key= abs*map2(`@`, signum+2, Re+Im)):


max(abs~(RootSort(RP) -~ RootSort(Ef)));

HFloat(1.3258049636636544e-12)

 

 

``

 

Download Eigenvalues.mw

I never expected that the reflected light direction of sun from moon in the sky would be so dificult to imagine ...

at the following article mentioned :

we derive an equation for the magnitude of the moon tilt illusion that can be applied to all con gurations of sun and moon in the sky.

THE MOON TILT ILLUSION

 

since the calculations contains many steps and high level mathematical formula , there is no way rather to recourse to maple (powerful math assistant )

I hope there was adaptations between a lots of functions and predefined schema of maple and this problem so that the calculations and visualization facilitated several times ?

your effort will be a graet present for all the people of the world that look to the moon crescent everytime !

 

hi.i trust that attached equation has more answer but fsolve only gain some of them!!! how i can gain another that i know value of them?

another root  that i known, are : 0.165237712988657e-1    and     .103583272213766    and    .290071279318035

thanks 

root.mw

Hi!

I am comptuing the eigenvalues and the characteristic polynomial of a 8 by 8 symmetric matrix, say M. Thus, we define the matrix M, and compute its charast. plynm. by

 

 

and its eigenvalues with the command

 

 

Well, Maple returns the charast. polynm. an dthe eigenvalues. But, if we compute p(E[k]), for k=1,...,8, thats is, the values of the polynomial p(x) in the eingenvalues, Maple not turns cero!!! I'm really confused ... anyone know what could be happening?

 

Maple attached file with this example. Thank very much for your help!!

 

Download exam_eigenvalues.mw

hi .how i can calculate eigenvector associated with the eigenvalue of the matrix.for example according attached file below

what are  eigenvector associated with the eigenvalue of matrix q which  determined as (2646.408147, 3142.030259, 6621.757707) respectively??

thanks...

eign.mw 

I would like to learn to use Maple to develop applications of math, physics, astronomy ecc.. . The problem is that I do not know where to start. Could you help me ? Thank you.

Blustar

I have some preferences for viewing. Specially, I prefer atomic variables to be showed with a different color. So I check mark the related option for this in the view menu. But every time I close and reopen the Maple, it just restore my setting for atomic variables. Suprisingly, this does not happen for other viewing options in the view menu! What should I do? Why is it like this?

A new Maple e-book, Multivariate Calculus Study Guide, is now available. Part of the Clickable Calculus collection of interactive Maple e-books, this guide takes full advantage of Maple’s Clickable Math approach. It has over 600 worked examples, the vast majority of which are solved using interactive, Clickable Math techniques. 

Deisgned to help students taking this course, instructors may also find this e-book useful as a guide to using Clickable Math to teach Multivariate Calculus.

See Multivariate Calculus Study Guide for more information.

 

eithne

plots[implicitplot3d](max(-x+y+z, x-y+z, x+y-z) = 1.0, x = 0 .. 1, y = 0 .. 1, z = 0 .. 1);

The help page for max does not explain or show an example of max(sequence of expressions)= a constant. 

hi.after calculate Determinant of matrix  and gain value omega'' ω'' by fsolve rule ,when substuting result (ω) in matrix (q) and calculate Determinant again, this value is not zero!!!! may i use LUDecomposition?determinan.mw

PLEASE..!! CAN ANYONE HELP ME IN CODING ON MAPPLE 13 TO CHANGE PDE INTO ODE??

MY FUNCTION IS THIS

U[t, t]-U[t, t, x, x]-(aU[]-b*U[]^3)[x, x] = 0

Should restart always be in separate execution group? I noticed when I write something like

>restart;
  foo:=proc()
  local sys;
  with(DynamicSystems):
  sys := TransferFunction(25/(s^2+4*s+25)):
  print(ResponsePlot(sys, Step(),duration=4));
end proc;
>

then type foo(); in the next execution group, it does not work. The plot is not generated. No matter how many times I evaluate the execution group. The proc() does not seem to be fully defined. But if I do this:

>restart;  #hit return
>foo:=proc()
  local sys;
  with(DynamicSystems):
  sys := TransferFunction(25/(s^2+4*s+25)):
  print(ResponsePlot(sys, Step(),duration=4));
end proc;
>#hit another return

and now calling foo(); then it works, and the proc() returns the plot. Only difference is that restart was in separate group. But also I had to call foo() once, then evaluate the execution group where foo() is defined two times ! for it to work (why two times?) why one time did not work? is it becuase I am loading package inside the proc()?

What are the rules for putting the restart() call? Should it always be in separate group? I put it in the same group, so that I do not have to hit return 2 times, being a lazy person. But it seems to cause problem sometimes.

And related question, why did I have to hit return 2 times in the execution group to have proc() work in the second case above?

 

Here is my unsuccessful try

>restart; plots:-contourplot(exp(2*x/(x^2+y^2)), x = -2 .. 2, y = -2 .. 2,
grid = [100, 100], coloring = [blue, red], contours = [.1, .3, .5, 1, 2]);

                                                                                 

Hi everybody,

I have some experimental data from an oscillating system (time domaine) and I would like to get an approximation of the damping ratio (zeta). I have already try to use the half-power band width method with the vibrationdata Matlab package designed by Tom Irvine. But I would like to double-check the result with another method.

I found several methods in this paper and I would like to try to do the curve fitting method with the Curve Fitting Toolbox of Maple or Matlab (R2014b) (2.2.2 Curve fitting in the paper). data.txt

It's the first I use this Toolbox with a custom equation, so, I do not really know how to do it with my sample data.

Can anybody help me with this ? I have attached the .txt file sample data to this post.

Cheers

Hi,

 

I was wondering how to go about plotting a Fourier Tranform in Maple.

My assignment is to plot a simple harmonic equation as a Fourier transform, depicting amplitude against fequency.

I've been given: x'' + w^2 x = 0

And want to obtain both the f(x) = a0 sin(wt) + b0cos(wt) form, and a graph of the the amplitude (c^2 =a0^2 + b0^2) against frequency.

I know how to do this on paper but not in Maple, so any help with line commands and layout would be very much appreciated.

 

Thanks

First 1192 1193 1194 1195 1196 1197 1198 Last Page 1194 of 2261