Tuesday, August 31, 2010

Wiki's Table of Binary Logical Connectives in Griceian Key

by JLS
for the GC

Again, this below should better be copied and pasted in the right enriched text, but provide way or bear with it. I was trying to see if I could recover some of the nicey displays in wiki.

Table of binary logical connectives

"There are sixteen Boolean functions associating the inputs P and Q with four-digit binary outputs."

1. Contradiction
Notation Equivalent
formulas Truth table Venn diagram
P ¬P Q
0 1
P 0 0 0
1 0 0

2. Tautology
Notation Equivalent
formulas Truth table Venn diagram
P ¬P Q
0 1
P 0 1 1
1 1 1

3. Conjunction
Notation Equivalent
formulas Truth table Venn diagram
P Q
P & Q
P · Q
P AND Q P ¬Q
¬P Q
¬P ¬Q Q
0 1
P 0 0 0
1 0 1

4. Alternative denial Notation Equivalent
formulas Truth table Venn diagram
P ↑ Q
P | Q
P NAND Q P → ¬Q
¬P ← Q
¬P ¬Q Q
0 1
P 0 1 1
1 1 0

5. Material nonimplication
Notation Equivalent
formulas Truth table Venn diagram
P Q
P Q P & ¬Q
¬P ↓ Q
¬P ¬Q Q
0 1
P 0 0 0
1 1 0

6. Material implication
Notation Equivalent
formulas Truth table Venn diagram
P → Q
P Q P ↑ ¬Q
¬P Q
¬P ← ¬Q Q
0 1
P 0 1 1
1 0 1

7. Proposition P
Notation Equivalent
formulas Truth table Venn diagram
P Q
0 1
P 0 0 0
1 1 1

8. Negation of P
Notation Equivalent
formulas Truth table Venn diagram
¬P
~P Q
! 0 1
P 0 1 1
1 0 0

9. Con! verse no nimplication
Notation Equivalent
formulas Truth table Venn diagram
P Q
P Q P ↓ ¬Q
¬P & Q
¬P ¬Q Q
0 1
P 0 0 1
1 0 0

10. Converse implication
Notation Equivalent
formulas Truth table Venn diagram
P Q
P Q P ¬Q
¬P ↑ Q
¬P → ¬Q Q
0 1
P 0 1 0
1 1 1

11. Proposition Q
Notation Equivalent
formulas Truth table Venn diagram
Q Q
0 1
P 0 0 1
1 0 1

12. Negation of Q
Notation Equivalent
formulas Truth table Venn diagram
¬Q
~Q Q
0 1
P 0 1 0
1 1 0

13. Exclusive disjunction
Notation Equivalent
formulas Truth table Venn diagram
P Q
P Q
P Q
P XOR Q P ¬Q
¬P Q
¬P ¬Q Q
0 1!
P 0 0 1
1 1 0

14. Biconditional
Notation Equivalent
formulas Truth table Venn diagram
P Q
P ≡ Q
P XNOR Q
P IFF Q P ¬Q
¬P Q
¬P ¬Q Q
0 1
P 0 1 0
1 0 1

15. Disjunction
Notation Equivalent
formulas Truth table Venn diagram
P Q
P ∨ Q
P OR Q P ¬Q
¬P → Q
¬P ↑ ¬Q Q
0 1
P 0 0 1
1 1 1

16. Joint denial
Notation Equivalent
formulas Truth table Venn diagram
P ↓ Q
P NOR Q P ¬Q
¬P Q
¬P & ¬Q Q
0 1
P 0 1 0
1 0 0

venn diagram formulas

Book Sample: Matplotlib for Python Developers - Plotting Data


Today's post is a sample from the new book: "Matplotlib for Python Developers" by Sandro Tosi. I will review the book in an upcoming post.

-Corey



Disclosure: Packt Publishing sent me a free copy of this book to review.




Matplotlib for Python Developers


http://www.packtpub.com/matplotlib-python-development/book





Matplotlib for Python Developers


In this two-part article, by Sandro Tosi you will see several examples of Matplotlib usage in real-world situations, showing some of the common cases where we can use Matplotlib to draw a plot of some values.

There is a common workflow for this kind of job:

  1. Identify the best data source for the information we want to plot
  2. Extract the data of interest and elaborate it for plotting
  3. Plot the data

Usually, the hardest part is to extract and prepare the data for plotting. Due to this, we are going to show several examples of the first two steps.


The examples are:

  • Plotting data from a database
  • Plotting data from a web page
  • Plotting the data extracted by parsing an Apache log file
  • Plotting the data read from a comma-separated values (CSV) file
  • Plotting extrapolated data using curve fitting
  • Third-party tools using Matplotlib (NetworkX and mpmath)

Let's begin

Plotting data from a database

Databases often tend to collect much more information than we can simply extract and watch in a tabular format (let's call it the "Excel sheet" report style).

Databases not only use efficient techniques to store and retrieve data, but they are also very good at aggregating it.

One suggestion we can give is to let the database do the work. For example, if we need to sum up a column, let's make the database sum the data, and not sum it up in the code. In this way, the whole process is much more efficient because:

  • There is a smaller memory footprint for the Python code, since only the aggregate value is returned, not the whole result set to generate it
  • The database has to read all the rows in any case. However, if it's smart enough, then it can sum values up as they are read
  • The database can efficiently perform such an operation on more than one column at a time

The data source we're going to query is from an open source project: the Debian distribution. Debian has an interesting project called UDD , Ultimate Debian Database, which is a relational database where a lot of information (either historical or actual) about the distribution is collected and can be analyzed.

On the project website http://udd.debian.org/, we can fi nd a full dump of the database (quite big, honestly) that can be downloaded and imported into a local PostgreSQL instance (refer to http://wiki.debian.org/UltimateDebianDatabase/CreateLocalReplica for import instructions

Now that we have a local replica of UDD, we can start querying it:

# module to access PostgreSQL databases import psycopg2 # matplotlib pyplot module import matplotlib.pyplot as plt  

Since UDD is stored in a PostgreSQL database, we need psycopg2 to access it. psycopg2 is a third-party module available at http://initd.org/projects/psycopg

# connect to UDD database conn = psycopg2.connect(database="udd") # prepare a cursor cur = conn.cursor()  

We will now connect to the database server to access the udd database instance, and then open a cursor on the connection just created.

# this is the query we'll be making query = """ select to_char(date AT TIME ZONE 'UTC', 'HH24'), count(*) from upload_history where to_char(date, 'YYYY') = '2008' group by 1 order by 1"""   

We have prepared the select statement to be executed on UDD. What we wish to do here is extract the number of packages uploaded to the Debian archive (per hour) in the whole year of 2008.

  • date AT TIME ZONE 'UTC': As date field is of the type timestamp with time zone, it also contains time zone information, while we want something independent from the local time. This is the way to get a date in UTC time zone.
  • group by 1: This is what we have encouraged earlier, that is, let the database do the work. We let the query return the already aggregated data, instead of coding it into the program.
# execute the query cur.execute(query) # retrieve the whole result set data = cur.fetchall() 

We execute the query and fetch the whole result set from it.

# close cursor and connection cur.close() conn.close()  

Remember to always close the resources that we've acquired in order to avoid memory or resource leakage and reduce the load on the server (removing connections that aren't needed anymore).

