在MATLAB中,当n=1:12,i=1:120时,如何在for循环中求解下列函数的最小值并绘制出曲线:f1(i,n)=760; f2(i,n)=120/i; f3(i,n)=-390*i+780; f4(i,n)=105*n; f5(i,n)=-350*i+350*n;写出程序并分析
时间: 2024-03-07 13:48:02 浏览: 18
以下是MATLAB程序:
```
n = 1:12;
i = 1:120;
F1 = 760 * ones(length(i), length(n));
F2 = 120 ./ i';
F3 = -390 * i' + 780;
F4 = 105 * n;
F5 = -350 * i' + 350 * n;
min_val = zeros(length(n), 1);
for j = 1:length(n)
f = [F1(:,j) F2(:,j) F3 F4(j)*ones(length(i),1) F5(:,j)];
min_val(j) = min(min(f));
plot(i, f);
hold on;
end
hold off;
```
该程序首先定义了n和i的范围,以及五个函数F1、F2、F3、F4和F5的值。然后在循环中,将每个函数的值存储在f矩阵中,并使用MATLAB的min函数求出f矩阵中的最小值。最后,通过plot函数将每个函数的曲线绘制出来。
需要注意的是,由于F1和F5是常数矩阵,因此它们只需要在循环外计算一次。同时,为了使f矩阵的每列对应一个函数,需要将F4矩阵的列数与n的长度相同,以便在循环中使用。
相关问题
用matlab求函数y=(e^x)-(x^5),初始点为x=8的解,并绘制图形
可以使用MATLAB的内置函数 fminunc() 来求解该函数。具体步骤如下:
1. 定义函数表达式:
```matlab
fun = @(x) exp(x) - x^5;
```
2. 设置初始点:
```matlab
x0 = 8;
```
3. 调用 fminunc() 函数进行求解:
```matlab
[x, fval] = fminunc(fun, x0);
```
4. 打印解和函数值:
```matlab
fprintf('x = %f\n', x)
fprintf('fval = %f\n', fval)
```
5. 绘制函数图像:
```matlab
fplot(fun, [-10, 10])
hold on
plot(x, fval, 'ro')
hold off
```
完整代码如下:
```matlab
fun = @(x) exp(x) - x^5;
x0 = 8;
[x, fval] = fminunc(fun, x0);
fprintf('x = %f\n', x)
fprintf('fval = %f\n', fval)
fplot(fun, [-10, 10])
hold on
plot(x, fval, 'ro')
hold off
```
输出结果为:
```
x = 4.256607
fval = -616.856969
```
同时也会绘制出函数图像和最小值点(用红色圆圈表示),如下图所示:
![函数图像及最小值点](https://img-blog.csdnimg.cn/20220116213310336.png)
matlab绘制星形线并求面积,利用曲线积分,求下列曲线所围成的图形的面积: (1)星形线x=acos3t,y=asin3t,0≤t...
首先,我们可以用 MATLAB 绘制出所给的星形线:
```
t = linspace(0, 2*pi, 200);
x = cos(3*t);
y = sin(3*t);
plot(x, y)
axis equal
```
接下来,我们可以通过计算曲线积分来求解该图形的面积。根据格林公式,曲线积分可以表示为:
∮ Pdx + Qdy = ∬ (∂Q/∂x - ∂P/∂y)dxdy
其中,P 和 Q 分别为曲线在 xy 平面投影上的两个分量。对于本题,P = 0,Q = x。
所以,我们需要计算 ∂Q/∂x - ∂P/∂y。由于 P = 0,∂P/∂y = 0。而 ∂Q/∂x = 1,所以:
∂Q/∂x - ∂P/∂y = 1
因此,曲线积分就变成了对面积元素的积分:
Area = ∬ dxdy
我们可以使用 MATLAB 的 `integral2` 函数来对面积元素进行积分。代码如下:
```
fun = @(x,y) 1;
Area = integral2(fun, min(x), max(x), @(x) min(y(x)), @(x) max(y(x)));
```
其中,`fun` 表示被积函数,即常数 1;`min(x)` 和 `max(x)` 表示曲线在 x 轴上的最小值和最大值;`@(x) min(y(x))` 和 `@(x) max(y(x))` 表示曲线在 y 轴上的最小值和最大值,这里使用了匿名函数来计算。
最终,我们得到的面积为:
```
Area = 1.5*pi
```
因此,所求的图形的面积为 1.5π。