پارس‌کدرز چگونه کار می‌کند؟

از پارس‌کدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.

پارس‌کدرز خریداران یا کارفرمایان را به مجری‌ها /فریلنسرهای خبره‌ای متصل می‌کند که برای انجام پروژه آماده هستند.

پایتون 72929 //

هفت ماه پیش منتشر شده

تعداد بازدید: 150

کد پروژه: 483135


شرح پروژه

#کد_پروژه: 72929

موضوع: پروژه پایتون //

من یه کد پایتون داشتم چندتا خطا داره خواستم ببینم میتونم ازتون کمک بگیرم import numpy as np

import matplotlib.pyplot as plt

# input

k = 2  # stiffness

dr = 0.05  # damping ratio

T0 = 3  # period

mass = 2  # mass

wn = np.sqrt(k / mass)  # natural frequency of structure

w0 = (2 * np.pi) / T0  # frequency of loading

dt = 0.02  # time step

f = lambda t: (t**3 + 1)  # function of loading

n = 4  # number of repeat of one period of loading

nf = 10  # number of terms (sin & cos) in Fourier series

# periodic loading

p = np.array([f(num0) for num0 in np.arange(0, T0, dt)])

q = np.tile(p, n)

# a0

suma0 = 0

for num1 in range(1, int(T0 / dt) + 1):

    suma0 += (dt * (f(num1 * dt) + f((num1 - 1) * dt)) / 2)

a0 = suma0 / T0

# Calculation of aj

vector_aj = np.zeros(nf)

for num2 in range(1, nf + 1):

    sum_aj = 0

    for num3 in range(1, int(T0 / dt) + 1):

        sum_aj += (dt * ((np.cos(num2 * w0 * (num3 * dt)) * f(num3 * dt) + np.cos(num2 * w0 * ((num3 - 1) * dt)) * f((num3 - 1) * dt)) / 2))

    aj = (2 / T0) * sum_aj

    vector_aj[num2 - 1] = aj

    print(f'a{num2}={aj}')

# Calculation of bj

vector_bj = np.zeros(nf)

for num4 in range(1, nf + 1):

    sum_bj = 0

    for num5 in range(1, int(T0 / dt) + 1):

        sum_bj += (dt * ((np.sin(num4 * w0 * (num5 * dt)) * f(num5 * dt) + np.sin(num4 * w0 * ((num5 - 1) * dt)) * f((num5 - 1) * dt)) / 2))

    bj = (2 / T0) * sum_bj

    vector_bj[num4 - 1] = bj

    print(f'b{num4}={bj}')

# Calculate periodic function using Fourier series

pfourier = np.zeros(int(T0 / dt))

for num7, t in enumerate(np.arange(0, T0, dt)):

    sum_cos = sum(vector_aj[num6] * np.cos(num6 * w0 * t) for num6 in range(nf))

    sum_sin = sum(vector_bj[num6] * np.sin(num6 * w0 * t) for num6 in range(nf))

    pfourier[num7] = a0 + sum_cos + sum_sin

# Periodic pfourier

Q = np.tile(pfourier, n)

# Plot exact periodic function and periodic Fourier

time = np.arange(0, n * T0, dt)

plt.subplot(2, 1, 1)

plt.plot(time, q, 'm')

plt.plot(time, Q, 'k--')

plt.xlabel('t(s)')

plt.ylabel('Force')

# Response to loading (steady state)

u0 = a0 / k

u = np.zeros(int(n * T0 / dt))

for num8, t in enumerate(np.arange(0, n * T0, dt)):

    u_cos_j = 0

    u_sin_j = 0

    for num9 in range(1, nf + 1):

        beta_j = (num9 * w0) / wn

        u_cos_j += (vector_aj[num9 - 1] / k) * ((2 * dr * beta_j * np.sin(num9 * w0 * t) + (1 - beta_j**2) * np.cos(num9 * w0 * t)) / ((2 * dr * beta_j)**2 + (1 - beta_j**2)**2))

        u_sin_j += (vector_bj[num9 - 1] / k) * ((-2 * dr * beta_j * np.cos(num9 * w0 * t) + (1 - beta_j**2) * np.sin(num9 * w0 * t)) / ((2 * dr * beta_j)**2 + (1 - beta_j**2)**2))

    u[num8] = u0 + u_cos_j + u_sin_j

# Plot u-t

plt.subplot(2, 1, 2)

plt.plot(time, u, 'b')

plt.xlabel('t(s)')

plt.ylabel('u')

plt.show()

مهارت ها و تخصص های مورد نیاز


بودجه

100,000 تومان تا 300,000 تومان

مهلت برای انجام

5روز

وضعیت مناقصه

بسته


درباره کارفرما

عضویت دو سال پیش

9439 پروژه ثبت شده ،
27 پروژه در حال انجام ،
164 پروژه آماده دریافت پیشنهاد ،
نرخ پذیرش پیشنهاد 13%

برای پیدا کردن پروژه‌های مشابه ثبت نام کنید و پروفایل خود را بسازید.

ورود با گوگل
یا
نام نباید خالی باشد.
نام خانوادگی نباید خالی باشد.

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

قادر به انجام این پروژه هستید؟

ثبت نام کنید

مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است

سری به پروژه‌های مشابه بزنید

روش کار در پارس‌کدرز

به رایگان یک حساب کاربری بسازید

مهارت‌ها و تخصص‌های خود را ثبت کنید، رزومه و نمونه‌کارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.

به شیوه‌ای که دوست دارید کار کنید

برای پروژه‌های دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصت‌های شغلی منحصر به فرد دسترسی پیدا کنید.

با اطمینان دستمزد دریافت کنید

از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.

می‌خواهید شروع به کار کنید؟

یک حساب کاربری بسازید


بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارت‌های شما است.

پیدا کردن کار (پروژه)

تماشای دمو روش کار