USTC 001139

《数学建模》

Mathematical Modeling

授课老师:刘利刚

图形与几何计算实验室 (Graphics&Geometric Computing Laboratory)

中国科学技术大学 (University of Science and Technology of China)


网站导航

课程信息     课程简介     课程目标     课程安排    作业要求    其他资源


 

Announcements

 

课程信息

 

课程简介
  •  Mathematical models describe a variety of real-world situations, providing unique information and insight. Systems that can benefit from modeling range from daily occurrences (e.g. optimizing campus parking) to highly complex interactions (e.g. predicting weather) to currently theoretical scenarios (e.g. computing the best vaccination or treatment strategy in case of bioterrorist attack).
        Mathematical modeling is a mathematical tool for solving real world problems. In this course, students study a problem-solving process. They learn how to identify a problem, construct or select appropriate models, figure out what data needs to be collected, test the validity of a model, calculate solutions and implement the model. Emphasis lies on model construction in order to promote student creativity and demonstrate the link between theoretical mathematics and real world applications.
        Throughout this semester, we study a variety of modeling types. Topics include proportionality models, fitting models to data, creating simulations, dimensional analysis, probabilistic modeling, optimization, and both discrete and continuous models. For day-to-day details, see the calendar pages of our class website.
        Additionally, students work in small groups on a semester-long modeling project. Early-semester activities include discussions of possible project ideas, a workshop on technical writing, project proposals, and brief presentations in class. Later activities include individual group meetings, peer-reviewed rough drafts, and longer final presentations to the class.
课程目标
 

Mathematical Modeling is an area of applied mathematics that uses mathematical tools for exploring and studying "real world" problems. The overall objective of this course is to provide an introduction to the process of mathematical modeling while giving students an opportunity to

  • develop and construct appropriate models for various problem situations,
  • analyze given models to uncover underlying assumptions, and
  • investigate particular problems to find out what has already been done toward developing solutions.
Through work on assigned projects, students increase their fluency in technical reading and writing, and develop skills in mathematical problem solving. Students learn to
  • use the modeling process to translate problem situations to mathematical expressions,
  • use a variety of mathematical resources and tools to study problem situations, and
  • use appropriate technology to assist in the problem-solving process.

