Don_Caraota

100 Reputation

5 Badges

7 years, 192 days

MaplePrimes Activity


These are questions asked by Don_Caraota

Hi,

Due to an unexpected maintenance operation, I had to uninstall Maple 18 from my Windows 7-64 bit PC.

Later on I installed it without any problems but, to my surprise now I can't configure it properly. This is:

* Enabling Maple Text as Input (classical input method)
* Removing numbers from equations
* Setting Maple language to English (it took Spanish by default because of Windows)
* Hiding left panel

As usual, this is performed under Tools/Options/Interface and so on...

After I modify my preferred settings, apply globally and close-open again, the program is again in its original form.

How can I do in this case? I have installed it several times. It is also worth noting that the maintenance that I performed was related to deep Windows registry modifications. 

Thanks and regards.

 


Hi, I am struggling a bit animating a result that I have.

Let me explain.

I solved numerically some equations for me movement of a rolling disc and a bar bolted to the center of the disc.

So I have a long list of values for:

x[h] for the horizontal position of the disc
beta[h] for the rotation of the disc
theta[h] for the rotation of the bar

and so on...

Then I created a procedure that, for a given instant "h", maple plots the disc and the bar correctly.

Now I want to anumate this procedure that should depend only on the instant h and I cannot perform it.
Maybe the error comes from the fact that there are not functions involved but numerical data, or maybe it is the fact that disc radius and bar lenght are assigned outside the procedure.

Any help would be appreciated.

This is the file:

Mechanics.mw
 

Hi, community

I want to take a series of plots and convert them into an image-type to export using the ImageTools (Write) command.

Something like this:

for i from 1 to N do

 x[i]:=procedure;    <--- This procedure has a plot as output

 y[i]:= ** convert x[i] into an image type ** <-- This is the part that I haven't figured out

 Write( filename[i], y[i]);

end do;

I don´t know if something like this is possible. Any hints or suggestions would be appreciated.

I guess I could generate N plots and then right click the images to save them... But N is large (hundreds of images) and it is not a nice option to sit all day long saving N images one by one.

Thanks and regards...

Hi, Maple community

I am trying to integrate a 3D data numerical set. I managed to execute an array interpolation algorithm and apply it to plot a smooth surface but I do not know how to integrate it numerically. I want to be able to integrate the data not only in its domain but also in sub-domains for multiple purposes.

I've found here a topic about it and tried to apply suggestions made with no success.

Here I copy the worksheet steps:

restart:
with(LinearAlgebra):
with(CurveFitting):
with(plots):

Initial Parameters

Nx:=8;    Points in the x direction
Nz:=6;    Points in the z direction
Lx:=3;    This means x goes from 0 to 3
Lz:=2;    This means z goes from 0 to 2
Delta[ze]:=evalf(Lz/(Nz-1));
Delta[xe]:=evalf(Lx/(Nx-1));

DataPn:=Matrix(Nx,Nz,0):         Matrix to store values in the 3rd direction

The following step is a function that I used to simulate data that I will later on will get by measurings.

for i from 1 to Nx do
 for j from 1 to Nz do
  DataPn[i,j]:=evalf(sin(Pi*(i-1)*Delta[xe]/Lx)*sin(Pi*(j-1)*Delta[ze]/Lz)):
 end do;
end do;

Setting data to use ArrayInterpolation

datax:=Array([seq((i-1)*Delta[xe],i=1..Nx)]);
dataz:=Array([seq((j-1)*Delta[ze],j=1..Nz)]);

In this step here, I don't really understand what this argument [[a],[b]] means but ArrayInterpolation cannot work without it.

MI:=(a,b)->ArrayInterpolation([datax, dataz],Array(DataPn),[[a],[b]],'method' = 'spline')[1,1];

Plot and display the interpolation and the real function to compare the quality of the interpolation, actually it does an excellent job, at least with this data.

G1:=plot3d(MI, datax[1]..datax[Nx], dataz[1]..dataz[Nz],labels=[x,z,Pn]);
G2:=plot3d(evalf(sin(Pi*x/Lx)*sin(Pi*z/Lz)),x=0..3,z=0..2,color=red);
display(G1,G2);