# unpack data in hours (first column) and # uploads (second column) hours, uploads = zip(*data)  

The query result is a list of tuples, (in this case, hour and number of uploads), but we need two separate lists—one for the hours and another with the corresponding number of uploads. zip() solves this with *data, we unpack the list, returning the sublists as separate arguments to zip(), which in return, aggregates the elements in the same position in the parameters into separated lists. Consider the following example:

In [1]: zip(['a1', 'a2'], ['b1', 'b2']) Out[1]: [('a1', 'b1'), ('a2', 'b2')] 

To complete the code:

# graph code plt.plot(hours, uploads) # the the x limits to the 'hours' limit plt.xlim(0, 23) # set the X ticks every 2 hours plt.xticks(range(0, 23, 2)) # draw a grid plt.grid() # set title, X/Y labels plt.title("Debian packages uploads per hour in 2008") plt.xlabel("Hour (in UTC)") plt.ylabel("No. of uploads")  

The previous code snippet is the standard plotting code, which results in the following screenshot:

From this graph we can see that in 2008, the main part of Debian packages uploads came from European contributors. In fact, uploads were made mainly in the evening hours (European time), after the working days are over (as we can expect from a voluntary project).


Plotting data from the Web

Often, the information we need is not distributed in an easy-to-use format such as XML or a database export but for example only on web sites.

More and more often we find interesting data on a web page, and in that case we have to parse it to extract that information: this is called web scraping .

In this example, we will parse a Wikipedia article to extracts some data to plot. The article is at http://it.wikipedia.org/wiki/Demografia_d'Italia and contains lots of information about Italian demography (it's in Italian because the English version lacks a lot of data); in particular, we are interested in the population evolution over the years.

