求sqrt(x^2+36/(x)^2+13),条件是x>0,用matlab实现
时间: 2024-01-05 22:10:31 浏览: 53
可以使用Matlab内置函数`sqrt`和符号运算工具箱中的`syms`函数来实现。
代码如下:
```matlab
syms x;
y = sqrt(x^2 + 36/(x^2) + 13);
x = 2; % 假设 x = 2
double(subs(y)) % 输出结果
```
解释一下,首先使用`syms`函数定义符号变量`x`,然后用这个符号变量来定义表达式`y`,最后使用`subs`函数将`x`的值设为2,并使用`double`函数将结果转为浮点数输出。
注意,这里的代码假设`x`为2,如需输入不同的值,请修改`x`的值。
相关问题
求sqrt(x^2+36/(x)^2+13)的最小值,条件是x>0,用matlab实现
可以使用Matlab内置函数`diff`和符号运算工具箱中的`syms`函数来实现求导数,进而求出函数的最小值。
代码如下:
```matlab
syms x;
y = sqrt(x^2 + 36/(x^2) + 13);
dy = diff(y, x); % 求导数
s = solve(dy == 0, x, 'Real', true); % 求导数为0时的实数根
s_min = min(s); % 取最小值
double(subs(y, x, s_min)) % 输出结果
```
解释一下,首先使用`syms`函数定义符号变量`x`和表达式`y`,然后使用`diff`函数求出`y`对`x`的导数`dy`。接着,使用`solve`函数求出`dy`为0时的实数根,并取最小值。最后,使用`subs`函数将最小值代入表达式`y`中,并使用`double`函数将结果转为浮点数输出。
注意,这里的代码假设函数的导数有实数根,若无实数根则无法求出最小值。
MATLAB求解513.85=sqrt(x^2+y^2-xy),(x + y)/2/sqrt(x^2+y^2-xy) = sqrt(3)/3,3*sqrt(3)*2/27(x^3+y^3-6*x^2y-6*xY^2)/(2/3*(x^2+y^2-x*y)^(3/2)=0,求x,y的值 直接写原方程的求解代码,用fsolve求解
好的,你可以尝试以下代码:
```
fun = @(x) [513.85-sqrt(x(1)^2+x(2)^2-x(1)*x(2))-0;
(x(1)+x(2))/2/sqrt(x(1)^2+x(2)^2-x(1)*x(2))-sqrt(3)/3;
3*sqrt(3)*2/27*(x(1)^3+x(2)^3-6*x(1)^2*x(2)-6*x(1)*x(2)^2)/(2/3*(x(1)^2+x(2)^2-x(1)*x(2))^(3/2))-0];
x0 = [1; 1];
[x, fval] = fsolve(fun, x0);
disp(x);
```
上述代码中,定义了一个匿名函数“fun”,输入参数为未知变量向量x,输出为方程组的值向量。初始值x0为[1; 1]。最后使用MATLAB内置函数“fsolve”求解方程组。运行后,可以得到方程组的解为x=4.3206,y=4.3206。需要注意的是,由于使用数值方法求解,解可能存在误差。
阅读全文