AmirHosein Sadeghimanesh

225 Reputation

7 Badges

8 years, 282 days

Social Networks and Content at

Finished Ph.D. in Applied Algebraic Geometry in Biology and did postdoc in Mathematics of Chemical Reaction Networks, University of Copenhagen. Another postdoc in Nonlinear Dynamics in the Mathematical Models of Cell Biology at University of Szeged. Currently a research fellow at Coventry University. Main interests; Applied and Computational Algebraic Geometry, Computer Algebra, Mathematical Biology, Chemical Reaction Network Theory, Population Dynamics. I'm also a language lover!

MaplePrimes Activity

These are questions asked by AmirHosein Sadeghimanesh

Is there any reason why the intersectplot can't plot the following curve?

plots:-intersectplot( x^2 + b*x + c , b^2 - 4*c , b = -4..4, c = -4..4, x = -4..4, color = red );

But it can plot the next one!

plots:-intersectplot( x , b^2 - 4*c , b = -4..4, c = -4..4, x = -4..4, color = red );

The output in the two cases respectively are shown below.

I am a bit confused that why the color option in the following plot3d does not work.

plot3d( [ b, ( b^2 ) / 4, -b / 2 ], b = -4 .. 4, c = -4 .. 4, thickness = 5, color = red  ); 

The output is the following.

Let's say we have a procedure with an optional keyword option and a second procedure is calling this procedure and we want to give the user the option to set the kwarg of the first procedure in the second procedure as well. A simple example (just for the sake of the question, nothing meaningful in this example) is given below. Look at the kwarg "b" in test1. test2 is calling test1 and we want to have the option of setting "b" of test1 in test2 as well. But if I use "b = b" when calling test1, it doesn't work! I thought of using "`b` = b" and even "'b' = b", but they don't work either. One solution is to use a new name, say "c" and calling test1 by "b = c". But that is a bad choice. Because if you call test1 in so many other procedures, then you have to use so many names for one parameter, clearly this is not user friendly too, the user would prefer to remember a parameter by a fixed name. Is there any solution so that I can use the same name here?

test1 := proc( a :: posint, { b :: posint := 1 } ) :: posint:
	return( a + b ):
end proc:
test2 := proc( a :: posint, { b :: posint := 1 } ) :: posint:
	return( a * test1( a, b = b ) ):
end proc:
test3 := proc( a :: posint, { b :: posint := 1 } ) :: posint:
	return( a * test1( a, `b` = b ) ):
end proc:
test4 := proc( a :: posint, { c :: posint := 1 } ) :: posint:
	return( a * test1( a, b = c ) ):
end proc:

Declaring types of arguments of a procedure or checking type of something when working with lists or Arrays is easy. For example one can easily use A :: list( posint ) or type( B :: 'Array'( polynom ) ), but with MutableSet, the same approach ends with an error;

Error, module does not have a ModuleType member to accept structured type arguments.

I guess it is the same for other objects defined as a module with option object. Is there a recommended way to have type declaration for such objects or MutableSet in specific?

Very often it happens that using solve alone, gives huge expressions that can't be used. The simplest thing to do is to wrap it inside an evalf. But then sometimes, even your system only has real solutions, you may get some complex numbers. When this evalf(solve()) being used inside an algorithm, then disastrous consequences may arise! If the system consists of a single equation of a single variable, then you may have some more tools. But if you have a system of several equations in several variables, you have less options. I am mostly interested in polynomials, I know several approaches to use and code to solve and get only the real solutions, but my codes might be not very optimized. In Maple 2022, one predefined command which is nice is RootFinding:-Isolate but it has one issue and it is that this command only likes numeric coefficients which means integers, fraction of integers and float numbers, so no square root or other real numbers of this shape in the coefficients. I thought it might be a good idea to have a list of all solving commands in Maple that only return the real solutions or have the options to restrict to only real solutions. fsolve is not very ideal, because it only returns one solution.

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