matlab计算不定积分 循环
问题描述:这是一个关于r的函数,r的取值,r=0:0.01:0.3,函数见下图。想得到使用循环语句,计算每一个r对应的F,然后画出r-F曲线,再拟合,不知道这个程序怎么编...
问题描述:这是一个关于r的函数,r的取值,r=0:0.01:0.3,函数见下图。想得到使用循环语句,计算每一个r对应的F,然后画出r-F曲线,再拟合,不知道这个程序怎么编。注 下图的积分原函数不能使用初等函数表示,因此才想拟合出曲线for r=0:1:300;x=0:0.01:pi;f=(1+cos(x)).^0.5;F=quad('f(x)',0,2*pi);
上边那个代码我简化了 f
f=(1+r.*cos(x)).^0.5 展开
上边那个代码我简化了 f
f=(1+r.*cos(x)).^0.5 展开
1个回答
展开全部
1、变量积分可以用matlab的循环语句计算其某一值下的积分值,再绘制其曲线。实现过程如下:
r=0:0.01:0.3;
n=length(r);
for i=1:n
syms theta
r0=r(i);
F0=int(sqrt(1+r0*cos(theta)),0,2*pi);
F(i)=double(F0);
end
plot(r,F,'r-')
xlabel('r'),ylabel('F')
str = ['F(r)曲线图'];
title(str);
运行结果
2、函数拟合方法,首先要根据已知数据,r=[。。。];F=[。。。];;其二,假定数学拟合函数,func=@(a,r) "拟合函数表达式";其三,初定a的初值;其四,用nlinfit()函数求拟合系数,[a,r,J]=nlinfit(r,F,func,a0);其五,根据得到拟合系数,计算新的F值(即F1);其六,求Δ=F-F1差值,当Δ≈0时,拟合工作结束。此时的拟合函数,就是你所需要的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询