博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ1045 Bode Plot
阅读量:4950 次
发布时间:2019-06-11

本文共 1276 字,大约阅读时间需要 4 分钟。

题目来源:

题目大意:

  

  如图所示的交流电路,假设电路处于稳定状态,Vs为电源电压,w是频率,单位为弧度每秒,t表示时间。

则:V1 = Vs * cos (wt); V2 = VR * cos(wt + q). 其中VR为电阻R两端电压下降的幅度,q是相位。写一个程序确定不同的w对于的VR值。相关的两个电学公式:

欧姆定理:V2 = i*R, i为电流大小

i = C d/dt(V1 - V2).

输入:包括一行或多行。第一行包括三个实数和一个非负整数。实数按顺序是VS,R,C。整数n是测试用例个数。接下来的n行,每行一个实数,表达w的值。

输出:每行对应一个VR值,结果精确到小数点后三位。


Sample Input

1.0 1.0 1.0 90.010.0316230.10.316231.03.162310.031.623100.0

Sample Output

0.0100.0320.1000.3020.7070.9530.9951.0001.000

此题虽然给出的是物理背景,但其实是一道不折不扣的数学题(高中最算不清楚的就是三角函数啊T^T,直接用了别人现成的结果了)。VR公式的推导:

V2 = iR = CR d/dt (VS*cos(wt)-VR*cos(wt+q))=VRcos(wt+q)

      = CR w (sin(wt+q)-sin(wt))=VRcos(wt+q)
下面用到高中数学当中的计算方法,分别令 t=0 和 wt+q=0 ,得到 CRw tan b = 1 和 VR=CRw VS sin b ,
然后利用三角函数中的万能公式,求得 :VR = CRw VS / sqrt (1+ (CRw) ^ 2 ))

1 // 2 //        POJ1045 Bode Plot 3 //        Memory: 160K        Time: 0MS 4 //        Language: C++        Result: Accepted 5 // 6  7 #include "cstdio" 8 #include "math.h" 9 10 using namespace std;11 12 int main() {13     int n, i;14     double vs, r, c, w, vr;15     scanf("%lf%lf%lf%d", &vs, &r, &c, &n);16     for (i = 0; i < n; ++i) {17         scanf("%lf", &w);18         vr = c * r * w * vs / sqrt(1 + (c * r * w * c * r * w));19         printf("%.3lf\n", vr);20     }21 }
View Code

转载于:https://www.cnblogs.com/dengeven/p/3246482.html

你可能感兴趣的文章
目录导航「深入浅出ASP.NET Core系列」
查看>>
Git常用命令拾遗
查看>>
Canvas的drawImage方法使用
查看>>
自定义适用于手机和平板电脑的 Dynamics 365(四):窗体脚本
查看>>
阴影效果参考网址
查看>>
华为交换机端口镜像
查看>>
简易爬虫(爬取本地数据)
查看>>
一位菜鸟的java 最基础笔记
查看>>
python 进程间通信
查看>>
字符串和编码
查看>>
servlet(一)
查看>>
异常实验
查看>>
python \r与\b的应用、光标的含义
查看>>
深拷贝 vs 浅拷贝 释放多次
查看>>
Java环境变量PATH和CLASSPATH
查看>>
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME) 就是补存在这个列名
查看>>
assert 的作用是什么?
查看>>
收藏夹(持续更新)
查看>>
iOS中的#import和class区别
查看>>
节约内存,请使用标签页管理工具:onetab、better onetab
查看>>