Items tagged with fsolve fsolve Tagged Items Feed

Hi,

we want to know what is the meaning of this statement?

We expect to have the following statement . But unfortunately we don,t get it

> with(difforms);
> sol := fsolve({diff(S, x) = 0, diff(S, y) = 0}, {x, y});


I do not take values above code.

Hello there

I'm quite an amature so please don't judge.  I'm trying to use fsolve to solve a system of non-linear equations but Maple is just "spitting" on me the equations with no intention to solve them:

> delta5 := P*(1+mu5)*((1-2*mu5)*x/(sqrt(x^2+zeq^2)*(sqrt(x^2+zeq^2)*x))+x*zeq/sqrt(x^2+zeq^2)^3)/(2*Pi*E5);
print(`output redirected...`); # input placeholder
> shrinkage := P*(1+mu5)*((1-2*mu5)*x/(sqrt(x^2+Zb^2)*(sqrt(x^2+Zb^2)*x))+x*Zb/sqrt(x^2+Zb^2)^3)/(2*Pi*E5)-P*(1+mu5)*((1-2*mu5)*x/(sqrt(x^2+Za^2)*(sqrt(x^2+Za^2)*x))+x*Za/sqrt(x^2+Za^2)^3)/(2*Pi*E5);
> eq10 := subs(x = 1800, delta5)+subs(x = 1800, Zb = z2, Za = z1, shrinkage)+subs(x = 1800, Zb = z3, Za = z2, shrinkage)+subs(x = 1800, Zb = z4, Za = z3, shrinkage)+subs(x = 1800, Zb = z5, Za = z4, shrinkage) = 36.7*10^(-3);
print(`output redirected...`); # input placeholder
> eq9 := subs(x = 1500, delta5)+subs(x = 1500, Zb = z2, Za = z1, shrinkage)+subs(x = 1500, Zb = z3, Za = z2, shrinkage)+subs(x = 1500, Zb = z4, Za = z3, shrinkage)+subs(x = 1500, Zb = z5, Za = z4, shrinkage) = 47.2*10^(-3);
print(`output redirected...`); # input placeholder
> eq8 := subs(x = 1200, delta5)+subs(x = 1200, Zb = z2, Za = z1, shrinkage)+subs(x = 1200, Zb = z3, Za = z2, shrinkage)+subs(x = 1200, Zb = z4, Za = z3, shrinkage)+subs(x = 1200, Zb = z5, Za = z4, shrinkage) = 63.8*10^(-3);
> eq7 := subs(x = 900, delta5)+subs(x = 900, Zb = z2, Za = z1, shrinkage)+subs(x = 900, Zb = z3, Za = z2, shrinkage)+subs(x = 900, Zb = z4, Za = z3, shrinkage)+subs(x = 900, Zb = z5, Za = z4, shrinkage) = 91.1*10^(-3);
print(`output redirected...`); # input placeholder
> eq6 := subs(x = 600, delta5)+subs(x = 600, Zb = z2, Za = z1, shrinkage)+subs(x = 600, Zb = z3, Za = z2, shrinkage)+subs(x = 600, Zb = z4, Za = z3, shrinkage)+subs(x = 600, Zb = z5, Za = z4, shrinkage) = 137.9*10^(-3);
> eq5 := subs(x = 450, delta5)+subs(x = 450, Zb = z2, Za = z1, shrinkage)+subs(x = 450, Zb = z3, Za = z2, shrinkage)+subs(x = 450, Zb = z4, Za = z3, shrinkage)+subs(x = 450, Zb = z5, Za = z4, shrinkage) = 175.2*10^(-3);
> eq4 := subs(x = 300, delta5)+subs(x = 300, Zb = z2, Za = z1, shrinkage)+subs(x = 300, Zb = z3, Za = z2, shrinkage)+subs(x = 300, Zb = z4, Za = z3, shrinkage)+subs(x = 300, Zb = z5, Za = z4, shrinkage) = 230.9*10^(-3);
print(`output redirected...`); # input placeholder
> sys := {eq10, eq5, eq6, eq7, eq8, eq9};
print(`output redirected...`); # input placeholder
> fsolve(sys, {E1 = 1000 .. 2000, E2 = 0 .. 2000, E3 = 0 .. 2000, E4 = 0 .. 2000, E5 = 0 .. 2000, h4 = 100 .. 400});

