24小时热门版块排行榜    

查看: 1238  |  回复: 1

iyearn

铜虫 (小有名气)

[求助] 求助:用matlab 循环计算椭圆积分 已有1人参与

大家好,
请教大家一个在循环中计算椭圆积分的问题。我要计算的基本方程如附图。方程有三个变量,y,f,v. 我想画出y跟f之间的函数图像。
我的code如下:

syms fi;v = [0:0.001:pi/2];
L = length(v);
y = zeros(1,L);
k = zeros(1,L);
for i = 1:L
      t1 = 1./sqrt(sin(v(i))-sin(fi));
      m1 = int(t1,0,v(i));   
      k(i) = vpa(m1)
      t2 = sin(fi)/(sin(v(i))-sin(fi));
      m2 = 1/k(i)*int(t1,0,v(i));   
      y(i) = vpa(m2)   
      f(i) = k(i)^2./2;
end
plot(f,y,'b');
系统提示错误如下:
The following error occurred converting from sym to double: Error using mupadmex Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use the VPA function instead.
Error in NonlinearStiffness (line 10) k(i) = vpa(m1)
但是我将积分范围换成具体数值而不是数组元素时,是可以得到一个结果:
>> t1 = 1./sqrt(sin(0.2)-sin(fi));
m1 = int(t1,0,0.2);
>> m1
m1 =
(7217745006463825^(1/2)*9007199254740992^(1/2)*ellipticF(pi/4, 18014398509481984/7217745006463825)*2*i)/7217745006463825 - (2*7217745006463825^(1/2)*ellipticF(pi/4 - 1/10, 18014398509481984/7217745006463825)*(9007199254740992*sin(1/5) - 1789454248277167)^(1/2))/(7217745006463825*(1789454248277167/9007199254740992 - sin(1/5))^(1/2))
>> vpa(m1)
ans =
0.901 + 1.145e-36*i
我有两个疑问:
1. 为什么语句在循环中就运行不通呢?
2. 为什么积分结果会有虚部呢?

求助:用matlab 循环计算椭圆积分
椭圆积分.png
回复此楼

» 收录本帖的淘帖专辑推荐

matlab编程绘图

» 猜你喜欢

我爱科研
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
iyearn: 金币+10, ★★★很有帮助 2015-10-02 09:47:23
CODE:
function for_int
clear all;clc
v = [0:0.05:pi/2];
L = length(v);
y = zeros(1,L);
k = zeros(1,L);
for i = 2:L
      t1 = quadgk(@(fi) 1./sqrt(sin(v(i))-sin(fi)),0,v(i));
      m1 = t1 ;  
      k(i) = vpa(m1);
      t2 =quadgk(@(fi) sin(fi)./(sin(v(i))-sin(fi)),0,v(i));
      m2 = t2;   
      y(i) = vpa(m2)   ;
      f(i) = k(i)^2./2;
      
end

[k ;y ;f]'
plot(f,y,'--ob');

k             y            f
  1.0e+003 *

         0         0         0
    0.0004    0.0018    0.0001
    0.0006    0.0036    0.0002
    0.0008    0.0054    0.0003
    0.0009    0.0074    0.0004
    0.0010    0.0092    0.0005
    0.0011    0.0112    0.0006
    0.0012    0.0130    0.0007
    0.0013    0.0153    0.0008
    0.0014    0.0173    0.0010
    0.0015    0.0197    0.0011
    0.0016    0.0219    0.0012
    0.0017    0.0243    0.0014
    0.0018    0.0275    0.0015
    0.0018    0.0302    0.0017
    0.0019    0.0335    0.0019
    0.0020    0.0371    0.0021
    0.0021    0.0410    0.0023
    0.0022    0.0447    0.0025
    0.0024    0.0495    0.0028
    0.0025    0.0557    0.0031
    0.0026    0.0620    0.0034
    0.0028    0.0704    0.0038
    0.0029    0.0807    0.0043
    0.0031    0.0916    0.0048
    0.0033    0.1076    0.0055
    0.0035    0.1290    0.0063
    0.0038    0.1594    0.0074
    0.0042    0.2067    0.0088
    0.0047    0.2905    0.0110
    0.0054    0.4838    0.0148
    0.0072    1.4962    0.0257
求助:用matlab 循环计算椭圆积分-1
附图1.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-08-21 11:41:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 iyearn 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 什么时候开奖? +4 CrisMessi 2026-08-18 4/200 2026-08-19 00:53 by gatelove
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 27/1350 2026-08-18 21:44 by Noways
[教师之家] 为什么余额宝的年化利率越来越低?主要原因有哪些? +3 瞬息宇宙 2026-08-15 3/150 2026-08-18 21:40 by xiaohuixin
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 9/450 2026-08-18 20:09 by 奶牛小黑
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +51 医学老男孩 2026-08-13 110/5500 2026-08-18 19:07 by icerianxia
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 重要消息,中午系统在维护 +9 yuleib84 2026-08-18 10/500 2026-08-18 16:52 by archvillain
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +4 Tide man 2026-08-14 5/250 2026-08-18 11:35 by Tide man
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
信息提示
请填处理意见