我嘗試在MATLAB中求解帶有節點熱源的四面體有限元的熱擴散問題,這個節點取決於解矢量。非線性方程系統如下:在MATLAB中求解非線性有限元

乙U」 + A U = Q(T)

與B是熱capactiy矩陣,A是導電性基體,q是源項和U作爲溫度。我使用了一個Adams-Bashforth /梯形規則預估校正器方案,並進行了Picard迭代,接着是時間步長控制。源項的溫度在最後一個時間步的溫度和預測器溫度之間精確評估。這是預測校正器代碼的簡化版本。源的計算是一個函數。

% predictor

K0 = t(n)-t(n-1);

Upre(dirichlet) = u_d_t(coordinates(dirichlet,:));

Upre(FreeNodes) = U(FreeNodes,n) + (dt/2)*((2+dt/K0)*U_dt(FreeNodes,3) - (dt/K0)*U_dt(FreeNodes,1)); % predictor step

Uguess = Upre; % save as initial guess for Picard iteration

% corrector with picard iteration

while res >= picard_tolerance

T_theta = Uguess*theta + (1-theta)*U(:,n);

b = q(T_theta);

% Building right-hand side vector (without Dirichlet boundary conditions yet)

rhs = ((2/dt)*B*U(:,n) + B*U_dt(:,1))+b;

% Applying Dirichlet Boundary Conditions to the Solution Vector

Ucor(dirichlet) = u_d_t(coordinates(dirichlet,:));

rhs = rhs - ((2/dt)*B+A)*Ucor;

% Solving the linearized system using the backslash operator

% P*U(n+1) = f(Un) => U(n+1) = P\f(Un)

Ucor(FreeNodes) = ((2/dt)*B(FreeNodes,FreeNodes)+A(FreeNodes,FreeNodes))\rhs(FreeNodes);

res = norm(Uguess-Ucor);

Uguess = Ucor;

U(:,n+1) = Ucor;

end

正如你可以看到我使用反斜線運算符來解決系統。系統的非線性不應該太差。然而,隨着時間步長的增加,皮卡方法收斂得更慢,並最終停止收斂。我需要更多的時間步驟,所以我把整個校正器的步驟放到一個函數中,試圖用fsolve解決它,而不是看看我是否實現了更快的收斂。不幸的是,fsolve似乎從未完成第一步。我想我沒有正確配置fsolve的選項。任何人都可以告訴我,如何爲大型稀疏非線性系統配置fsolve(我們正在談論成千上萬個方程)。或者,對於這個問題,有沒有比fsolve更好的解決方案?幫助和 - 因爲我不是專家或計算工程師 - 非常感謝明確的建議!

matlab中predictor怎么填,在MATLAB中求解非線性有限元相关推荐

  1. 如何在MATLAB中把变量填到Word中,matlab数据写入现有excel表格-如何将matlab中变量写入excel...

    如何将matlab 中的数据写入现有的word 表格中? 你可以这样做: (1)先在matlab里面,把相关数据导出.保存成csv格式的文件:比如说,你可以在workspace视图底下,把相关的变量直 ...

  2. 如何在MATLAB中把变量填到Word中,将MATLAB中的图形转化到WORD中去

    Q;如何将matlab中的scope图形转到word中,至少三种方法 1.软件截图,这个就不多说了 2.使用Matlab命令,直接保存为图片 set(0,'ShowHiddenHandles','On ...

  3. matlab计算一组数的函数值_matlab中怎么求一组数据概率最大的数

    好象直接使用就可以了,第一次出现就包含了定义 顺便把些命令弄给你看下 matlab命令 matlab commands and functions list A a abs 绝对值.模.字符的ASCI ...

  4. matlab中加入C代码:matlab中安装C语言编译器TDM-GCC,编译、运行及mexFunction接口设置

    通过把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度.Matlab本身是不带c语言的编译器的,所以要求你的机器上已经安装有VC,BC或Watcom C中的一种. 如果你在安装Matlab ...

  5. matlab中的timer模块,[转载]Matlab中Timer的使用

    Matlab中Timer的使用 鉴于Matlab中缺乏多线程机制,使用Timer无疑是一个很重要的工具,Matlab中Timer是一个Java对象. (1)Timer 的定义 t=timer(); 设 ...

  6. matlab 两列数据相乘,在EXCEL中,两列完全相同的数据,求和结果不一样??单元格两列相乘的公式...

    excel表格中怎样求和以及计算两列的乘积 一.这可以用SUMPRODUCT函数来完成. 二.比如是要 =A1*B1 A2*B2 .....A100*B100,则这个公以简化成 =SUMPRODUCT ...

  7. cmake重新编译matlab,ubuntu系统下cmake 编译matlab中mex文件

    cmake 编译工程具有独特的优势,特别对于复杂的工程更是如此.利用matlab直接编译mex文件时,对于文件数据多的工程时,需要列举所有文件,并且要按照依赖关系排 cmake 编译工程具有独特的优势 ...

  8. 2021-03-31 Matlab simulink 模糊PID在无刷直流电机中的应用

    Matlab simulink 模糊PID在无刷直流电机中的应用 无刷直流电机的数学模型. 1.无刷直流电机数学模型 然后给出无刷直流电机的动态数学模型 看到上述这张图,不知聪明的你有没有发觉,图中采 ...

  9. matlab波的极化特性,Matlab GUI在电磁波极化特性教学中的应用

    科技创新导报 2018 NO.16Science and Technology Innovation Herald 创新教育 科技创新导报 Science and Technology Innovat ...

最新文章

  1. Deepin v20依赖错误,检测更新失败解决办法
  2. python社区版可以用库么_应用Python,你不但能够得到出色的小区适用和普遍的库集...
  3. jQuery中文手册, jQuery API, jQuery UI, 分页插件 下载
  4. 今日恐慌与贪婪指数为94 贪婪程度与昨日持平
  5. eBay以2.4亿美元收购移动支付服务商Zong
  6. 户外运动手持GPS设备常识汇总
  7. 个人博客毕业设计设计总结
  8. MSDN资源下载网站源码
  9. Linu系统——基础知识1
  10. 一张图片中的分离数据+十进制删改十六进制+连续base32和64编码+okk编码题目--rsa中求d题目
  11. 服务器无法远程访问的原因有哪些
  12. 鱼眼校正c语言算法,一种简单而精确的鱼眼图像校正算法研究
  13. 【Android开发】Android休眠机制
  14. 数据结构——单循环链表的
  15. 转帖: 80分钟打造娱乐型ubuntu7.10
  16. SMB小传 —— SMB网络文件系统协议介绍
  17. 《经典食人花》windows经典桌面游戏食人花(吃花)登陆iOS,Android啦
  18. Python列表操作小技巧——索引、切片、增添、删除、修改和其他用法
  19. java调试宝塔api_宝塔接口API
  20. 联想盈利创新高,智能手机国内销量第二

热门文章

  1. Spring boot删除员工
  2. Table表格的单元格提示
  3. Java的Map遍历
  4. html的input的id,请求[“inputId”]不能在cshtml上工作
  5. java中怎样创建多个对象,java中StringBuilder.appent方法创建几个对象
  6. 新同事上来就把项目性能优化了一遍,瑟瑟发抖。。。
  7. Java 中的 BigDecimal 类你了解多少?
  8. maven私服-详细部署搭建笔记
  9. java was started but returned exit code = 1
  10. 【深入Java虚拟机JVM 01】Java发展与展望概述