and this is what Maple gives after the fsolve

 

fsolve({(3937.500000*(.2/(202500+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)+(450*(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3)))/(202500+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)^(3/2)))/E5-0.3888888889e-2/E5+(3937.500000*(.2/(202500+(650+h4)^2)+(450*(650+h4))/(202500+(650+h4)^2)^(3/2)))/E5 = .1752000000, (3937.500000*(.2/(360000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)+(600*(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3)))/(360000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)^(3/2)))/E5-0.2187500000e-2/E5+(3937.500000*(.2/(360000+(650+h4)^2)+(600*(650+h4))/(360000+(650+h4)^2)^(3/2)))/E5 = .1379000000, (3937.500000*(.2/(810000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)+(900*(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3)))/(810000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)^(3/2)))/E5-0.9722222220e-3/E5+(3937.500000*(.2/(810000+(650+h4)^2)+(900*(650+h4))/(810000+(650+h4)^2)^(3/2)))/E5 = 0.9110000000e-1, (3937.500000*(.2/(1440000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)+(1200*(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3)))/(1440000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)^(3/2)))/E5-0.5468750000e-3/E5+(3937.500000*(.2/(1440000+(650+h4)^2)+(1200*(650+h4))/(1440000+(650+h4)^2)^(3/2)))/E5 = 0.6380000000e-1, (3937.500000*(.2/(2250000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)+(1500*(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3)))/(2250000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)^(3/2)))/E5-0.3500000000e-3/E5+(3937.500000*(.2/(2250000+(650+h4)^2)+(1500*(650+h4))/(2250000+(650+h4)^2)^(3/2)))/E5 = 0.4720000000e-1, (3937.500000*(.2/(3240000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)+(1800*(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3)))/(3240000+(146.0507832*(E1/E5)^(1/3)+197.1094212*(E2/E5)^(1/3)+295.6641318*(E3/E5)^(1/3)+1.*h4*(E4/E5)^(1/3))^2)^(3/2)))/E5-0.2430555555e-3/E5+(3937.500000*(.2/(3240000+(650+h4)^2)+(1800*(650+h4))/(3240000+(650+h4)^2)^(3/2)))/E5 = 0.3670000000e-1}, {E1, E2, E3, E4, E5, h4}, {E1 = 1000 .. 2000, E2 = 0 .. 2000, E3 = 0 .. 2000, E4 = 0 .. 2000, E5 = 0 .. 2000, h4 = 100 .. 400})

Hi everyone,

 

i'm trying to find out the euler angles from a rotation matrix.