And finally I found this integration method here in mapleprimes

evalf(Int(x->evalf(Int( y->MI(x,y), 0..3,method=_d01akc)),0..2,method=_d01akc));

And the result is 1.102279199. I thought maybe I was setting wrongly the integration limits or the order in the command but in any case the result was near the analytic case which was:

int(evalf(sin(Pi*x/Lx)*sin(Pi*z/Lz)),x=0..3,z=0..2);

2.431708408

In this scenario I know the result is wrong because I can compute the exact solution, but later on I won't be able to do so. Also, later I'm interested in the integration, let's say, x from 0..0.5 and later from 0.5..1 and so on (keeping z always from 0 to 2) So, the main questions are:

1. Am I setting something wrong?
2. If I delete the method option in the integral, it takes a lot of time for the program to compute any result. Why?
3. Is there any other way to integrate this? I mean, any other way to write the command to compute the integral.
4. What does the [[a],[b]] argument stands for in ArrayInterpolation?

Regards and thanks for your help.

Hi Maple community

I'm running an algorithm where a non-linear equation system must be solved, in this case is a 26x26 system.

After 16116 succesful previous computations, fsolve stops giving me results.
I checked why and I was first expecting that, for some reason, the 26x26 system had an error and I ended with something like 25x26 or vice versa. But that was not the case.

So I tried the command solve and it not only worked fine but also gave me two results, but I only need one. I guess I could check for the wrong solution and discard it, but I still wondering why fsolve is failing and if there is anything to help fsolve not to fail.

These are the set of equations if somebody wants to check them:

EQ[16117][1] := W[1, 16117]*(-0.3860115660e-1*HRa[1, 16117]-0.1876793978e-1*ga[1, 16117]+0.7836678184e-1) = 2.040147478*10^6*SR[1, 16118], W[1, 16117]*(-0.3915554290e-1*HRa[1, 16117]-0.1903748329e-1*ga[1, 16117]+0.8260795999e-1) = 3.876387504, W[1, 16117]*(-0.1876794098e-1*HRa[1, 16117]-0.9892449327e-2*ga[1, 16117]+0.3810204607e-1) = 2.040147478*10^6*v[1, 16118], HLa[1, 16117] = .9724029753*ga[1, 16117]+HRa[1, 16117], NRa[1, 16117] = 0.7006679273e-1*HRa[1, 16117]-.1803623678*ga[1, 16117]+1.002451672, NLa[1, 16117] = 0.7006679273e-1*HRa[1, 16117]+.2484955248*ga[1, 16117]+1.002451672, SL[2, 16118] = SR[1, 16118], fra[1, 16117] = HRa[1, 16117]-HLa[2, 16117], fra[1, 16117] = .25*NRa[1, 16117]+.25*NLa[2, 16117], ga[1, 16117] = 0.;

EQ[16117][2] := W[2, 16117]*(-0.3860115660e-1*HRa[2, 16117]-0.1876793978e-1*ga[2, 16117]+0.7836678184e-1) = -2.040147478*10^6*SL[2, 16118]+7.152482840, W[2, 16117]*(-0.3915554290e-1*HRa[2, 16117]-0.1903748329e-1*ga[2, 16117]+0.8260795999e-1) = 3.876387504, W[2, 16117]*(-0.1876794098e-1*HRa[2, 16117]-0.9892449327e-2*ga[2, 16117]+0.3810204607e-1) = -1.983845478*10^6*SL[2, 16118]+5.221405977, HLa[2, 16117] = .9724029753*ga[2, 16117]+HRa[2, 16117], NRa[2, 16117] = 0.7006679273e-1*HRa[2, 16117]-.1803623678*ga[2, 16117]+1.002451672, NLa[2, 16117] = 0.7006679273e-1*HRa[2, 16117]+.2484955248*ga[2, 16117]+1.002451672, SL[3, 16118] = 0.3505865589e-5, fra[2, 16117] = HRa[2, 16117]-HLa[3, 16117];

