救助关于matlab小程序的设计,请给位给出,本人将感激不尽!!!

救助关于matlab小程序的设计,请给位给出,本人将感激不尽!!!,第1张

我做第二个题目

function pdemodel

[pde_fig,ax]=pdeinit;

pdetool('appl_cb',1);

set(ax,'DataAspectRatio',[1 65 1]);

set(ax,'PlotBoxAspectRatio',[15 10 1]);

set(ax,'XLim',[-15 15]);

set(ax,'YLim',[-10 120]);

set(ax,'XTickMode','auto');

set(ax,'YTickMode','auto');

% Geometry description:

pderect([0 1 100 0],'R1');

set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','R1')

% Boundary conditions:

pdetool('changemode',0)

pdesetbd(4,'neu',1,'0','0')

pdesetbd(3,'dir',1,'1','0')

pdesetbd(2,'neu',1,'0','0')

pdesetbd(1,'dir',1,'1','100')

% Mesh generation:

setuprop(pde_fig,'Hgrad',13);

setuprop(pde_fig,'refinemethod','regular');

pdetool('initmesh')

pdetool('refine')

pdetool('refine')

pdetool('refine')

pdetool('refine')

% PDE coefficients:

pdeseteq(1,'10','00','0','10','0:10','00','00','[0 100]')

setuprop(pde_fig,'currparam',['10';'00';'0 ';'10'])

% Solve parameters:

setuprop(pde_fig,'solveparam',

str2mat('0','18432','10','pdeadworst',

'05','longest','0','1E-4','','fixed','Inf'))

% Plotflags and user data strings:

setuprop(pde_fig,'plotflags',[1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1]);

setuprop(pde_fig,'colstring','');

setuprop(pde_fig,'arrowstring','');

setuprop(pde_fig,'deformstring','');

setuprop(pde_fig,'heightstring','');

% Solve PDE:

pdetool('solve')

你这个问题似乎没说太清楚。

目标函数是(x-10)^2+(y-7)^2,这句应该是指“终点是(10,7)”吧?目标函数和终点应该并不是一个意思。

约束条件是-((x-5)^2+(y-5)^2)小于等于-4,这句应该是指“避开圆心在(5,5),半径为2的圆”吧?

步长02,精度0001,这个是指每一步移动的长度是固定的02(±0001)?

现在最大的问题是,怎样评价路径是不是最佳——按最短吗?你的题中并没有说明。

这个语句可能是你上传的有问题吧。

因为i=1;5(分号)没什么意义。

分号就像c里面一样分割了语句。

就是相当于赋值i=1然后输入一个值5,当然会有ans=5出现。

你可以每一步自己运行一下,不加分号可以产生一些结果。

while里面的就是最简单的c循环,也没有什么特别的作用。

有点意义的话可能是,

x=1:5(冒号)

x= 1 2 3 4 5

x=1:2:5

x=1 3 5

x=1:3:5

x= 1 4

Q=2;

f=0;

for i=1:255

f=f+r(i)/(Q-r(i));

end

PS:matlab的矩阵编号是从1开始的。如果不对,你可以稍微修改一下

1修改了一下,变动不大。

function x=Gauss_(A,b)

A=[10,-7,0;5,-1,5;-3,2,6];

b=[7;6;4]; %%%%%应该是列矩阵啊

n=length(b);

for k=1:n-1 %……消去过程……

if A(k,k)==0

disp('错误信息')

break;

end

index = [k+1:n];%用向量比用循环好

m = -A(index,k)/A(k,k); %提前定义一个较短的变量,相当于你的A(i,k)=A(i,k)/A(k,k);

A(index,index) = A(index,index) + mA(k,index);%矩阵A消元

b(index) = b(index) + mb(k);%矩阵b消元

end

x = zeros(n,1);%提前预置一个变量的位置,以提高运算速度

x(n) = b(n)/A(n,n);%……回代过程……

for i = n-1:-1:1

x(i) = ( b(i) - A(i,[i+1:n])x([i+1:n]) )/A(i,i);%还是写在一起吧,比较简捷

end

x

%%%%%%%%%结束啦

运行结果:

x =

00000

-10000

10000

2验证

>> A=[10,-7,0;5,-1,5;-3,2,6];

>> b=[7;6;4];

>> X=A\b

X =

0

-1

1

3验证

>> Gauss_(A,b)

x =

00000

-10000

10000

以上就是关于救助关于matlab小程序的设计,请给位给出,本人将感激不尽!!!全部的内容,包括:救助关于matlab小程序的设计,请给位给出,本人将感激不尽!!!、matlab编个小程序、matlab小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10115909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存