I have a matrix that contains the result of multpilying the 3 axis rotation R(z,c)*R(y,b)*R(x,a) without knowing the values of the angles a,c,b (that's what I want to find out), so there are sinus and cosinus everywhere. There is another matrix containing the expected values that each equation in the first matrix will match.

My problem is that I eventually will change the order of the multiplication of the axis (i.e. R(x,a)*R(z,c)*R(y,b)) and I'm try to make maple compute this for me.

I defined R(x,a), R(y,b) and R(z,c) as follows:

Rx := Matrix (3,3, [1,0,0,0,cos(a),-sin(a),0,sin(a),cos(a)]);    
Ry := Matrix (3,3, [sin(b), 0, cos(b), 0, 1, 0, -sin(b), 0, cos(b)]);
Rz := Matrix (3,3, [cos(c), -sin(c), 0, sin(c), cos(c), 0, 0, 0, 1]);
and
RT := Multiply(Multiply(Rx,Rz),Ry);

Since here is alright. Now I want to match RT to the solution matrix.

g1 := RT[1,1] = mat[1,1];
g2 := RT[1,2] = mat[1,2];
g3 := RT[1,3] = mat[1,3];
g4 := RT[2,1] = mat[2,1];
g5 := RT[2,2] = mat[2,2];
g6 := RT[2,3] = mat[2,3];
g7 := RT[3,1] = mat[3,1];
g8 := RT[3,2] = mat[3,2];
g9 := RT[3,3] = mat[3,3];

soll := fsolve({g1,g2,g3,g4,g5,g6,g7,g8,g9},{a,b,c});

At this point I'm getting an error. I know that there are more equations than variables but the system is solvable anyway.
What maple trick can I do to solve this system or to find the good 3 equations?

 

Extra question:

Is there any method to match RT to mat without all those gX equations?

 

Thank you everyone.

The issue I am currently having is that, while analyticity (and physics) indicates a certain function must have roots, fsolve is having trouble finding them. In fact, I have even found roots manually in a certain region myself, simply inputting into the function various values until I found them. However, fsolve does not seem to want to find these roots, and I believe it is a numerics issue: when I changed the digits around, for extremely low values of Digits, it would find a root (even though it was incorrect). Further, this problem arose elsewhere in the domain of interest for other values of Digits (in particular, for Digits:=5, fsolve failed in a region it had not failed before).

The region of interest is the "peak" of the output of poleR(M0, 0.935, mK), which should be somewhere around M0 = 0.95 or so. However, because fsolve cannot find the roots, the plot cannot be made.

Anyone have any ideas as to why fsolve cannot find the roots? I was also experiencing issues with some of these functions having multiple roots, which itself is weird as well (note that I am working over the complex plane).

Attached is the document.

pole-dragging-mapleprimes.mw

Any ideas?

How can this error be corrected '' error, (in fsolve) fsolve cannot solve on 0=0 ''. See the worksheet p4.mw

Thanks.

Hi,

I have a problem solving two equations.  They are as follows:

s := 1/(273.16+50); s1 := 1/(273.16+145); s3 := 1/(273.16+250); s2 := 1/(273.16+197.5); gamma0 := 0.1e-3; gamma1 := .5; gamma2 := 0.15e-2; beta := -3800:

c := 300; n := 200; tau1 := 99; tau2 := 120;


Delta := solve(1-exp(-(gam0*tau1+(1/2)*gam1*tau1^2)*exp(beta*s1)) = 1-exp(-(gam0*a+(1/2)*gam1*a^2)*exp(beta*s2)), a);
a := Delta[1];


Theta := solve(1-exp(-(gam0*(a+tau2-tau1)+(1/2)*gam1*(a+tau2-tau1)^2)*exp(beta*s2)) = 1-exp(-(gam0*b+(1/2)*gam1*b^2)*exp(beta*s3)), b);
b := Theta[1];

n1 := int((gam1*t+gam0)*exp(beta*s1)*exp(-(gam0*t+(1/2)*gam1*t^2)*exp(beta*s1)), t = 0 .. tau1);
n22 := (n-n1)*(int((gam1*t+gam0)*exp(beta*s2)*exp(-(gam0*t+(1/2)*gam1*t^2)*exp(beta*s2)), t = a1 .. a1+tau2-tau1));
n2 := eval(n22, a1 = a);
n33 := (n-n1-n2)*(Int((gam1*t+gam0)*exp(beta*s3)*exp(-(gam0*t+(1/2)*gam1*t^2)*exp(beta*s3)), t = b1 .. c));
n3 := eval(n33, a1 = a);
n4 := n-n1-n2-n3;

g1 := -n1*(Int((1/(gam1*t+gam0)-t*exp(beta*s1))*(gamma2*t^2+gamma1*t+gamma0)*exp(beta*s1)*exp(-(gamma0*t+(1/2)*gamma1*t^2+(1/3)*gamma2*t^3)*exp(beta*s1)), t = 0 .. tau1))-n2*(Int((1/(gam0+gam1*(a+t-tau1))-(a+t-tau1)*exp(beta*s2))*(gamma0+gamma1*(a+t-tau1)+gamma2*(a+t-tau1)^2)*exp(beta*s2)*exp(-(gamma0*(a+t-tau1)+(1/2)*gamma1*(a+t-tau1)^2+(1/3)*gamma2*(a+t-tau1)^3)*exp(beta*s2)), t = tau1 .. tau2))-n3*(Int((1/(gam0+gam1*(b+t-tau2))-(b+t-tau2)*exp(s3))*(gamma0+gamma1*(b+t-tau2)+gamma2*(b+t-tau2)^2)*exp(beta*s3)*exp(-(gamma0*(b+t-tau2)+(1/2)*gamma1*(b+t-tau2)^2+(1/3)*gamma2*(b+t-tau2)^3)*exp(beta*s3)), t = tau2 .. c))+(n-n1-n2-n3)*(1/(gam0+gam1*(b+c-tau2))-(b+c-tau2)*exp(s3))*(gamma0+gamma1*(b+c-tau2)+gamma2*(b+c-tau2)^2)*exp(beta*s3)*exp(-(gamma0*(b+c-tau2)+(1/2)*gamma1*(b+c-tau2)^2+(1/3)*gamma2*(b+c-tau2)^3)*exp(beta*s3));

g2 := -n1*(Int((t/(gam1*t+gam0)-(1/2)*t^2*exp(beta*s1))*(gamma2*t^2+gamma1*t+gamma0)*exp(beta*s1)*exp(-(gamma0*t+(1/2)*gamma1*t^2+(1/3)*gamma2*t^3)*exp(beta*s1)), t = 0 .. tau1))-n2*(Int(((a+t-tau1)/(gam0+gam1*(a+t-tau1))-(1/2)*(a+t-tau1)^2*exp(beta*s2))*(gamma0+gamma1*(a+t-tau1)+gamma2*(a+t-tau1)^2)*exp(beta*s2)*exp(-(gamma0*(a+t-tau1)+(1/2)*gamma1*(a+t-tau1)^2+(1/3)*gamma2*(a+t-tau1)^3)*exp(beta*s2)), t = tau1 .. tau2))-n3*(Int(((b+t-tau2)/(gam0+gam1*(b+t-tau2))-(1/2)*(b+t-tau2)^2*exp(s3))*(gamma0+gamma1*(b+t-tau2)+gamma2*(b+t-tau2)^2)*exp(beta*s3)*exp(-(gamma0*(b+t-tau2)+(1/2)*gamma1*(b+t-tau2)^2+(1/3)*gamma2*(b+t-tau2)^3)*exp(beta*s3)), t = tau2 .. c))+(n-n1-n2-n3)*((b+c-tau2)/(gam0+gam1*(b+c-tau2))-(1/2)*(b+c-tau2)^2*exp(s3))*(gamma0+gamma1*(b+c-tau2)+gamma2*(b+c-tau2)^2)*exp(beta*s3)*exp(-(gamma0*(b+c-tau2)+(1/2)*gamma1*(b+c-tau2)^2+(1/3)*gamma2*(b+c-tau2)^3)*exp(beta*s3));


solve({g1 = 0, g2 = 0}, {gam0, gam1});

Warning, solutions may have been lost.

What do I do wrong?

Thanks for advice in advance.

 

I have a rather complex expression that I want to find the zero for as a function of two other parameters, i.e. I have a function

Denom := (s,M,g) -> stuff

that I want to find the zero of for a variety of values of M and g. In some cases the solution will be complex, which is entirely acceptable. However, the real part of the solution should never be negative, and yet that is the kind of result I am getting.

As an example (illustrated in the worksheet, when attempting to find the zero for M = 3 and g = 0.2, fsolve gives me s = -6.1 -1.4i. However, when I plot the function with the parameters input already, I can clearly see a zero at s = 9 with no imaginary component. Why won't fsolve find this zero? How can I make it do so?

See the bottom of the attached worksheet for the main problem.

 pole-dragging-mapleprimes.mw

Could anyone assist in rectifying this error ''Error, (in fsolve) {f[1], f[2], f[3], f[4], f[5], f[6], f[7], f[8], f[9], f[10], f[11], theta[11]} are in the equation, and are not solved for''. Here is the worksheet FDM_Revisit_1.mw

I am trying to find the root of an equation that involves a procedure and a definite integral (solved numerically). Of course, I don't need the root to be found symbolically, but numerically would be fine. The problem is, I keep getting the error

"Error, (in fsolve) Can't handle expressions with typed procedures"

whenever I try to solve it. Anyone have any ideas? My worksheet is here: Table-1-duplication-mapleprimes.mw 

 

What are the stopping criteria for fsolve?
I cannot find anything in the help page and there seems to be no way of adding an optional argument to fsolve about errors.

I was initially surprised by the results of the first two fsolve commands below:

restart;
infolevel[fsolve]:=2:
fsolve([x->1,x->3],[0.4,8]);
fsolve([x->1,x->3],[0..7,8..9]);
fsolve(x->1,0.4); #OK, returns unevaluated
fsolve([1,1],{x,y}); #OK, returns NULL

I assume that in the first two examples the criterion used is that at some point in the process the iterates [x(n+1),y(n+1)] and [x(n),y(n)] are close enough together and the difference between results from the two is small enough (clearly 0).

hello, i went solve these equation ,with a & b take any value

b*x*ln(x)-x*ln(a)+a=0

thank you

I have a nonlinear system with 4 equations and 4 unknowns. I am using fsolve. I know that there are multiple solutions for each variable but am only getting one. I need the others. what do I do??

This is my code:

R__1 := Matrix([[1, 0] , [0, 1] ]);

R__2 := Matrix([[1/2, sqrt(3)/2] , [-sqrt(3)/2, 1/2] ]);

R__3 := Matrix([[-1/2, sqrt(3)/2] , [-sqrt(3)/2, -1/2] ]);

R__4 := Matrix([[-1, 0] , [0, -1] ]);

R__5 := Matrix([[-1/2, -sqrt(3)/2] , [sqrt(3)/2, -1/2] ]);

 

d__1 := Vector( [ 0, 5.4] );

d__2 := Vector( [ 6.4, 4.539] );

d__3 := Vector( [ 11, 4.078] );

d__4 := Vector( [ 15.5, 2.079] );

d__5 := Vector( [ 19, 1.039] );

 

a := Vector( [ a__x, a__y] );

 

A__1:=R__1.a+d__1;

A__2:=R__2.a+d__2;

A__3:=R__3.a+d__3;

A__4:=R__4.a+d__4;

A__5:=R__5.a+d__5;

 

OO:=Vector([O__x,O__y]);

 

DA1:=A__2.A__2-A__1.A__1-2*(A__2-A__1).OO;

DA2:=A__3.A__3-A__1.A__1-2*(A__3-A__1).OO;

DA3:=A__4.A__4-A__1.A__1-2*(A__4-A__1).OO;

DA4:=A__5.A__5-A__1.A__1-2*(A__5-A__1).OO;

 

fsolve({DA1,DA2,DA3,DA4},{a__x,a__y,O__x,O__y});

Thanks for any tips you may be able to offer

 

Is it possible in Maple 15 to solve an equation with a parameter for a given set of parameters? How can this be passed to the solve function, should I use some kind of list?  After obtaining the solution how can I assign the solutions to variables such as x1 for the first value of the parameter, x2 for the second value of the parameters and so on. Furthermore, is this possible with the fsolve command?

 

Thanks

Hello I am a Maple 15 user and I am using the command fsolve to solve for the intersection of two curves over a specified interval in x, namely from 0 to the lim defined in the Maple document. The specified interval contains asymptotes and when I specify the full interval only one of the three solutions is returned even if I can see that there are three distinct solutions by looking at the plot of RHS and LHS. Should I use another technique to find the solution or is my implementation of fsolve command wrong?

Thanks in advance


restart

with(ListTools):

n1 := 1:

n2 := 1.50:

n3 := 1.40:

lambda := 1.3:

k0 := 2*Pi/lambda:

d := 3:

x0 := k0*d:

arg1 := sqrt(x0^2*(n2^2-n1^2)):

arg2 := sqrt(x0^2*(n2^2-n3^2)):

lim := FindMinimalElement([arg1, arg2]):

sqr1 := sqrt(x0^2*(n2^2-n1^2)-x^2):

sqr2 := sqrt(x0^2*(n2^2-n3^2)-x^2):

LHS := tan(x):

RHS := (sqr1+sqr2)/(x*(1-sqr1*sqr2/x^2)):

plot([LHS, RHS], x = 0 .. lim, y = -6 .. 6)

 

fsolve(RHS = LHS, x = (1/2)*Pi .. 3*Pi*(1/2))

2.634254816

(1)

fsolve(RHS = LHS, x = 3*Pi*(1/2) .. 9*Pi*(1/4))

5.222527128

(2)

fsolve(RHS = LHS, x = 9*Pi*(1/4) .. lim)

7.598486053

(3)

``


Download HW4Q2.mw

Hi

I have to numerically solve this equation many (tens of thousands) of times for theta_n (as I vary different parameters, especially n):

tan(theta_n) - C_a*Z_0*(-v^2*(Pi*n-theta_n)^2/x_l^2+omega_a^2)*x_l/(v*(Pi*n-theta_n)) = 0

theta_n should be in [-pi/2, pi/2). It seems like solving this is the slowest single component of the chain of calculations (that follow this).

Currently I do it with this function:

get_theta_n_array:=proc(max_n::integer, omega_a::float, v::float, x_l::float, C_a::float, Z_0::float)
    local theta_n_array:=Array(
        select(x->Re(x)<evalf(Pi/2) and Re(x)>=-evalf(Pi/2), [seq(
        #NOTE: careful with fsolve - in some cases returns unevaluated equation
        fsolve(tan(theta_n) - C_a*Z_0*(-v^2*(Pi*n-theta_n)^2/x_l^2+omega_a^2)*x_l/(v*(Pi*n-theta_n)) = 0, theta_n) , n=1..max_n)]
        , real)
        ,datatype=float[8]);
    if ArrayNumElems(theta_n_array) <> max_n then
        printf("Bad Array Dimensions! Got too many or not enough solutions.");
        theta_n_array:="CHECK: get_theta_n_array()": #dirrrrty hack that will ring an alarm bell if array is not the right size
    end;
    theta_n_array;
end;

And call it like so (for say n=1000)

st:=time();
result:=get_theta_n_array(1000, 100e9, 1e8, 0.3, 20e-14, 50.0);
time()-st;

This will take say 3.5s on my PC.

Does anyone have any ideas how to speed this up? I would hope this to take at least an order of magnitude less time. I played with DirectSearch lib but that was not faster.

Also, I should note that this is the only portion of my code that is not thread safe (because of the fsolve call), which leads to "extra" slowdowns because I have to use Grid:-Map, instead of Thread:-Map when parallelizing, and more importantly because I can't compile the rest of the code (Grid:-Map is not compatible with compiled functions).

Let me know if you have any ideas...

thanks!

1 2 3 4 5 6 7 Last Page 1 of 9