Probably the best known Python module for web scraping is BeautifulSoup ( http://www.crummy.com/software/BeautifulSoup/). It's a! really nice library that gets the job done quickly, but there are situations (in particular with JavaScript embedded in the web page, such as for Wikipedia) that prevent it from working.

As an alternative, we find lxml quite productive (http://codespeak.net/lxml/). It's a library mainly used to work with XML (as the name suggests), but it can also be used with HTML (given their quite similar structures), and it is powerful and easy–to-use.

Let's dig into the code now:

# to get the web pages import urllib2 # lxml submodule for html parsing from lxml.html import parse # regular expression module import re # Matplotlib module import matplotlib.pyplot as plt  

Along with the Matplotlib module, we need the following modules:

  • urllib2: This is the module (from the standard library) that is used to access resources through URL (we will download the webpage with this).
  • lxml: This is the parsing library.
  • re: Regular expressions are needed to parse the returned data to extract the information we need. re is a module from the standard library, so we don't need to install a third-party module to use it.
# general urllib2 config user_agent = 'Mozilla/5.0 (compatible; MSIE 5.5; Windows NT)' headers = { 'User-Agent' : user_agent } url = "http://it.wikipedia.org/wiki/Demografia_d'Italia"

Here, we prepare some configuration for urllib2, in particular, the user_agent header is used to access Wikipedia and the URL of the page.

# prepare the request and open the url req = urllib2.Request(url, headers=headers) response = urllib2.urlopen(req) 

Then we make a request for the URL and get the HTML back.

# we parse the webpage, getroot() return the document root doc = parse(response).getroot() 

We parse the HTML using the parse() function of lxml.html and then we get the root element. XML can be seen as a tree, with a root element (the node at the top of the tree from where every other node descends), and a hierarchical structure of elements.

# find the data table, using css elements table = doc.cssselect('table.wikitable')[0]  

We leverage the structure of HTML accessing the first element of type table of class wikitable because that's the table we're interested in.

# prepare data structures, will contain actual data years = [] people = []

Preparing the lists that will contain the parsed data.

# iterate over the rows of the table, except first and last ones for row in table.cssselect('tr')[1:-1]: 

We can start parsing the table. Since there is a header and a footer in the table, we skip the first and the last line from the lines (selected by the tr tag) to loop over.

# get the row cell (we will use only the first two) data = row.cssselect('td') 

We get the element with the td tag that stands for table data: those are the cells in an HTML table.

# the first cell is the year tmp_years = data[0].text_content() # cleanup for cases like 'YYYY[N]' (date + footnote link) tmp_years = re.sub('[.]', '', tmp_years) 

We take the first cell that contains the year, but we need to remove the additional characters (used by Wikipedia to link to footnotes).

# the second cell is the population count tmp_people = data[1].text_content() # cleanup from '.', used as separator tmp_people = tmp_people.replace('.', '') 

We also take the second cell that contains the population for a given year. It's quite common in Italy to separate thousands in number with a '.' character: we have to remove them to have an appropriate value.

# append current data to data lists, converting to integers years.append(int(tmp_years)) people.append(int(tmp_people))  

We append the parsed values to the data lists, explicitly converting them to integer values.

# plot data plt.plot(years,people) # ticks every 10 years plt.xticks(range(min(years), max(years), 10)) plt.grid() # add a note for 2001 Census plt.annotate("2001 Census", xy=(2001, people[years.index(2001)]), xytext=(1986, 54.5*10**6), arrowprops=dict(arrowstyle='fancy'))  

Running the example results in the following screenshot that clearly shows why the annotation is needed:

In 2001, we had a national census in Italy, and that's the reason for the drop in that year: the values released from the National Institute for Statistics (and reported in the Wikipedia article) are just an estimation of the population. However, with a census, we have a precise count of the people living in Italy.




Plotting data by parsing an Apache log file

Plotting data from a log file can be seen as the art of extracting information from it.

Every service has a log format different from the others. There are some exceptions of similar or same format (for example, for services that come from the same development teams) but then they may be customized and we're back at the beginning.

The main differences in log files are:

  • Fields orders: Some have time information at the beginning, others in the middle of the line, and so on
  • Fields types: We can find several different data types such as integers, strings, and so on
  • Fields meanings: For example, log levels can have very different meanings

From all the data contained in the log file, we need to extract the information we are interested in from the surrounding data that we don't need (and hence we skip).

In our example, we're going to analyze the log file of one of the most common services: Apache. In particular, we will parse the access.log file to extract the total number of hits and amount of data transferred per day.

Apache is highly configurable, and so is the log format. Our Apache configuration, contained in the httpd.conf file, has this log format:

"%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" 

In this way, we extract the day of the request along with the response size from every line.

# prepare dictionaries to contain the data day_hits = {} day_txn = {}  

These dictionaries will store the parsed data.

# we open the file with open('<location of the Apache>/access.log') as f: # and for every line in it for line in f: 

we open the file (we have to select the proper location of access.log as it differs between operating systems and/or installation), and for every line in it

# we pass the line to regular expression m = apa_line.match(line) # and we get the 2 values matched back day, call_size = m.groups()  

We parse the line and take the resulting values.

# if the current day is already present if day in day_hits: # we add the call and the size of the request day_hits[day] += 1 day_txn[day] += int(call_size) 

else if the current day is already present in the dictionaries, then add the hit and the size to the respective dictionaries.

else: # else we initialize the dictionaries day_hits[day] = 1 day_txn[day] = int(call_size)  

If the current day is not present, then we need to initialize the dictionaries for a new day.

# prepare a list of the keys (days) keys = sorted(day_hits.keys())  

We prepare a sorted list of dictionary keys, since we need to access it several times.

# prepare a figure and an Axes in it fig = plt.figure() ax1 = fig.add_subplot(111)  

We prepare a Figure and an Axes in it.

# bar width width = .4 

We define the bars width.

# for each key (day) and it's position for i, k in enumerate(keys): 

Then we enumerate the item in keys so that we have a progressive number associated with each key.

# we plot a bar ax1.bar(i - width/2, day_hits[k], width=width, color='y')  

Now we can plot a bar at position i (but shifted by width/2 to center the tick) with its height proportional to the number of hits, and width set to width. We set the bar color to yellow.

# for each label for the X ticks for label in ax1.get_xticklabels(): # we hide it label.set_visible(False) 

We hide the labels on the X-axis to avoid its superimposition with the other Axes labels (for transfer size).

# add a label to the Y axis (for the first plot) ax1.set_ylabel('Total hits') 

We set a label for the Y-axis.

# create another Axes instance, twin of the previous one ax2 = ax1.twinx() 

We now create a second Axes, sharing the X-axis with the previous one.

# plot the total requests size ax2.plot([day_txn[k] for k in keys], 'k', linewidth=2)  

We plot a line for the transferred size, using the black color and with a bigger width.

# set the Y axis to start from 0 ax2.set_ylim(ymin=0)  

We let the Y-axis start from 0 so that it can be congruent with the other Y-axis.

# set the X ticks for each element of keys (days) ax2.set_xticks(range(len(keys))) # set the label for them to keys, rotating and align to the right ax2.set_xticklabels(keys, rotation=25, ha='right') 

We set the ticks for the X-axis (that will be shared between this and the bar plot) and the labels, rotating them by 25 degrees and aligning them to the right to better fit the plot.

# set the formatter for Y ticks labels ax2.yaxis.set_major_formatter(FuncFormatter(megabytes)) # add a label to Y axis (for the second plot) ax2.set_ylabel('Total transferred data (in Mb)')  

Then we set the formatter for the Y-axis so that the labels are shown in megabytes (instead of bytes).

# add a title to the whole plot plt.title('Apache hits and transferred data by day 

Finally, we set the plot title.

On executing the preceding code snippet, the following screenshot is displayed:

The preceding screenshot tells us that it is not a very busy server, but it still shows what's going on.


Continue Reading Plotting data using Matplotlib: Part 2

tabular format example

Statics tutorial

Answers for statics tutorial

Dear all,

this is the complete set for answer. please circulate it to your firends and coursemates too.
ps: for tutorial 6, i had make a big mistake regarding compression and tension force. please refer back to your text book for the correct way to determine the compression and tension.

Regards,TanYQ

statics tutorial

Simplifying Radical Expressions

My Algebra I students are having lots of problems with simplifying radical expressions. It seems that they have run across a concept that eludes them. I am posting about this topic to provide several more examples.

√18

First, we find the prime factorization of 18. If you need help with this concept, go here.

√18 = √(2•3•3)

Since the 3 is repeated twice, we can pull it out from under the square root symbol. Therefore,

√18 = 3√2

Now my students would be asking what happens if you have variables?

√24x3y2

√24x3y2 = √(2•2•2•3•x•x•x•y•y)

Pull out everything that is repeated twice - 2, x, y. Leave everything else under the radical symbol.

2xy√(6x)

! Some other places to visit for more details on this concept are here and here and here.

If you are one of my students and would like some extra credit, please visit those sites and comment here on whether or not they were helpful.

solving radicals

Mixed Fractions

By: Marygrace Dela Cruz


Definition of a mixed fraction:
- mixed fractions are a combination of a whole number and a fraction.
- it can be converted into an improper fraction.



Example:

This album is powered by BubbleShare - Add to my blog

solving fractions

Have questions about math problems

Have questions about math problems, get help on this website. You will learn the toughest questions with the easiest way to solve it!!

solve mathproblems

Developing Writing Skills: A Paragraph

What is the first thing you think about when you start writing an dissertation? Probably, you think about your topic. You need to define it, and think of the ways to open it better. If it is high school essay writing, you go online to find tips for writing an dissertation. And the beautiful world of Internet tells you stories about five-paragraph dissertation writing. But even after this you think about the entire concept. And then you set to work, write down the words that form sentences, go over the entire essay writing, and realize that something's wrong with it. Do you want to know, where the problem is? You should've started from writing a paragraph. First one, then another, then� you would've ended up with a perfect text that corresponds to your task.



When writing an essay, choose the techniques and tools for essay writing that unfold your topic and correspond to the style that you've picked. A good idea is not the only factor that makes essay writing successful. There has to be harmony between the basic components. Did you know that there are at least 8 kinds of paragraph writing? And by choosing an essay writing style, you choose a way of writing a paragraph. So, here they are:

Writing a Definition Paragraph
Definition paragraph writing is good for an expository essay paper. When writing a definition paragraph, you choose a subject that needs to be described, and give its definition. For example, in an essay Why Office Chairs Can Be Dangerous� you give a characterization of an office chair: An office chair can be defined as a murder machine on casters.

Writing a Classification Paragraph
Classification paragraph w! riting can also be helpful in expository essay papers. In this! kind of paragraph writing you group things into specific categories. By developing my essay idea, I can state: Office chairs can be divided into two categories: with and without casters. But they still are murder machines.

Writing a Description Paragraph
Description paragraph writing is good in all kinds of essay papers. It gives readers a clue on how a person or thing looks like, or where they are situated. In my essay writing I say that an office chair is always beneath its user.

Writing a Compare and Contrast Paragraph
This kind of paragraph writing is essential in compare and contrast essay papers. It concentrates on showing similarities or differences between things, people, or places. For example: An office chair without casters can be safer than an office chair with caster. But you can still fall out of it.

Writing a Sequence Paragraph
Narrative essay writing sometimes shows events in their chronological order. This is why sequ! ence paragraph writing can be helpful. Here's my example: I was sitting on an office chair when someone came in. To say hello, I rolled backwards, lost balance, and fell on the floor. Together with this crazy office chair!

Writing a Choice Paragraph
Sometimes provocative dissertation help papers show a reader what it is that you prefer doing. And choice paragraphs are the best way to describe it: If I had a choice, I would've chosen a sofa. It's too heavy to lift, meaning there are fewer possibilities to fall out of it.

Writing an Explanation Paragraph
Just give the reason. This paragraph is universal for all kinds of papers. In my case, I already explained how it happened. Even though my intensions were good, my chair had a different point of view on it.

Writing an Evaluation Paragraph
In an evaluation paragraph, you make judgments ! about people, ideas, and possible actions. You need to make yo! ur evalu ation based on certain criteria that you develop. My criterion is that office chairs are evil. They should be banned from our workplaces.

As you can see, the choice of paragraph writing is big. It's up to you what to choose and how to use it.

Article Resource

sequence paragraph example

Recommendations for pre-algebra

Folks often ask me how far I'm planning to write my Math Mammoth complete curriculum (the Light Blue books). Right now I'm finishing up 5th grade. After that, I will be writing 6th grade. But, I'm not really planning to go on after that.

I feel a child who will have finished Math Mammoth 6th grade (once it is available) is probably ready for pre-algebra for 7th grade. Perhaps not all children won't be, but a good portion of those who use Math Mammoth should be.

Pre-algebra is sort of "in-between" course. It is bridging the world of numerical computations of elementary math, and the world of algebra where we manipulate variables. Pre-algebra courses typically cover these topics:



Photo by ecumaniac
* integers
* fractions, decimals
* factors, exponents
* solving linear equations
* solving linear inequalities
* ratio and proportion
* percent
* graphing linear functions
* Pythagorean theorem and other geometry topics
* some statistics and probability.

Most students take prealgebra in 8th grade, just prior to taking algebra 1. However, it is possible to study these topics in 7th grade as well, if the student has a good foundation from grades 1-6. And that is what I'm aiming for in writing Math Mammoth ! - a good enough foundation of concepts so the student can go o! n to pre -algebra after 6th grade.

I have prepared an article that talks more about the various pre-algebra book choices.


pre algebra practice test

Organic Chemistry Calculator

It's been a while since I last used a free online tool for chemistry, that combines different aspects of organic chemistry, such as: structure, stoichiometry and general reaction mechanisms. But yesterday evening, while searching on the internet, I found a seemingly useful, free, online tool that definitely caught my eye straightway.

It was a quite complex software produced by professor Andreas Herrmann's team in the Polymer Chemistry and Bioengineering department at Groningen University. The software allows you to draw the structures of different compounds and put them in printable version, to calculate the ammounts of substance needed in different organic reaction processes containing up to six reactions. So, I consider it to be pretty useful. Its link is the following: http://chemist.hosting.paran.com/orgchem/

To test the efficiency of this software, let's try to synthesize an organic compound, for instance urea (the first organic compound to be ever synthesized), from inorganic compounds. Firstly, fill in the name of the reaction in the title section, in this case Wöhler Synthesis. In the structure drawing section, let's draw the structural formula of urea.

Click on the double bond tool and then click in the middle of the drawing field.

Select the Oxygen tool and click in one of the double bond's ends.

Now select the simple bond tool and double click on the other end of the double bond. By doing this, two simple bonds will appear connected to the double bond.

Select Nitrogen tool and click on each of the simple bonds' free end. Now, urea should look like this:

Now look at the proper calculator. You know that AgNCO + NH4Cl → (NH2)2CO + AgCl is the reaction implied. In the starting formula cell, introduce the formula of AgNCO and in the product formula cell write the formula of urea ((NH2)2CO). By pressing the ">" sign near these two cells the molar masses will be automatically generated. As a starting amount of AGNCO let's take 100 grams, for example. After doing this, press again the ">" in the current cell. The number of moles will be generated this time. Because the equation is balanced with no coefficient, we leave the equivalent section untouched (the default value is 1). Now we can calculate the amount of urea produced by pressing "evaluate". If the result is 40.069389 then you have understood how to use this organic chemistry calculator. If not, re-read the tutorial and do exactly as told because I consider this tool very interesting and useful.


oxidation number calculator

Math online tutoring

i used to be a Math whiz when i was young. seriously, i was an excellent student in Math. i often competed in inter-school quiz bees as our school's representative. my parents were very pleased because they didn't need to hire a tutor for me. most students my age then had difficulty understanding the lessons in Math, and i do recall having to teach my classmates in their assignments. it was harder for students back then to actually get the help they need in comprehending the lessons.

good thing K-12 students can now get online tutoring so their lives will be a lot better when dealing with the much-dreaded subject. 5th grade Math has become easier, and so is 4th grade Math. 5th grade Math may be tougher than it looks, but with the proper online tutoring tool, students can excel in this subject, too. before they know it, adding fractions will just be a piece of cake.

online tutoring is not only great for 4th and 5th graders, but also for K-12 students who take up Algebra 2. yes, a lot of people may find Algebra 2 difficult but good thing help is now available to those who find it challenging. i know formula for volume and graphing linear equations can seem daunting, but there is hope now that online tutoring is within one's fingertips.

math tutor online

Group Goals, Blogging, My Amazing semester in keyboarding

This semester's anomaly
I have been perplexed with a question: after teaching keyboarding for a while, I have found that most of my classes average around 45 gwam and I have set as a goal for all of my students to break 30 gwam. That is until this semester.

This semester, after 10 weeks of teaching my class average is over 70 gwam (gross words per minute) and every student is already over 50 gwam. Why?

This is particularly interesting in the fact that last semester I! had one of a pair of identical twins and this semester I have the other one. Needless to say, they are very similar but one typed 13 gwam (last semester) and this semester the other twin is over 50 gwam. Something has changed!

Coming from an engineering background, I like to understand the factors that compose this equation. I've been making notes of how I have taught differently, but I asked them today,

"What motivates you to hit such high typing speeds?"


Here is what they said:

"We love the timed writings. They make us faster and you can see yourself get better."

"We like setting group goals, it gives us an incentive to do better."

"We 'egg each other on' to improve because we want to reach the higher goals. We encourage each other to go faster."

"The individual goals don't get me exc! ited. I like the group incentive that makes me want to improv! e."

"It's because we have a great, enthusiastic teacher." (I just had to include that one, ha ha!)

AS much as I'd like to take all the credit the fact is the teacher is the same between the semesters.

Setting Group Goals
Some things have changed, this is the first time I have used a group goal setting technique that I've been pondering for a while. Group goal setting is a fine balance. You want everyone to know that they contribute. You do not want people who are at the "low end of the totem pole" to feel any less important or validated. You want to motivate not demotivate!

Here is why I think they are so successful:
  • Consiste! ncy
Timed writings happen very day 5-6 minutes a day. Five days a week. Even if we're doing something "fun" or different we still do our timed writing!
  • Group Goals.
This group goal makes it so the upper end really appreciate the lower end. It is difficult to keep up a high pace. Sometimes the boy who types 110 gwam+ has an "off" day and only types 90. When the lower student bumped from 25 gwam to 40 gwam that same day, he received a big high five and "thank you" from the faster typist. They see their interdependence and how they win as they all improve!
  • A visual depiction of group results.
I have a spreadsheet that I use to average the gwams. I also have a chart that graphs the group scores. They see how they drop on Mondays (after they haven't had practice! ) and how they steadily rise within the week. This motivates ! them to type on the weekends and to make up their work when they miss.
They understand what causes them to increase. When they go up significantly, I have them share why they think it happened. At the beginning, I also talk about how the brain makes connections when they repeat correct behaviors. They can see this happening and understand how new skills are learned! What a great lifetime lesson.

  • Incentives and rewards.
I do rewards like a "fun" day of Typershark. Typershark is a free popcap game that encourages fast typing. They love it. It is fun to them but works on the skills from my perspective. Everything must have an objective and go towards the goals I have set for my classes.

  • They type with thei! r monitors off and my eyes on them.
I like typing with their monitors off because otherwise students are constantly double checking with their eyes and often cut their time in half. I also watch their eyes to make sure that they are keeping their eyes on their books. They feel whether they are on homerow by the "nobs" on the j and f.

  • Public "bragging" via the blog.
All of my students hinge upon the same teacher blog, mine. So when I blog about their results, they receive notice from other students who, quite honestly, are a little jealous of their fast typing.

  • This class is blogging.
The move from typing text in a book to typing "from top of mind" is an important one because much of composition happens actually while on the keyboard. We had been keeping journals in previous semeste! rs to do this, however, we have switched to blogs.

! The class enjoys it! It is cool! Journals were very uncool!

The fact that they must enter information daily to have the current date is an incentive for consistent posting. The bane of teachers who grade journals is the fact that students write all of their journal entries in a rush, backdating them, and missing the point. Blogs neutralize this habit! This is not as directly related but has worked to make keyboarding one of the exciting classes the eighth graders take.

  • I am blogging
I am more excited. I am reading about the work of other teachers. I am bringing new things into the classroom that work. I am a more motivated, more educated teacher. I have learned more from my bloglines since November than I've learned in! the more than 60 hours of PLU training I've had in the past two years!

Keyboarding is the next progression of writing.

After a student colors, prints in Denilian, and then writes in cursive, a student should learn to keyboard.
Yes, voice recognition is around the corner, but its not here yet. Students should learn to type at a young age, when their hands are of the right size but AFTER they know cursive. (Otherwise they don't correctly and completely learn handwriting, in my opinion.)

We're looking at keywriter systems for teaching typing and I'm excited about the opportunity. However, I am cautious.

When students are "self taught" there is an intrinsic risk of poor technique. With poor technique, students will go slower and give up lifetime productivity gains. There is! a big difference over a lifetime in 30-40 gross words per min! ute. Tr y at least 30 extra minutes for a 400 word paper!

It is doing a disservice to students to have them blogging when they cannot even type. I know from experience, that once they learn to type visually, it is almost impossible to teach them to touch type. For this reason, I taught my own children as they exited the third grade over the summer. I used Mavis Beacon but also used Speed Skins to cover the keys and monitored them for technique as I watched them type.

Now my kids blog.

I have students who transfer into my high school classes from other schools who have never had typing. They cannot keep up. It is unfair. We now screen students that enter and ensure that they can type at least 30 gwam, otherwise, they go back to 8th grade keyboarding.

It is hard for me to understand such an oversight at any schoo! l!

Just as a teenager doesn't learn to drive "by osmosis" (God forbid!) likewise students don't just "learn to type" by sitting at a computer!

We aren't educating mindless robots who are sitting at an assembly line. We are educating professionals who will not have a secretary and need to be able to communicate efficiently via electronic media. They need to be creative and self motivated.

To sap creativity, have a person struggling to find the keys. They won't be inclined to write and rewrite!


Typing shouldn't be relegated to the vocational track. College preparatory students need this vital skill also! At our school, we do not require typed papers UNTIL a student has learned to type. To do so is harmful! Either someone else will write the paper or the child will hunt and peck into bad habits.

One of the reasons I was first in my class at Georgia Tech was I could type more, faster.! I could keep up with the thousand lines of code and prolific! paper w riting. My mother was a typing teacher and taught me after fifth grade to type. I type 128 words a minute. I know what it means to type quickly. (Of course no education and fast typing is a waste too -- I said ONE of the factors!)

In conclusion: the Peer Success Equation

So in conclusion, I think that group goal setting is a phenomenal success in my classroom. Of course, setting something like gross words per minute is very easily measurable and other things aren't so measurable. I'm going to think through my other classes and see how I can give group goals and group rewards in such a way.

I also think that the more you use student blogs
, the ! more you foster such a "peer success" equation in the classroom.
I like that students of all grades can see each other's work.
It is also vital that I am connected with other teachers and excited. This community of edubloggers does a lot to keep me motivated and on track when I have the days that are a little tough!

Interesting that our book in keyboarding is about 10 years old. We just used new tools and techniques.
There are no excuses when it comes to teaching. There is always a way to improve. There are so many free tools at your fingertips. They will revolutionize and change your classroom in ways you cannot imagine. They will make you a better teacher. They will help your students learn more.

The facts show me that these tools work.

gwam test

Linear Regression in MATLAB

Fitting a least-squares linear regression is easily accomplished in MATLAB using the backslash operator: '\'. In linear algebra, matrices may by multiplied like this:

output = input * coefficients

The backslash in MATLAB allows the programmer to effectively "divide" the output by the input to get the linear coefficients. This process will be illustrated by the following examples:


Simple Linear Regression

First, some data with a roughly linear relationship is needed:


>> X = [1 2 4 5 7 9 11 13 14 16]'; Y = [101 105 109 112 117 116 122 123 129 130]';


"Divide" using MATLAB's backslash operator to regress without an intercept:


>> B = X \ Y

B =

10.8900


Append a column of ones before dividing to include an intercept:


>> B = [ones(length(X),1) X] \ Y

B =

101.3021
1.! 8412


In this case, the first number is the intercept and the second is the coefficient.


Multiple Linear Regression

The following generates a matrix of 1000 observations of 5 random input variables:


>> X = rand(1e3,5);


Next, the true coefficients are defined (which wouldn't be known in a real problem). As is conventional, the intercept term is the first element of the coefficient vector. The problem at hand is to approximate these coefficients, knowing only the input and output data:


>> BTrue = [-1 2 -3 4 -5 6]';


Multiply the matrices to get the output data.


>> Y = BTrue(1) + X * BTrue(2:end);


As before, append a column of ones and use the backslash operator:


>> B = [ones(size(X,1),1) X] \ Y

B =

-1.0000
2.0000
-3.0000
4.0000 -5.0000
6.0000


Again, th! e first element in the coefficient vector is the intercept. Note that, oh so conveniently, the discovered coefficients match the designed ones exactly, since this data set is completely noise-free.


Model Recall

Executing linear models is a simple matter of matrix multiplication, but there is an efficiency issue. One might append a column of ones and simply perform the complete matrix multiplication, thus:


>> Z = [ones(size(X,1),1) X] * B;


The above process is inefficient, though, and can be improved by simply multiplying all the other coefficients by the input data matrix and adding the intercept term:


>> Z = B(1) + X * B(2:end);



Regression in the Statistics Toolbox

The MATLAB Statistics Toolbox includes several linear regression functions. Among others, there are:

regress: least squares linear regression and diagnostics
stepwisefit: stepwise linear regression

robustfit: robust (non-least-squares) linear regression and diagnostics


See help stats for more information.


See also:

The May-03-2007 posting, Weighted Regression in MATLAB.

The Oct-23-2007 posting, L-1 Linear Regression.

The Mar-15-2009 posting, Logistic Regression.

examples of linear functions

Questions for Endocrinology and Toxicology

I. ESSAY: DISCUSS BRIEFLY BUT CONCISELY:

1. DISCUSS THE PORTER SILBER METHOD. ( 5 PTS.)
2 DISCUSS THE DIALYSIS METHOD OF TOTAL T4 PROCEDURE.
( 5 PTS.)
3. HOW IS THE CHAIN OF CONFIDENTIALITY MAINTAINED IN DRUG ABUSE SCREENING? ( 5 PTS.)


II. MATCHING TYPE: ( 1 PT.EACH)

MATCH COLUMN A WITH COLUMN B

CHOICES:

A. HYPOTHYROIDISM
B. HYPERTHYROIDISM


1. Muscle weakness
2. Amenorrhea
3. Goiter
4. Dry skin
5. Brittle nails
6. Constipation
7. Cold Intolerance
8. Heat intolerance
9. Tremors
10. Profuse bleeding


III. PROBLEM SOLVING: ( 5 pts.)

1. WHAT IS THE HALF LIFE OF A DRUG WITH AN ORIGINAL CONCE! NTRATION OF 500 mg IF IT WAS REDUCED TO 400 mg AFTER AN HOUR.


IV. TRANSCRIPTION ( 1 PT. EACH)

1. OGTT
2. 9-THC
3. VMA
4. HVA
5. FBS
6. ALT
7. DHEA
8. DTL
9. PRL
10. ASC



chemistry formula chart

Beyond ROE: Return on Net Operating Assets (RNOA)

Many investors rely on Return-on-Equity (ROE) to gauge a firm's ability to generate profit from each dollar of equity; a somewhat fundamental determination when assessing the attractiveness of owning a piece of that equity. The problem is, ROE is calculated as net income divided by average stockholders equity, meaning that you have no idea the extent to which leverage played a role in the returns generated for shareholders. In the aftermath of the credit bubble, it should be apparent that not all returns are created equally. For instance, had you been an investor in Merrill Lynch around say, 2006, you may have been lulled into complacency by the firms ridiculous returns-on-equity; oblivious unfortunately to the fact that MER's performance was merely the result of massive amounts of leverage. Fortunately, through calculation of a firm's Return on Net Operating Assets (RNOA), we can isolate the portion of ROE attributable ! to the operations of the business (the portion that matters).

The general concept behind RNOA is that ROE= Operating Return + Nonoperating Return. As I've said, investors should focus on the operating portion of return, which is calculated as follows:
Operating Return (RNOA) = Net Operating Profit After Taxes (NOPAT) / Average Net Operating Assets (NOA)

The calculation of RNOA requires you be able to differentiate between the operating, and nonoperating items on both the balance sheet and income statement. This should be somewhat easier to do with the income statement, just because although GAAP doesn't require it, most companies will break out their operating results on their financial statements. Management tends to be judged based on the firms operating results, so this shouldn't be surprising. I'll refer to Dell's most recent full year results to illustrate the RNOA calculation.

Step 1: Calculate NOPAT
For FY '09, Dell logged pretax income of $3324M, and income tax expense of $846M, resulting in an effective tax rate of 25.45% (846/3324). Dell posted operating income of $3190M; therefore, applying the 25.45% tax rate, we can state that Dell's NOPAT is $2378M ($3190 X (1-.2545) ). 

Step 2: Calculate average net operating assets (NOA)
First of all, Net Operating Assets =  Operating Assets - Operating Liabilities. The components of each category are listed below.
Operating Assets
Cash/Cash Equivalents
Accounts Receivable
Inventories
Prepaid expenses
Other Current Assets
Property, plant and equipment (net)
Capitalized lease assets
Natural Resources
Equity method investments (unless unrelated to the core business)
Goodwill and other intangible assets
Deferred income tax assets (current and long term portions)

Other long term assets

Operating Liabilities
Accounts Payable
Accrued Liabilities
Deferred income tax liabilities (current and long term portions)

Pension and other post-employment obligations

Dell's 2009 and 2008 NOA are $6488M and $7501M, respectively. The average of these two numbers is $6995M. Therefore:


RNOA = NOPAT / NOA
= $2378 / $6995
=34%


This compares with a 2009 ROE of:
ROE= Net Income / Avg Stockholders Equity
= $2478M / $4003M
=61.9%


A conclusion which can be drawn from these results is that only 55% of Dell's ROE (34/61.9) is attributable to operations. I'd generally like to see a higher ratio of operating to nonoperating return; however, Dell's 34% RNOA is substantially higher than the 10% average RNOA for publicly traded companies. A further examination into Dell reveals that it's debt-to-equity ratio (total liabilities divided by total stockholders equity) is 5.2, meaning that for every dollar of equity, dell has $5.20 worth of debt. This high debt to equity ratio partially explains the juiced ROE number, and should probably be monitored by investors.


*no positions
Sphere: Related Content

average operating assets formula

OTN Forums versus Stack Overflow

A quick intermezzo between the MV error related posts:

For almost three years now, I am answering questions on a regular basis at the OTN Discussion Forums, mainly at the SQL and PL/SQL Forum. By reading answers and giving answers, you are not only helping others, but you'll also find you are learning at greater speed than before. Most of the regulars like the forums very much of course, despite the sometimes annoying forum software, and especially upgrades of this software.

A couple of weeks ago, I started answering some Oracle related questions on Stack Overflow. And I'm impressed. Very impressed. The guys from Fog Creek Software (you may know the company because of the famous Joel On Software blog, written by its CEO Joel Spolsky) really know what technical! forum software should look like. Every little thing that has annoyed me about the OTN forum software, has been addressed by Stack Overflow. A couple of examples:

Duplicate threads
OTN has different forums for each technology. But at times the poster of a question is not entirely sure what the best place for his question is. So he posts the same question in different forums. Visitors of only one forum may end up answering questions that have already been answered in the other forum. Stack Overflow works with tags. A single question can have several tags. People who answer questions, search for questions with specific tags. A simple but great answer for the duplicate thread problem.

Posting code
OTN somehow has problems posting code correctly. The unequal sign <> disappears. An outer join sign (+) transforms to some small graphical icon. And most important: newbies c! annot easily find how to post code, leading to many unreadable! questio ns. Stack Overflow has a single button to transform your code in, well, code. Without strange transformations.

Point system
OTN has a point system where the poster of the question can reward answers by marking them as Correct or Helpful. But it's not mandatory to do so. And sometimes plain wrong answers get marked as correct, degrading the quality of the post for future google searchers. It also gives an unsatisfying feeling when some very time consuming or great answers do not get rewarded, while some simple one liners do get the full 10 points. And it bothers me to watch regulars go as far as begging for a point reward; this surely cannot be your life's goal. Stack Overflow works with reputation. The more reputation you have, the more privileges you receive. Everyone can up vote (+10) or down vote (-2) an answer or comment, after they have achieved some reputation themselves. A very convenient way to let the poster of ! the question know which answer is regarded highly by their peers. Your reputation will be damaged if you post rubbish and/or DKB-style commercial "Here are my notes" answers. And future searches will find much clearer and more valuable answers.

And there are several other topics as well at which Stack Overflow outperforms OTN. When using the site, you feel it has been given good thought, as you can also see in this video where Joel Spolsky explains the concepts.

However, there is one thing at which OTN still excels: the knowledge of the people and therefore the quality of the answers. And ultimately, that is what counts. Most regulars at OTN give great answers and a few are not. For Oracle related questions at Stack Overflow, it's the other way around now. It's still rather good, but not excellent. So, for the best learning experience, I still recommend OTN. But I wish that the best of both worlds ! can be combined somewhere in the future.

PS: if you! want a good laugh, then you should read this hilarious Stack Overflow thread about the user with the most reputation.


apex learning answers

CHOOSING A MATH COURSE AT SOLANO COMMUNITY COLLEGE

Hello! Welcome (or welcome back) to Solano Community College. The goal of this website is to help you assess your math skills, and then help you decide which math course to take here at Solano. This website will focus on three math courses that the majority of our students entering Solano enroll in for their first math course.

The official math placement test taken at Solano Community College is administered by Accuplacer. You can find sample math Accuplacer problems here. We recommend that after spending time on this site, you set up a time to come take the math assessment test given on our campus. The Assessment Center is located on the main Fairfield campus in the 400 Building, Room #442.

Math 320 (Pre-Algebra) - Our Math 320 course is geared toward the student who ha! s basic math skills. A student entering Math 320 would have the ability to add, subtract, multiply, and divide two-digit numbers and fractions, would have a basic idea of perimeter and area, and would understand the idea of order of operations. If you believe that our Math 320 course may be the best starting place for you, please click here to see if you have the skills to be successful in this course.

Math 330 (Elementary Algebra, formerly Math 102) - Our Math 330 course is geared toward the student who already has the math skills that would be learned from our pre-algebra course. If you already have an understanding of signed (positive and negative) numbers, are able to combine like terms, can solve basic linear equations, and can plot points and graph basic lines on a rectangular coordinate system, Math 330 may be the course for you! Pleas! e c! lick her e to see if you have the skills to be successful in this course.

Math 104 (Intermediate Algebra) - Our Math 104 course is geared toward the student who has a strong understanding of elementary algebra. A student entering this course should already know how to solve linear equations and inequalities, graph equations of two variables, use exponent properties, factor polynomials, and simplify radicals. Please click here to see if you have the skills to be successful in this course.

practice elementary algebra

BlackBerry curve wired handsfree with normal 3.5 mm jack

Blackberry is just great, my wired handsfree with blackberry broke and was trying to pair my motorola wireless handsfree with blackberry, but couldn't get it working (may be because its 3 years old tech). But Blackberry is just great you can plugin any normal 3.5 mm jack headphones and it will work without a charm as it would use the phone microphone.

Normal to the Curve

Linear Differential Equations

In the calculus class I'm TAing, we spent some time learning how "the method of undetermined coefficients" could be used to solve linear differential equations. I have never taken a first-year differential equations class, so although I'd solved many differential equations this way, I had never really though about such methods with any real theory. My goal in this entry is to describe the method and explain why it works, using more sophisticated ideas than in a first-year class, but still remaining very elementary. I had hoped to have this written and posted weeks ago; as it is, I'm writing it while proctoring the final exam for the class.

First, let me remind you of the set-up of the problem. We are trying to solve a non-homogeneous differential equation with constant coefficients:

$$ a_n y^{(n)} + \dots + a_1 y! ' + a_0 y = g(x) $$

I will assume that $a_n$ is not 0; then the left-hand side defines a linear operator $D$ of on the space of functions, with $n$-dimensional kernel.

We can diagonalize this operator by Fourier-transforming: if $y = e^{rx}$, then $D[y] = a(r) e^{rx}$, where $a(r)$ is the polynomial $a_n r^n + \dots + a_1 r + a_0$. If $a(r)$ has no repeated roots, then we can immediately read off a basis for the kernel as $e^{rx}$ for $r$ ranging over the $n$ roots. If there is a repeated root, then $a'(r)$ and $a(r)$ share a common factor; $a'(r)$ corresponds to the operator

$$ E[y] = a_n n y^{(n-1)} + \dots + a_1 $$

Then, since $\frac{d^k}{dx^k} [x y] = x y^{(k)} + k y^{(k-1)}$, we see that

$$ D[x y] = x D[y] + E[y] $$

so $r$ is a repeated root of $a(r)$ if and only if $e^{rx}$ and $x e^{rx}$ are zeros of $D$.

More generally, linear differential operators with constant coefficients satisfy a Le! ibniz rule:

$$ D[p(x) e^{rx}] = \left( p(x) a(r) + ! p'(x) a' (r) + \dots + p^{(n)}(x) a^{(n)}(r) \right) e^{rx} $$

for polynomial $p(x)$.

Thus, our ability to solve linear homogeneous differential equations with constant coefficients depends exactly on our ability to factor polynomials; for example, we can always solve second-order equations, by using the quadratic formula.

But, now, what if $g(x) \neq 0$? I will assume that, through whatever conniving factorization methods we use, we have found the entire kernel of $D$. Then our problem will be solved if we can find one solution to $D[y] = g(x)$; all other solutions are the space through this function parallel to the kernel. In calculus, we write this observation as "$y_g = y_c + y_p$" where g, c, and p stand for "general", "[c]homogenous", and "particular", respectively.

For a general $g$, we can continue to work in the Fourier basis: Fourier transform, sending $D[y] \mapsto a(r)$, then divide and integrate to transform back. This may ! miss some solutions at the poles, and is computationally difficult: integrating is as hard as factoring polynomials. For second-order equations, we can get to "just an integral" via an alternative method, by judiciously choosing how to represent functions in terms of the basis of solutions for $D[y]=0$.

But for many physical problems, $g(x)$ is an especially simple function (and, of course, it can always be Fourier-transformed into one).

In particular, let's say that $g(x)$ is, for example, a sum of products of exponential (and sinosoidal) and polynomial functions. I.e. let's say that $g(x)$ is a solution to some homogeneous linear constant-coefficient $C[g(x)] = 0$. Another way of saying this: let's say that the space spanned by all the derivatives $g$, $g'$, $g''$, etc., is finite-dimensional. If it has dimension $= m$, then $g^{(m)}(x)$ is a linear combination of lower-order derivatives, and thus I can find a minimal (order) $C$ of degree $m$ so! that $C[g] = 0$. By the Leibniz rule, functions with this pr! operty f orm a ring. When I add two functions, the dimensions of their derivative spaces no more than add; when I multiply, the dimensions no worse than multiply. Indeed, by the earlier discussion, we have an exact description of such functions: they are precisely sums of products of $x^s e^{rx}$ ($s$ an non-negative integer).

In any case, let's say $g$ is of this form, i.e. we have $C$ (with degree $m$) minimal such that $C[g] = 0$, and first let's assume that the kernels of $C$ and $D$ do not intersect. Then $D$ acts as a one-to-one linear operator on finite-dimensional space $\ker C$, which by construction is spanned by the derivatives of $g$, and so must be onto. I.e. there is a unique point $y_p(x) = b_0 g(x) + b_1 g'(x) + \dots + b_{m-1} g^{(m-1)}(x) \in \ker C$ so that $D[y_p] = g$. Finding it requires only solving the system of linear equations in the $b_i$.

If, however, $\ker C$ and $\ker D$ intersect, then we will not generically be able to solve ! this system of linear equations. Because $C$ is minimal, $g$ is not a linear combination of fewer than $m$ of its derivatives; if $D$ sends (linear combinations of) some of those derivatives to 0, we will never be able to get a map onto $g$. Let me say this again. If $D$ does not act one-to-one on $\ker C$, but $g$ is in the range of this matrix, then $g$ is in a smaller-than-$m$-dimensional space closed under a differential operator; thus, there is a differential operator of lower-than-$m$ degree that annihilates $g$.

How can we then solve the equation? By the Leibniz rule, we observed earlier, $(xg)' = g + x g'$, and so

$$\frac{d^k}{dx^k}[x g(x)] = x g^{(k)}(x) + k g^{(k-1)}(x)$$

Then $C[xg]$ is a linear combination of derivatives of $g$; i.e. $C[xg] \in \ker C$. If we take the space spanned by the derivatives of $x g(x)$, it is one dimension larger than $\ker C$. We can repeat this trick ---

$$ \frac{d^k}{dx^k}[ x^p g(x) ! ] = \sum_{i=0}^k \frac{k!p!}{i!(k-i)!(p-k+i)!} x^{p-k+i} g^{(i! )}(x) $$

--- and eventually get a space that's $n+m$ dimensional, containing, among other things, $g$, and closed under differentiation. The kernel of $D$ in this larger space is at most $n$ dimensional (since $n = \dim \ker D$ in the space of all functions), and so the range is $m$-dimensional, and must contain $g$: the system of linear equations is solvable.

Of course, we often can stop before getting all the way to $n$ extra dimensions. But so long as we are only interested in functions that are zeros of constant linear differential operators, then we can always solve differential equations. For example, every linear equation from a physics class, and almost every one in first-year calculus, is solvable with this method.

One final remark:

Composition of differential operators follows matrix multiplication, and hence yields differential operators. If $g$ satisfies $C[g] = 0$, and if we're trying to solve $D[y]=g$, then we might decid! e to solve more generally $CD[y] = 0$. The left-hand-side is $n+m$ dimensional, and if we're truly gifted at factoring polynomials, then we can solve it directly. Then the solutions to our original equation must be in this kernel.

linear differential equations

Algbera-3/29/10

Monday-
Objective-Graphing Linear Inequalities
Standard-2.2.K3a, 2.2.A2a
Homework-pg. 492 (2-24 evens)

Tuesday-
Objective-Graphing Linear Inequalities
Standard-2.2.K3a, 2.2.A2a
Homework-Handout

Wednesday-
Objective-Graphing Systems of Linear Inequalities
Standard-2.2.K3a, 2.2.A2a
Homework-pg. 496 (1-8)

Thursday-
Objective-Graphing Systems of Linear Inequalities
Standard-2.2.K3a, 2.2.A2a
Homework-pg. 496 (9-18)

Friday-
No School

multiply radicals

MATRIX MADNESS

First off, don't mess this up:
Singular: matrix
Plural: matrices

Fun facts about matrices:)
A Matrix is a rectangular array of real numbers called entries (spreadsheet)



They have dimensions!
rows x columns (order matters)

Ex: Write dimensions of this matrix.



ANS: 2x3

You can add and subtract them!
But be careful kids... they must have the same dimensions

Ex:


ANS: They're incompatible. Gotcha!

Ex:
!


You can even multiply them together!
-AxB is possible if and only if the number of columns in A equals the number of rows in B


Ex: If A(2x3) and B(3x1), the answer will be (2x1)


Who are you matrix? Show us your identity


Matrix identities are defined, but only for square matrices (nxn)


for a 2x2:





for a 3x3:



Determinants!
ewww... what's that?

Definition:
A DETERMINANT is any real number associated with any square matrix

-vertical bars on both sides of th! e matrix can also denote a matrix

Determinant of a 2x2 Matrix:


Coefficient Matrix Determinant







determinant (A) = IAI= ad-bc


NOTE: The determinant is the difference of the products of the 2 diagonals of the matrix

Ex: Find the! determinant of the matrix


Ans: det(A)= 2(2)- 1(-3) = 4+3=7


USING A CALCULATOR!
Knowing this will make your life ten times easier, maybe even 100...
1. Hit 2nd matrix

2. Enter matrix as [A]

3. Arrow over to math and choose determinant feature(choice 1)




Determinant of a! 3x3 matrix:
NOTE: its supposed to be a plus sign ! before a 13 it wouldn't let me fix it!


Ex: Find IAI if




Solution:

IAI=0(-1)+2(5)+1(4)=14



Now from this we can tell that determinants are so much fun...but what's even more fun is using them to find a 2X2 inverse!!


Given:
and det A= ad-bc


*switch negate


Guess what? The best part about matrices is... nothing! Haha just kidding! You can use them to solve systems of equations!


Ways:

1) Reduced Row Echelon Form
2) Cramer's Rule
CRAMER'S RULE! because he's just that good!

Let's try an example to show how it works!

2x+3y=17
4x+y= 9


1st: Set up coefficient matrix


x y
IAI= 2-12= -10

2nd: Set up replacement matrices...we know its tedious but keep going, it's worth it in the end!


Replace x column: Replace y column:




3rd- Use Cramer's rule:


Isn't that cool!!!




Applications of Determinants!

You might be thinking where and when will I ever us! e this information in life?
Well, you will be suprised that there are many real life examples that you can amaze your friends with everyday!


1.)Have you ever randomly felt the urge to know the area of an object?

- well now you can easily find this answer on the spot with the matrix knowledge that you have just obtained!


Here's how:

All you need to do is plug the x values of the points into the first column, the y values into the second column and 1 into the third column of the matrix!

2.) You can also use this same method if three points are collinear if the area=0 and the equation of the line passing through a point!


Just look at all of the amazing things you can do with determinants!


PRACTICE PROBLEMS!
Now that you are matrix mast! ers yourselves, you should be anxious to try some problems on ! your own !!!


2.) Let A=Find A^2




3.) Find the inverse of: [4 -1]
[-2 1]





Solve for x and y:






8.) Solve using matrices:

A-4B-3C=-1
2A+3B+7C=5
3A-2B+4C=1

9.) Find the area of the triangle with the vertices (-3,1),! (3,0), and (5,4)


10.) Show, using determinants, that (-2,-5), (1,-2), and (5,2) are collinear.



ANSWERS!

1.)[9 -7]
[-9 4]
2.)[7 -18]
[9 34 ]

3.) [31 12]
[15 11 ]

4.)[2 -4 -6]
[-1 2 3]
[1 -2 -3]
5.) y=2
x=0

6.)x=6 x=-1
7.) 120, 240, and 0 degrees

8.)A=5 B=3 C=-2
9.) 13=area

10.) yes, collinear because area=0

















































determinants and matrices