请教符号积分时遇到的问题
想解一个二重积分,看网上有人说可以先做符号积分int,再做数值积分quadv。可是我int那里就出问题了,不知道怎么解决。clear;
syms t w
L=0.08;
a=0.1;b=0.08;c=-0.15;uz=0.2;vz=0.2;wz=0.1;
f1=[(-3/20+w)/((2/25-t)*(2/25-conj(t))+(-3/20+w)*(-3/20+conj(w)))^(3/2)+(3/20-w)/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20+w)*(-3/20+conj(w)))^(3/2)+(-3/20-w)/((2/25-t)*(2/25-conj(t))+(-3/20-w)*(-3/20-conj(w)))^(3/2)+(3/20+w)/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20-w)*(-3/20-conj(w)))^(3/2),
0,
1/5/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20+w)*(-3/20+conj(w)))^(3/2)+1/5/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20-w)*(-3/20-conj(w)))^(3/2)];
f2=int(f1,t,-0.1,0.1); %%%%%出错的地方
f2=inline(f2/L);
result=quadv(f2,w,-wz,-wz-L);
f1有点复杂,是个行向量,带有两个变量t和w;int是想对t求积分,quadv想对w求积分。
??? Attempted to access e(1); index out of bounds because numel(e)=0.
Error in ==> sym.sym>char2sym at 518
sk = x(s(k):e(k));
Error in ==> sym.sym at 95
S = char2sym(x);
Error in ==> sym.maple at 92
result = sym(result,'keepijalias');
Error in ==> sym.int at 51
r = reshape(maple('map','int',f(:),),size(f));
Error in ==> tmpy at 10
f2=int(f1,t,-0.1,0.1);
错误信息如上,不知道怎么解决。请各位大虾帮帮忙,谢谢! f1行向量是(1*3)的吧!而且第二个是0,还有一个问题,既然被积分变量t,w均是实数,为何还要有conj(t)/conj(w)的表达式呢?
首先你的f1表达式有问题:行向量分成三行写的话,之后要加...,否则本身就有语法错误;
建议你以后在m文件中运行命令,这样MATLAB-mlint特性就可以适时的给你一下提醒,以发现一些潜在的错误,f1如果是行向量,应该是这样的:
f1=[(-3/20+w)/((2/25-t)*(2/25-conj(t))+(-3/20+w)*(-3/20+conj(w)))^(3/2)+(3/20-w)/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20+w)*(-3/20+conj(w)))^(3/2)+(-3/20-w)/((2/25-t)*(2/25-conj(t))+(-3/20-w)*(-3/20-conj(w)))^(3/2)+(3/20+w)/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20-w)*(-3/20-conj(w)))^(3/2), ... 0,...
1/5/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20+w)*(-3/20+conj(w)))^(3/2)+1/5/(1/25+(2/25-t)*(2/25-conj(t))+(-3/20-w)*(-3/20-conj(w)))^(3/2)];
我刚试了一下,无论是否加入conj运算,都没有理论上的闭式表达式,建议你用数值方法试试吧!
那个是行向量,我是图方便才加了几个回车,没考虑变成了列向量了。
好的,我还是试试数值解吧。
谢谢回复!
页:
[1]