Beyond the content of individual courses, the major in mathematics is designed to prepare students for the 21st century by helping students to become problem solvers, effective communicators, users of appropriate technology, and team players. In this course, students will be engaged in a variety of activities which will help them to move toward achieving these goals.

  • As problems solvers, students will be learning to:
    • identify key points in a problem situation,
    • generate alternative strategies, critically analyze these strategies, and make decisions regarding appropriate strategies to use in the situation,
    • implement a variety of problem-solving strategies,
    • evaluate and transform mathematical expressions,
    • integrate information from a variety of sources (e.g., teachers, textbook, library, peers, technology, other courses, your own exerimentation and observations, and life experience), and
    • solve problems using the tools of mathematical analysis,
    • demonstrate being a problem solver by working with some problems that are relatively large.

     

  • As effective communicators, students will be learning to:
    • communicate effectively to different audiences (e.g., your peers, small group conversation, large group discussion),
    • read and interpret mathematics and technical information,
    • express ideas in mathematical language using written notation,
    • demonstrate active listening skills,
    • listen to others in the group,
    • use oral and written English in an appropriate and effective manner, and
    • paraphrase, explain results, and support your ideas.

     

  • As users of appropriate technology, students will be learning to:
    • make appropriate decisions about when and how to use technology in problem-solving situations, and
    • use the computer as a tool to study problem situations.

     

  • As team players, students will be learning to:
    • work effectively as a member of a team,
    • identify her/his own strengths and weaknesses as part of a team,
    • work cooperatively in a small group to explore and learn important ideas and concepts of calculus, and
    • acknowledge alternative points of view and problem-solving strategies.

    In this course, projects give students an opportunity to apply the principles of mathematical modeling creatively in various problem scenarios. While each project is related to the mathematical strategies that covered in class activities and lecture, students are expected to do some reading beyond the textbook and some library research to gain a solid background understanding of the problem scenario. Students are be expected to use appropriate technology as they study the problem, and to include the results of their investigations in a written report.

    Each year in early February, there is an international Mathematical Modeling Contest. A secondary objective of this course is to assist students in developing skills to participate in this contest. The skills needed to participate in the math modeling contest -- working cooperatively in a group, developing and carrying out a problem-solving plan, using whatever resources are available, collecting appropriate data -- are essential in today's competitive job market.

     

  • 课程安排

     

    课件PPT下载链接

    日期

    课程内容

    补充学习资料

    第1讲

    2021.03.11.

    1-课程介绍

    2-简化与抽象

     

    第2讲

    2021.03.18.

    3-数据拟合模型 (1)

     

     

    第3讲

    2021.03.25.

    3-数据拟合模型 (2)

     

     

    第4讲

    2021.04.01.

    4-神经网络模型 (1)

    PyTorch上手入门

    第5讲

    2021.04.08.

    5-神经网络模型 (2)

    Grasshopper (GH) 介绍

    Grasshopper学习资料

    第6讲

    2021.04.15.

    6-其他神经网络模型 Grasshopper培训视频

    第7讲

    2021.04.22.

    7-统计回归模型  

    第8讲

    2021.04.29.

    8-微分方程模型  

    第9讲

    2021.05.06.

    9-平衡与稳定性模型   

    第10讲

    2021.05.13. 

    10-最优化模型   徐小华 (计算机科学与技术学院):物联网优化

    第11讲

    2021.05.20. 

    10-图与网络模型

    11-数码相机标定  

    连德富(计算机科学与技术学院):社交网络的异常检测

    第12讲

    2021.05.27. 

    12-矩阵分解模型 张梦萍(数学科学学院):交通流模型

    第13讲

    2021.06.03. 

    13-高维数据分析模型 田超 (工程科学学院):Image Reconstruction from Projections

    第14讲

    2021.06.10. 

    14-多目标决策模型

    层次分析法建模

    冷伟(地球和空间科学学院):地表散热建模

    第15讲

    2021.06.17. 

    期末大作业优秀作业展示

    15-课程总结

    刘海燕(生命科学学院):蛋白质计算设计

     

    参考教材及资料:

    • 参考教材(教材仅供参考,以上课内容为主):

         《数学模型》第2版,谭永基、蔡志杰编著,复旦大学出版社,2011.

         《数学建模方法及其应用》,韩中庚,高等教育出版社,2005.

    • Readings:

         数学建模优秀论文 样例
          Various journal, conference, or WWW materials as appropriate.

     


    作业要求

    Requirements

    • All students are expected to study the relevant portions of the textbook and handouts in conjunction with our class discussions (i.e., before coming to class). Explicit reading assignments will not always be given.
    • As a matter of courtesy, students are expected to turn off cell phones and laptops during class. If extraordinary circumstances require an exception to this policy, the student is expected to discuss this with the instructor before class begins.
    • All students are suggested to master one of the following tools: C/C++ programming, Mathlab, Mathematica, or Maple etc.

    Assignment Submission

    • All students are expected to complete their homework assignments by their due dates.
    • Submission stuffs
      Your ID number, your name, the assignment number or name, source codes, related document
    • Grading of programming assignments will be based on the following criteria:
      1. Correctness of program.
      2. Output from program that adequately demonstrates correctness.
      3. Documentation, internal and external, included as standards.
      4. Efficient use of algorithms and appropriate data structures.
      5. Stress - program must function correctly under all and/or extreme and unusual combinations of input.
      6. Creativity - credit for innovation in interface, implementation, style, etc.
    • Late Work
      No late work will be accepted. If you know you will miss a test due to an excused absence, you must contact me ahead of time to schedule a make-up session.
    • Late programming assignments follow the following rules:
      25% deduction for 1-day late
      50% deduction for 2-day late
      Not accepted after being 2-day late
      Regarding your marks, contact the grading TA within two weeks after the assignment is handed back. After this two-week period, your assignment stays as it is graded.

    What constitutes Creativity ?

    Creativity is any substantial improvement beyond the basic solution - it can be applied to any part of the project. For example, the following are relevant in most cases :

    • User Interaction
         
      ̶  It would be nice to present the user with options to either test the program using internal tests or an interactive interface
         
      ̶  Work around limitations in the program. For example, if the program asks for lines of input and quits when it sees "X", invent a special syntax (called an escape sequence) to allow the user to type in "X" without the program exiting. Hypothetically, if the user enters $X the program interprets it as X, if the user enters $$ the program interprets it as $ and if the user enters X the program exits.
    • Visualization
         
      ̶  A representation of how data is actually being stored in the data structure, by specific position and value (this would even help greatly with debugging) - this could be accomplished with specialized data access routines for output formatting
    • Testing
         
      ̶  Simulating real-world conditions for input by making some assumptions about the distribution of operations performed and the rate of operations, then simulating using random number generators
         
      ̶  Intensively testing creation, usage and destruction of the data structure to prove there are no memory leaks
         
      ̶  Exhaustive automatic testing - go through many (or every) possible scenarios for the data structure (up to some time limit). For example, assign "add" and "remove" to a binary variable - then generate all possible strings of operations - test the structure for each case, and test the results automatically in your main program to make sure they are what was expected.
         
      ̶  Develop a syntax for file-based testing and use this as an option - eg. "enter X" and "retrieve"
    • Efficiency
          
      ̶  Minimize the number of allocations of memory blocks by reusing deleted blocks
      Ask yourself these questions ...
         
      ̶  How can I make the interface more natural ?
         
      ̶  How can I make the program run faster ?
         
      ̶  How can I use less memory/disk space ?
         
      ̶  Have I thoroughly tested my program ? Will my program survive real-world tests ? Will my program survive worst-case scenario tests ?

     

    Professional Conduct

    As a student in our class, you are expected to conduct yourself in a professional manner.

    Limited Collaboration Policy. Unless otherwise indicated, any homework assignment or programming exercise given in this class will be an individual assignment. The work you submit is to reflect the knowledge, understanding, and skill that you have attained as an individual. However, the instructor does want to encourage the development of a community of scholars who are actively engaged in discussion of the ideas related to this course. With this in mind, you are allowed to discuss solutions of the homework and programming problems with other students if done so according to the following guidelines:

    • You may discuss ideas for homework and programming assignments with your classmates. However, you cannot collaborate on writing the solution or the program code. That is, you can talk about the problems and ideas for solving them, but you cannot write things down with anyone else. You are, of course, prohibited from copying or seeing another student's written solution, and you are not allowed to show your work to anyone else.
    • You should accept help with care. If you work too closely with another student, you might mislead yourself into believing that you understand the concepts and techniques better than you actually do. Don't forget that the instructor has office hours and can probably give you hints or suggestions to get you started.
    • You should give help with care. Do not help anyone too much. When you have solved a problem, it is tempting to just tell other students how you solved it. Instead, try to allow them to come to the solution on their own. Maybe give them a hint to help them get "over a hump." Remember that helping someone too much will hurt them in the long term if they can't work through problems on the exams by themselves. So avoid the temptation to do so. If you can't help other students without giving away the whole solution, direct them to see the instructor (who may or may not have a way to "edge" them toward the solution).
    • You are not obligated to help anyone. If you feel uncomfortable helping another student for any reason, please direct them to see the instructor.

    其他资源

    Resources of Mathematical Modeling

    Mathematical Tools

    Online C++ and coding resources

     


     


    Copyright © 2021 GCL , USTC