matlab已知函数值求自变量,谢谢~
f(x)=1.823*x^4-2.725*x^3+1.94*x^2-0.038*x,求当y=0.8,y=0.2时对应的x值,万分感谢!...
f(x)= 1.823*x^4-2.725*x^3+1.94*x^2-0.038*x,求当y=0.8,y=0.2时对应的x值,万分感谢!
展开
2个回答
展开全部
你原来的f(x)是一个多项式
按照matlab多项式的定义
p=[1.823 -2.725 1.94 0.038 0];
要求y=0.8时候x的值就是求
方程f(x)= 1.823*x^4-2.725*x^3+1.94*x^2-0.038*x-0.8=0的根
>> p1=p;p1(end)=-0.8;
>> roots(p1)
ans =
0.5378 + 0.8645i
0.5378 - 0.8645i
0.8931
-0.4740
类推y=0.2时
>> p2=p;p2(end)=-0.2;
>> roots(p2)
ans =
0.6825 + 0.7289i
0.6825 - 0.7289i
0.4028
-0.2731
由于是四次多项式,所以有四个根
而如果只需要实根,就从中间挑出来就可以了
按照matlab多项式的定义
p=[1.823 -2.725 1.94 0.038 0];
要求y=0.8时候x的值就是求
方程f(x)= 1.823*x^4-2.725*x^3+1.94*x^2-0.038*x-0.8=0的根
>> p1=p;p1(end)=-0.8;
>> roots(p1)
ans =
0.5378 + 0.8645i
0.5378 - 0.8645i
0.8931
-0.4740
类推y=0.2时
>> p2=p;p2(end)=-0.2;
>> roots(p2)
ans =
0.6825 + 0.7289i
0.6825 - 0.7289i
0.4028
-0.2731
由于是四次多项式,所以有四个根
而如果只需要实根,就从中间挑出来就可以了
展开全部
代码如下:
f=@(x,a)1./x.*(5/6+1/6.*x.^2).^3-a;
y=[1.0534,1.2314,1.4561,1.6919,1.9177,2.1429,2.29,2.4383];
x=fsolve(f,2.5*ones(size(y)),[],y);
或者
f=@(x,a)1./x.*(5/6+1/6.*x.^2).^3-a;
y=[1.0534,1.2314,1.4561,1.6919,1.9177,2.1429,2.29,2.4383];
for i=1:length(y);
x(i)=fzero(f,2.5,[],y(i));
end
x =
Columns 1 through 6
1.2679 1.5762 1.8156 2.0031 2.1495 2.2744
Columns 7 through 8
2.3475 2.4158
是否可以解决您的问题?
f=@(x,a)1./x.*(5/6+1/6.*x.^2).^3-a;
y=[1.0534,1.2314,1.4561,1.6919,1.9177,2.1429,2.29,2.4383];
x=fsolve(f,2.5*ones(size(y)),[],y);
或者
f=@(x,a)1./x.*(5/6+1/6.*x.^2).^3-a;
y=[1.0534,1.2314,1.4561,1.6919,1.9177,2.1429,2.29,2.4383];
for i=1:length(y);
x(i)=fzero(f,2.5,[],y(i));
end
x =
Columns 1 through 6
1.2679 1.5762 1.8156 2.0031 2.1495 2.2744
Columns 7 through 8
2.3475 2.4158
是否可以解决您的问题?
追问
请问哪来的这些数字,可以详细解释吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询