<p>哈利路亚
谢谢你,谢谢
这就是结局密码
但我还是有个问题
我需要在同一个窗口中绘制所有函数
现在一切都很好,但我有错误(双标量)
但是我不能使用相同的x范围值或者所有的f
如果你试着这样做(我指的是一个x列表),图形将不清晰,因为(c^x)上升太快,这将使y轴变大,结果另一个f函数将显示为直线</p>
<pre><code> # -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import math
# opgave 4
def f_opgave4 (x):
return x**x
def opp_under(f, a, b, N):
return (b-a) / N * (sum ([f_opgave4(a + (b-a)*k/N) for k in range(1,N)]) )
print opp_under(f_opgave4, 0.0, 1.0, 100000)
# opgave 5
def f_opgave5(x):
return math.sin(x)
def areaa_under(f, a, b, N):
return (b-a) / N * (sum ([abs(f_opgave5(a + (b-a)*k/N)) for k in range(1,N)]) )
print areaa_under(f_opgave5, 0.1, 2.0 , 100000)
# opgave 6
def f(x):
return math.sin(x**2)
def area_under(f, a, b, N):
return (b-a) / N * (sum ([abs(f_opgave5(a + (b-a)*k/N)) for k in range(1,N)]) )
print area_under(f, 0.0, math.pi , 100000)
# nu laten we tekenen
x1_all = []
y_opgave4 = []
for x in np.arange(-2,2,0.01):
y4 = f_opgave4(x)
x1_all.append(x)
y_opgave4.append(y4)
plt.plot(x1_all, y_opgave4, 'r')
x2_all = []
y_opgave5 = []
y_opgave6 = []
for x in np.arange(-4,4,0.01):
y5 = f_opgave5(x)
y6 = f(x)
x2_all.append(x)
y_opgave5.append(y5)
y_opgave6.append(y6)
plt.plot(x2_all, y_opgave5, 'b', x2_all, y_opgave6, 'g')
plt.axvline(x=0.,color='k',ls='dashed')
plt.axhline(y=0.,color='k',ls='dashed')
for line in [0,0.1,2,math.pi]:
plt.axvline(x=line ,color='y',ls='dashed')
plt.text( 2, 3.5, " $f(x)=x^x$ ", color = 'red', fontsize = 20)
plt.text( 1.2, 1.2, " $f(x)= sin(x)$ ", color = 'blue', fontsize = 20)
plt.text( -3.8, 1.5, " $f(x)=sin(x^2)$ ", color = 'green', fontsize = 20)
plt.show()
</code></pre>