如何编写一个循环,为每个给定的输入对找到最佳适合的值,并绘制所有的结果点?

6个观点(过去30天)
你好,
我有t和vl个观测数据,我先把它们画出来,然后找到理论点,把它们画在同一个图里。
为了构建模型并找到理论值,我必须按照以下步骤编写代码。
  1. 为t1和vl1选择起始对。(在本例中,t=10, vl = 3.61)。
  2. 计算一个
  3. 计算B
  4. 计算a - b
  5. 测试abs (a - b);如果abs(A-B) < 0.001停止,则转到8。如果没有,请转6
  6. 增加六世=六世+ 0.005
  7. 转到2。
  8. 增加t = t + 5
  9. 转到1
  10. 最后绘制A=B的每一对图(近似,在给定公差范围内)
下面是我写的草稿循环,但我不确定如何实际使它工作。请帮帮我。
T = 10;% tmax = 90;
六世= 3.61
=每股((vs2 ^ 2)。* D2。* (i -(1 -(六世^ 2 / vs2。^ 2)))。/ (vs1 ^ 2)。* D1。* (i -(1 -(六世^ 2 / vs1。^ 2))));
B =(((2。*π。* z)。/(六世。* T))。* (sqrt((六世^ 2 / vs1。^ 2)1)));
abs (a - b) < 0.001
T = T + 5;
一个=
B = B
打破
结束
abs (a - b) > = 0.001
六世=六世+ 0.005;
一个=
B = B
结束
结束
结束
6个评论
Anitha Limann
Anitha Limann 2021年10月14日
附件是给出的试题。我应该使用一个略高于vs1和低于观察到的vL1的值。
请见附件。

登录发表评论。

接受的答案

马修•诺伊
马修•诺伊 2021年10月15日
你好,Anitha
所以你的方程确实有个小错误
当你计算A的时候,你翻转了这些项
(vs1 ^ 2)。* d1。* (i -(1 -(六世^ 2 / vs1。^ 2)))
必须由
(vs1 ^ 2) * d1 * (sqrt((六世^ 2 / vs1 ^ 2) 1))
这就是为什么我得到的是复数而不是实数因为根号下的ter是负的
我还在做代码....
6个评论

登录发表评论。

更多答案(0)

标签

s manbetx 845

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!