matlab solve的用法问题 40
load('price.mat');h=50;symsxr;sum=0;n=length(price)shouyilv2=price2ret(price);m=lengt...
load('price.mat');
h=50;
syms x r;
sum=0;
n=length(price)
shouyilv2=price2ret(price);
m=length(shouyilv2)
for i=1:n-1
intf=int(1/(sqrt(2*pi))*exp((-x^2)/2),(r-shouyilv2(1))/h,inf);
sum=sum+intf;
end
sum=intf;
rr=n*0.05;
rr;
r=solve('sum=rr',r)
结果是r =
solve([sum == rr], [r])
程序为什么不能显示结果呢? 展开
h=50;
syms x r;
sum=0;
n=length(price)
shouyilv2=price2ret(price);
m=length(shouyilv2)
for i=1:n-1
intf=int(1/(sqrt(2*pi))*exp((-x^2)/2),(r-shouyilv2(1))/h,inf);
sum=sum+intf;
end
sum=intf;
rr=n*0.05;
rr;
r=solve('sum=rr',r)
结果是r =
solve([sum == rr], [r])
程序为什么不能显示结果呢? 展开
1个回答
展开全部
这是由于matlab里面有个关于默认自变量规定问题 一般情况下默认自变量为表达式中距离x最近的字母 你可以用这种方法来求解 [x0]=solve('2600*(z0+15)=(z0-24985)*x1') [z0]=solve('2600*(z0+15)=(z0-24985)*x1') 由于上两行行中只有X1与z0两个变量,而且X1与X较近,所以是求解x1 为了求解z0,可以用 [z0]=solve('2600*(z0+15)=(z0-24985)*x1','z0') 这样的话就没问题了 建议你指定代求变量 相关函数 findsym 查找自变量,比较有用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询