EQ[16117][3] := W[3, 16117]*(-0.3860115660e-1*HRa[3, 16117]-0.1876793978e-1*ga[3, 16117]+0.7836678184e-1) = -2.040147478*10^6*SL[3, 16118]+10.82168541, W[3, 16117]*(-0.3915554290e-1*HRa[3, 16117]-0.1903748329e-1*ga[3, 16117]+0.8260795999e-1) = 3.876387504, W[3, 16117]*(-0.1876794098e-1*HRa[3, 16117]-0.9892449327e-2*ga[3, 16117]+0.3810204607e-1) = -1.983845478*10^6*SL[3, 16118]+8.751240594, HLa[3, 16117] = .9724029753*ga[3, 16117]+HRa[3, 16117], NRa[3, 16117] = 0.7006679273e-1*HRa[3, 16117]-.1803623678*ga[3, 16117]+1.002451672, NLa[3, 16117] = 0.7006679273e-1*HRa[3, 16117]+.2484955248*ga[3, 16117]+1.002451672, SL[4, 16118] = 0.5304364281e-5, fra[3, 16117] = HRa[3, 16117];

And after these the solving command that I used was:

SOL[j]:=fsolve({seq(EQ[j][n],n=1..N)},indets({entries(EQ[j],nolist)},assignable(name)));

Which returns

SOL[j]:=

As I said, then I tried the solve command:

SOL[j]:=solve({seq(EQ[j][n],n=1..N)},indets({entries(EQ[j],nolist)},assignable(name)));

which returns:

SOL[16117] :=

{HLa[1, 16117] = 1.011251860, HLa[2, 16117] = .5007913055, HLa[3, 16117] = -0.4240068535e-1, HRa[1, 16117] = 1.011251860, HRa[2, 16117] = .8728245835, HRa[3, 16117] = .2686716410, NLa[1, 16117] = 1.073306847, NLa[2, 16117] = .9685353734, NLa[3, 16117] = .9417827567, NRa[1, 16117] = 1.073306847, NRa[2, 16117] = 1.132612831, NRa[3, 16117] = 1.078974668, SL[2, 16118] = 0.1737463747e-5, SL[3, 16118] = 0.3505865589e-5, SL[4, 16118] = 0.5304364281e-5, SR[1, 16118] = 0.1737463747e-5, W[1, 16117] = 90.12372195, W[2, 16117] = 69.57451714, W[3, 16117] = 49.58407210, fra[1, 16117] = .5104605550, fra[2, 16117] = .9152252689, fra[3, 16117] = .2686716410, ga[1, 16117] = 0., ga[2, 16117] = -.3825916698, ga[3, 16117] = -.3199006320, v[1, 16118] = 8.447574110*10^(-7)},

{HLa[1, 16117] = 3.043461992, HLa[2, 16117] = 2.386862361, HLa[3, 16117] = -0.4240068535e-1, HRa[1, 16117] = 3.043461992, HRa[2, 16117] = 1.087485894, HRa[3, 16117] = .2686716410, NLa[1, 16117] = 1.215697293, NLa[2, 16117] = 1.410701230, NLa[3, 16117] = .9417827567, NRa[1, 16117] = 1.215697293, NRa[2, 16117] = .8376385519, NRa[3, 16117] = 1.078974668, SL[2, 16118] = 0.2032780481e-5, SL[3, 16118] = 0.3505865589e-5, SL[4, 16118] = 0.5304364281e-5, SR[1, 16118] = 0.2032780481e-5, W[1, 16117] = -106.0268094, W[2, 16117] = 265.7250566, W[3, 16117] = 49.58407210, fra[1, 16117] = .6565996307, fra[2, 16117] = 1.129886580, fra[3, 16117] = .2686716410, ga[1, 16117] = 0., ga[2, 16117] = 1.336253076, ga[3, 16117] = -.3199006320, v[1, 16118] = 9.883410782*10^(-7)}

Thanks in advance for any recommendations and suggestions.
 

1 2 3 Page 1 of 3