作业

8.5

点击查看代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp

def model(t, y):
f, df_dm, d2f_dm2, T, dT_dm = y
d3f_dm3 = -3fd2f_dm2 + 2(df_dm)**2 - T
d2T_dm2 = -2.1f*dT_dm
return [df_dm, d2f_dm2, d3f_dm3, dT_dm, d2T_dm2]

y0 = [0, 0, 0.68, 1, -0.5]

t_span = (0, 10)
t_eval = np.linspace(t_span[0], t_span[1], 1000)

sol = solve_ivp(model, t_span, y0, t_eval=t_eval, method='RK45')

f = sol.y[0]
T = sol.y[3]

plt.figure(figsize=(12, 6))

plt.subplot(2, 1, 1)
plt.plot(sol.t, f, label='f(m)')
plt.xlabel('m')
plt.ylabel('f(m)')
plt.title('Solution for f(m)')
plt.grid(True)

plt.subplot(2, 1, 2)
plt.plot(sol.t, T, label='T(m)', color='orange')
plt.xlabel('m')
plt.ylabel('T(m)')
plt.title('Solution for T(m)')
plt.grid(True)

plt.tight_layout()
plt.show()

print("学号后四位:27")

8.8

点击查看代码
import numpy as np
import matplotlib.pyplot as plt

a = 1 - 0.2(1/12)
m = 1.109 * 105
w3 = 17.86
w4 = 22.99

X = []
Z = []

for k in np.arange(0, 0.875, 0.001):
x1 = 1.2210**11 * (1 - 1 / (m * (1 - a - 0.42k)8 * (1 - a)24 * (0.5 + (1 - a - k)8 * (1 - a)4)))
x2 = (1 - a)12 * x1
x3 = (1 - a)12 * x2
x4 = (1 - a - 0.42k)8 * (1 - a)4 * x3
X.append([x1, x2, x3, x4])
z = (0.42kw3 * (1 - (1 - a - 0.42k)8) / (a + 0.42k) * x3 +
kw4 * (1 - (1 - a - k)8) / (a + k) * x4)
Z.append(z)

mz = max(Z)
ind = Z.index(mz)

print('最大生产量:', mz)
print('各年龄组鱼群数(在最大生产量对应的k值下):', X[ind])
print('对应的k值(用于索引计算,可能需要根据实际情况转换为实际k值):', ind * 0.001)

plt.plot(np.arange(0, 0.875, 0.001), Z)
plt.ylabel('Z')
plt.xlabel('k')
plt.title('总生产量Z随捕捞强度k的变化')
plt.grid(True)
plt.show()

print("学号后两位:27")

8.9

点击查看代码
def calculate_monthly_payment(P, annual_interest_rate, n_years):
monthly_interest_rate = annual_interest_rate / 12 / 100
total_months = n_years * 12
M = P * (monthly_interest_rate / (1 - (1 + monthly_interest_rate) ** (-total_months)))
return M

loan_amount = 400000

annual_interest_rate = 0.36 * 12

loan_term_years = 30

monthly_payment = calculate_monthly_payment(loan_amount, annual_interest_rate, loan_term_years)

print(f"每月还款额为: {monthly_payment:.2f} 元")

print("学号后两位:27")

9.2

点击查看代码
import numpy as np
from scipy.stats import shapiro

data = [15.0, 15.8, 15.2, 15.1, 15.9, 14.7, 14.8, 15.5, 15.6, 15.3,
15.1, 15.3, 15.0, 15.6, 15.7, 14.8, 14.5, 14.2, 14.9, 14.9,
15.2, 15.0, 15.3, 15.6, 15.1, 14.9, 14.2, 14.6, 15.8, 15.2,
15.9, 15.2, 15.0, 14.9, 14.8, 14.5, 15.1, 15.5, 15.5, 15.1,
15.1, 15.0, 15.3, 14.7, 14.5, 15.5, 15.0, 14.7, 14.6, 14.2]

stat, p = shapiro(data)

print(f"Shapiro-Wilk Statistic: {stat}")
print(f"P-value: {p}")

alpha = 0.05
if p > alpha:
print("滚珠直径数据服从正态分布N(15.0780, 0.4325^2)。")
else:
print("滚珠直径数据不服从正态分布N(15.0780, 0.4325^2)。")

print("学号后两位为:27")

9.3

点击查看代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

file_path = '9.3.xlsx'
data = pd.read_excel(file_path, header=0)

labs = ['Lab1', 'Lab2', 'Lab3', 'Lab4', 'Lab5', 'Lab6', 'Lab7']
assert all(lab in data.columns for lab in labs), "Excel文件中的列名与实验室名称不匹配"

plt.figure(figsize=(12, 8))
sns.boxplot(data=data)
plt.xticks(rotation=45)
plt.title('Boxplot of Chlorpheniramine Content Measurements by Laboratory')
plt.xlabel('Laboratory')
plt.ylabel('Chlorpheniramine Content (mg)')
plt.show()

f_stat, p_value = stats.f_oneway(data['Lab1'], data['Lab2'], data['Lab3'], data['Lab4'], data['Lab5'], data['Lab6'], data['Lab7'])

print(f"F-statistic: {f_stat}")
print(f"P-value: {p_value}")

alpha = 0.05
if p_value < alpha:
print("在显著水平α=0.05下,各实验室测量的扑尔敏有效含量的均值有显著差异。")
else:
print("在显著水平α=0.05下,各实验室测量的扑尔敏有效含量的均值没有显著差异。")

print("学号后两位:27")

9.5

点击查看代码
import pandas as pd
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
import openpyxl

column_names = ['城市1', '城市2', '城市3', '城市4']
factor_combinations = [
f"位置{i+1}广告形式{j+1}高档" for i in range(3) for j in range(2)
] + [
f"位置{i+1}广告形式{j+1}低档" for i in range(3) for j in range(2)
]

df_raw = pd.read_excel('9.5.xlsx', header=None, names=column_names, index_col=0)
df_raw.index = factor_combinations

location_factor = [int(x.split('位置')[1].split('广告')[0]) for x in df_raw.index]
ad_factor = [int(x.split('广告形式')[1].split('高档')[0]) if '高档' in x else int(x.split('广告形式')[1].split('低档')[0]) for x in df_raw.index]
decoration_factor = ['高档' if '高档' in x else '低档' for x in df_raw.index]

data = {
'销售量': df_raw.values.flatten(),
'位置': location_factor * 4,
'广告形式': ad_factor * 4,
'装横档次': decoration_factor * 4
}
df = pd.DataFrame(data)

city_factor = [f'城市{i+1}' for i in range(4) for _ in range(3 * 2)]
df['城市'] = city_factor

model = ols('销售量 ~ C(位置) + C(广告形式) + C(装横档次) + C(城市)', data=df).fit()
anova_table = anova_lm(model, typ=2)

print(anova_table)

significant_factors = anova_table[anova_table['PR(>F)'] < 0.05]['source']
print("在显著水平0.05下,以下因素对销售量有显著差异:")
print(significant_factors)
posted @ 2025-01-03 18:24  Fly史迪奇  阅读(16)  评论(0)    收藏  举报