dharr

Dr. David Harrington

7269 Reputation

21 Badges

20 years, 166 days
University of Victoria
Professor or university staff
Victoria, British Columbia, Canada

Social Networks and Content at Maplesoft.com

Maple Application Center
I am a retired professor of chemistry at the University of Victoria, BC, Canada. My research areas are electrochemistry and surface science. I have been a user of Maple since about 1990.

MaplePrimes Activity


These are replies submitted by dharr

A float can be converted to a rational, so the following does something similar (note the decimal point to convert the fraction to a real) convert(77/45.,rational,3); # gives 12/7 convert(77/45.,rational,2); # gives 5/3
A float can be converted to a rational, so the following does something similar (note the decimal point to convert the fraction to a real) convert(77/45.,rational,3); # gives 12/7 convert(77/45.,rational,2); # gives 5/3
try nops (number of operands). I would have expected it to be under ?list, but I see it isn't (in v. 10), which does seems like a serious omission.
And yet, a/bc is usually interpreted in typeset notation as a/(b*c). In the International Union of Pure and Appled Chemistry rules: "In evaluating combinations of many factors, multiplication takes precedence over division in the sense that a/bc should be interpretaed as a/(bc) rather than (a/b)c; however in complex expressions it is desirable to use brackets to eliminate any ambiguity" Usually the IUPAP (physics) and IUPAC (chemistry) rules are in agreement, and when I write papers with my mathematics colleagure, we also use this convention, so I think it is fairly universal. (I am thinking as it it written on the page, i.e., output, here; I am not suggesting input a/b*c be interpreted this way, since (a/b)*c is the standard programming interpretation of input.)
You have solved x4=0 and x5=0, but x4=x2-x1 and x5=x3-x1, so no matter what x1 is, we must have x2=x3. So we really only have one equation x2=x3. If you solve this for C, you can get C as a function of L, but to get both L and C you need some more information.
Of course, I agree it is not a proof in the usual sense of the word; I was using it loosely. George used the word "verify", which would have been better. If the Logic package tests all the possibilities in a truth table is that more verified that if it hard codes that knowledge? I take the point of view with Maple that if it is hard coded in, then it is a piece of knowledge that has been proved elsewhere. Now perhaps there is a typo in some code that means that Maple is wrong, but that is a bit like an unfound error in a published proof. I accept that Maple is right as often as mathematicians, i.e., almost all of the time. Cheers, David.
Of course, I agree it is not a proof in the usual sense of the word; I was using it loosely. George used the word "verify", which would have been better. If the Logic package tests all the possibilities in a truth table is that more verified that if it hard codes that knowledge? I take the point of view with Maple that if it is hard coded in, then it is a piece of knowledge that has been proved elsewhere. Now perhaps there is a typo in some code that means that Maple is wrong, but that is a bit like an unfound error in a published proof. I accept that Maple is right as often as mathematicians, i.e., almost all of the time. Cheers, David.
This works without the logic package: evalb((not(a and b))=((not a) or (not b))); evalb((not(a or b))=((not a) and (not b))); again both returning true. These boolean operators can return fail, so are different from the others, but that isn't a problem here since you get true back. The = is "equivalent" in the context of evalb. I don't think you need implies here. Cheers, David.
This works without the logic package: evalb((not(a and b))=((not a) or (not b))); evalb((not(a or b))=((not a) and (not b))); again both returning true. These boolean operators can return fail, so are different from the others, but that isn't a problem here since you get true back. The = is "equivalent" in the context of evalb. I don't think you need implies here. Cheers, David.
I didn't look in the programming guide, but to show de Morgan's laws I would just do: with(Logic): Equivalent(¬(a &and b), (¬ a) &or (¬ b)); Equivalent(¬(a &or b), (¬ a) &and (¬ b)); Since both are true this is a proof. Cheers, David.
I didn't look in the programming guide, but to show de Morgan's laws I would just do: with(Logic): Equivalent(¬(a &and b), (¬ a) &or (¬ b)); Equivalent(¬(a &or b), (¬ a) &and (¬ b)); Since both are true this is a proof. Cheers, David.
note that x=10 (log(x)=1) is plotted one unit of length to the left of x=100 (log(x)=2). So moving left one unit each time, we plot x values of 100 10 1 0.1 0.01 1e-3 1e-4 1e-5 1e-6 Since log(0)= -infinity, very far left we get very small positive values, but we never get to negative x values.
note that x=10 (log(x)=1) is plotted one unit of length to the left of x=100 (log(x)=2). So moving left one unit each time, we plot x values of 100 10 1 0.1 0.01 1e-3 1e-4 1e-5 1e-6 Since log(0)= -infinity, very far left we get very small positive values, but we never get to negative x values.
This perfectly represents the Maple learning curve, and is very much the way I go about things, i.e., you eventually get it, and then contract it down. In simple cases like this, where I know where I am headed and just want to check it, I simplify the difference of my starting expression and my guess and check for zero; in your case that would be: simplify((tan(a)+tan(b))/(1-tan(a)*tan(b))-tan(a+b)); But it doesn't work! A quick fiddle and it does simplify(expand(tan(a)+tan(b))/(1-tan(a)*tan(b))-tan(a+b))); Cheers, David.
Glad it worked for you. Just a tip: diff(y(x), x, x, x, x); is simpler as diff(y(x), x, x, x, x); which can be further abbreviated as diff(y(x), x$4);
First 70 71 72 73 74 75 Page 72 of 75