Carl Love

Carl Love

28055 Reputation

25 Badges

13 years, 2 days
Himself
Wayland, Massachusetts, United States
My name was formerly Carl Devore.

MaplePrimes Activity


These are replies submitted by Carl Love

@billyp245 

You have a line of code

A:= a-> sqrt(1/I1);

where I1 is an expression that depends on (global) a. This global a is "hidden" inside the expression I1. It is not matched with the parameter a that is on the left side of the ->. This is a very common problem in Maple. The solution is a command called unapply, used thus:

A:= unapply(sqrt(1/I1), a);

This defines A as a function, just like the arrow -> does, but it also associates the parameter a with the global a hidden in I1. Once you make this one change, the rest of the worksheet will work.

Here are two ways that you can select the correct (real) amin. The first way, which I recommend in this case, is to include option useassumptions in the solve command:

amin:= solve(D2, a, useassumptions);

This'll produce only the one solution, and it'll get rid of that warning.

I showed the second way in the Reply above:

amin:= solve(D2, a):
amin:= remove(has, [amin], I)[];

Putting your comments in quotes is very clunky. You can switch between text mode and math mode with Ctrl-T and Ctrl-R, respectively. What you type in text mode will not be interpretted as code, and thus there's no need to use quotes.

Why do you want to write a procedure to find the inverse of a floating-point matrix?

Your C^T/Det(A) formula can be easily implemented by

Inv:= proc(A::Matrix(square))
uses LA_D= LinearAlgebra:-Determinant;
     Matrix(op(1,A), (i,j)-> (-1)^(i+j)*LA_D(A[[..i-1, i+1..], [..j-1, j+1..]]))^+/LA_D(A)
end proc:

The reason for the "bad index" error is that you're trying to index A with the undefined names a[k] and b[k]. A matrix's indices must be numbers, not names.

 

@torabi I think that the existence of a trivial solution will make it much more difficult to find a nontrivial solution---if one exists at all. But I must defer on this point to those members who have more knowledge of the theory of differential equations.

Also, omega being unknown will be a problem unless you can come up with one more boundary condition. If you can make it a nonzero boundary condition, it'll solve the first problem also.

@Christopher2222 When you use the transparency option with a plot command, it is applied to the whole plot. The help page ?plot,options is incorrect where it says "This option specifies the transparency of the plot surface," [emphasis added] because it's applied to the curves also. But when you use filled, the transparency is only set for the shaded region, not the bordering curve, and the value used is 0.4. This is exactly what my code does.

@billyp245 The original equation is degree three in a, so it has three solutions. Only one is real. The real solution can be selected automatically if you wish.

In order to diagnose the problem of it not evaluating the a, I'll need the actual worksheet, which you can easily upload here.

On the other hand, the following code works:

E:= a-> a*h^2/2/m + 1/sqrt(2*Pi*a):
Sol:= solve(D(E)(a), a):
amin:= remove(has, [Sol], I)[]:
simplify(E(amin));

The trivial solution g(x)=0, s(x)=0 (for all x) is a solution to your system for any omega.

@acer So, if we make a dumb intermediate procedure that converts a module to a name, then it works:

ModuleToName:= proc(M::`module`) local N:= M; evaln(N) end proc:
MyPDF:= v-> t-> piecewise(t<0, 0, t<v, 1/v):

Statistics:-Mean(ModuleToName(Statistics:-Distribution(PDF= MyPDF(1))));

@Kitonum My solution (below) attempts to retain all the options from the original plot.

@vv This doesn't address the main issue: that the intermediate assignment to myD is necessary. The curry isn't doing anything special here. We still have that

myPDF := (v,t) -> piecewise(t < 0, 0, t < v, 1/v, 0):
Statistics:-Mean(Statistics:-Distribution(PDF = curry(myPDF, 1)));

produces the error.

@MortenZdk It doesn't work because fsolve requires a numeric x.

@adrian5213 

You need to compensate for the extra square brackets that you added in the previous step. So the next step should be Do(C= table(HD)) instead of Do(C= table([HD])). However, I'll defer to Acer on this point, if he has anything more to say.

@Markiyan Hirnyk 

A:= Array((1..3)$3,  (i,j,k)-> x[i,j,k]);

would be a more-appropriate analog to the symbol option of Matrix and Vector.

@tomleslie The OP was probably trying

plot(Prev(p), p= 0..1);

@Joe Riel Markiyan is referring to the Active Conversations menu. It gives only the title lines.

@MortenZdk You have 10 reputation points now. Also, it doesn't require any reputation points to select an Answer as the Best Answer.

First 421 422 423 424 425 426 427 Last Page 423 of 709