4. Transforming and Storing Numbers with Algebra

學習重點

  • 數學 一元一次方程式、一元二次方程式解與作圖

  • 程式 math module的應用、用程式表達暴力解和公式解、Processing 畫圖

程式

math module的應用

平方根

from math import sqrt

Homework

  • 為什麼 sprt(-144) 會 error ?

  • 你能使用 sqrt 寫出一元二次方程式的公式解嗎?

數學

一元一次方程式

ax + b = cx + d

  • 了解其公式解

  • 使用公式解,寫一個函數,可以直接輸出解

一元二次方程式

  • 了解其公式解

一元二次方程式作圖

基本練習

def setup():
    size(600,600)

def draw():
    ellipse(300,300,20,20)

學畫格線

// Some code



把一元二次函數畫到隔線上

grid.pyde

#set the range of x-values
xmin=-10
xmax=10

#range of y-values
ymin = -10
ymax = 10

#calculate the range
rangex = xmax - xmin
rangey = ymax - ymin

def setup():
    global xscl, yscl
    size(600,600)
    xscl= width / rangex
    yscl= -height / rangey

def draw():
    global xscl, yscl
    background(255) #white
    translate(width/2,height/2)
    grid(xscl, yscl)
    
    noFill()
    strokeWeight(1) #thicker line
    stroke(0) #black
    
    strokeWeight(2) #thicker line
    stroke(255,0,0) #red

    #line(0,0,3*xscl,6*yscl)
    #fill(255,0,0)
    #ellipse(3*xscl,6*yscl,10,10)
    graphFunction()


    
    
def f(x):
    return 6*x**3 + 31*x**2 + 3*x - 10

def graphFunction():
    x = xmin
    while x <= xmax:
        fill(0)
        line(x*xscl,f(x)*yscl,(x+0.1)*xscl,f(x+0.1)*yscl)
        x += 0.1
    
def grid(xscl, yscl):
    '''Draws a grid for graphing'''
    #cyan lines
    strokeWeight(1)
    stroke(0,255,255)
    for i in range(xmin, xmax + 1):
        line(i*xscl, ymin*yscl, i*xscl, ymax*yscl)
    for i in range(ymin,ymax+1):
        line(xmin*xscl, i*yscl, xmax*xscl, i*yscl)
    stroke(0) #black axes
    line(0,ymin*yscl,0,ymax*yscl)
    line(xmin*xscl,0, xmax*xscl,0)

高次的方程式解

使用疊代法

def g(x):
    return 6*x**3 + 31*x**2 + 3*x - 10

def plug():
    x = -100
    while x < 100:
        if g(x) == 0:
            print("x = ", x)
            
        x += 1
    print("done.")

Last updated